Я собираюсь создать Linux-машину для глубокого обучения. Соответствующие части:
- ASRock Z270 KILLER SLI / AC
- Core i7 7700
- 2x GTX 1060
- 1TB M.2 Evo 850 NVMe SSD
Глубокое обучение включает в себя выполнение алгоритмов на основе CUDA в течение нескольких дней на графическом процессоре и передачу большого объема данных между графическим процессором / процессором / твердотельным накопителем. Узкие места будут складываться.
Так что я беспокоюсь о PCIe Lanes. Как я понимаю, процессор имеет только 16. Из того, что я понимаю, 8х полос достаточно для GPU, но в 4х наблюдается некоторое замедление. (Я изначально волновался, что NVMe SSD выберет дорожки, но кажется, что у CPU есть 4 дополнительные линии ввода-вывода)
Лучше ли использовать интегрированную графику для настольного интерфейса пользователя, оставить 2 графических процессора для вычислений, или встроенная графика создаст узкое место (то есть форсировать 8x 4x 4x, против 8x 8x полос для GPU) для графических процессоров (имеется в виду, что я должен отключить встроенный и поделиться 1 GPU с настольным интерфейсом).
Моя цель - получить максимальную производительность от графических процессоров. Если есть узкие места, я хочу знать, может ли это привести к разнице в производительности более чем на 5%, то есть умножить на 8 часов за неделю использования графического процессора
источник
Ответы:
TLDR:
В этом конкретном случае, вероятно, нет.
У меня вообще нет опыта работы с CUDA, но из того, что я помню, читая в статьях, основной проблемой при выполнении вычислений на GPU обычно является не исходная скорость передачи. Вместо этого это задержка.
Имейте в виду «обычно». Для любой конкретной программы все может быть по-другому.
Задержка частично зависит от скорости PCI-e. Соединения PCI-e v3 могут работать с более высокой скоростью, чем линии PCI-e v2 (8 ГГц против 5 ГГц). Таким образом, вы хотите, чтобы ваши карты с графическими процессорами на линиях v3.
Глядя на ark.intel.com, видно, что Core i7 7700 имеет 16 линий PCI-e, поступающих непосредственно от процессора. (Больше может прийти от чипсета).
Линии PCI-e, подключенные непосредственно к ЦП, представляют собой PCI-e v3 и могут использоваться как 1x16, 2x8, 1x8 + 2x4. Я предполагаю, что для выполнения CUDA с двумя дискретными видеокартами вы хотите использовать два слота, каждый из которых использует 8 дорожек.
Верный.
Вроде да. Большую часть времени скорость шины PCI0-e превышала необходимую графическую карту. Это меняется со временем. Графические процессоры становятся быстрее. Высококачественные начинают выдвигать максимальную пропускную способность. Версии PCI-e обновляются ...
Обычно топовой видеокарте хватает примерно с 8 дорожками. Аппаратное обеспечение Toms прошло тестирование в эпоху PCI-e v2, и я думаю, что результаты остаются в силе для современных установок с современными графическими картами на PCI-e v3:
x16: максимальная скорость
x8: потеря скорости на несколько% (скажем, 2-5%)
x4: все еще работает нормально для большинства вещей. Только не кладите высокопроизводительную двухпроцессорную карту в слот x4 и запускайте дисплей 4k с максимальными настройками всех игр.
Это не имеет. В настоящее время потребительские чипы Intel очень мало PCI-e линий. Не больше, чем нужно большинству целевой аудитории. Это вменяемое экономическое решение.
Их линейка Xeon имеет ЦП с большим количеством линий PCI-e. Как и некоторые из новых чипов AMD (64 линии PCI-e на процессоре AMD ThreadRipper. В два раза больше, чем на серверных продуктах)
Вместо этого у вашей материнской платы есть чипсет Z270, который обеспечивает дополнительные линии PCI-e.
Чипсет поддерживает эти конфигурации x1, x2, x4.
С максимумом х4 кажется, что 2х8 от процессора все еще является лучшим выбором для CUDA.
Многие из оставшихся линий используются материнской платой для SATA, USB, сети и т. Д. Четыре из них доступны конечным пользователям через 4 слота расширения PCIe 3.0 x1. Не кладите в них видеокарты!
Что касается NVME: у плат есть два слота PCIe Gen3 x4 Ultra M.2. Http://asrock.nl/downloadsite/Manual/Z270%20Killer%20SLIac.pdf"> руководство для этой доски упоминает:
Я не говорил ни о каком обычном «Если M.2 используется с устройством NVME, то ...», что означает, что он, вероятно, имеет выделенные линии от чипсета.
Я не вижу никакой причины, по которой интегрированная графика должна ограничивать вас. Я не подозреваю проблемы, если вы отключите его. Простое использование компьютера для вычислений может быть выполнено даже без графики (только SSH).
Мне кажется, что наличие двух видеокарт, предназначенных для вычислений, и остальной интегрированной графики (например, просто экрана конечной точки) мне кажется самым чистым. Но это не то, что можно измерить.
Лучший совет по этому вопросу - оценить, что делает ваша система. Если это вообще возможно, провел неделю с ним в тестовом режиме. Запустите его с обеими картами в x8. Мера. Используйте программное обеспечение для понижения линий PCI-e до x4. Проверьте, сколько производительности теряется. Если это меньше 1%, попробуйте одну карту в x16 и одну карту в слоте x1. Я предполагаю, что 2 * x8 будет намного лучше, но я могу ошибаться.
Делайте подобные вещи с другими настройками. Например, попробуйте запустить без гиперпоточности. (Обычно HT включен на 30% быстрее, но иногда это действительно замедляет работу, поэтому протестируйте.) Попробуйте отключить энергосбережение. и т. д.
Затем после нескольких дней тестирования с несколькими различными тестами запускается производство.
источник