2

Я собираюсь создать 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 часов за неделю использования графического процессора

1 ответ1

1

TLDR:

Будет ли в M.2 NVMe или встроенной графике медленная дискретная видеокарта?

В этом конкретном случае, вероятно, нет.


Глубокое обучение включает в себя выполнение алгоритмов на основе CUDA в течение нескольких дней на графическом процессоре и передачу большого объема данных между графическим процессором / процессором / твердотельным накопителем. Узкие места будут складываться.

У меня вообще нет опыта работы с 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 дорожек.

Так что я беспокоюсь о PCIe Lanes. Как я понимаю, процессор только 16.

Правильный.

Насколько я понимаю, 8х полос достаточно для GPU, но в 4х наблюдается некоторое замедление.

Вроде да. Большую часть времени скорость шины PCI0-e превышала необходимую графическую карту. Это меняется со временем. Графические процессоры становятся быстрее. Высококачественные начинают выдвигать максимальную пропускную способность. Версии PCI-e обновляются ...

Обычно топовой видеокарте хватает примерно с 8 дорожками. Аппаратное обеспечение Toms прошло тестирование в эпоху PCI-e v2, и я думаю, что результаты остаются в силе для современных установок с современными видеокартами на PCI-e v3:

х16: максимальная скорость
x8: потеря скорости на несколько% (скажем, 2-5%)
х4: по-прежнему работает нормально для большинства вещей. Только не кладите высокопроизводительную двухпроцессорную карту в слот x4 и запускайте дисплей 4k с максимальными настройками всех игр.

(Я изначально волновался, что NVMe SSD выберет дорожки, но кажется, что у CPU есть 4 дополнительные линии ввода-вывода)

Это не имеет. В настоящее время потребительские чипы Intel очень мало PCI-e линий. Не больше, чем нужно большинству их целевой аудитории. Это вменяемое экономическое решение.

Их линейка Xeon имеет ЦП с большим количеством линий PCI-e. Как и некоторые из новых чипов AMD (64 линии PCI-e на процессоре AMD ThreadRipper. В два раза больше, чем на серверных продуктах)

Вместо этого у вашей материнской платы есть чипсет Z270, который обеспечивает дополнительные линии PCI-e.

Чипсет поддерживает эти конфигурации x1, x2, x4.

С максимальным значением x4 кажется, что 2x8 от процессора все еще является лучшим выбором для CUDA.

Многие оставшиеся линии используются материнской платой для SATA, USB, сети и т.д. Четыре из них доступны конечным пользователям через 4 слота расширения PCIe 3.0 x1. Не кладите в них видеокарты!

Что касается NVME: у плат есть два слота PCIe Gen3 x4 Ultra M.2. Http://asrock.nl/downloadsite/Manual/Z270%20Killer%20SLIac.pdf"> руководство для этой доски упоминает:

* If M2_1 is occupied by a SATA-type M.2 device, SATA_5 will be disabled.  
* If M2_2 is occupied by a SATA-type M.2 device, SATA_0 will be disabled.

Я не говорил ни о каком обычном «Если M.2 используется с устройством NVME, то ...», что означает, что он, вероятно, имеет выделенные линии от чипсета.

Оставлю ли 2 графических процессора для вычислений, или же встроенная графика создаст узкое место (то есть форсирует 8x4x4x, а не 8x8x для GPU) для графических процессоров (имеется в виду, что, возможно, мне следует отключить интегрированный и совместно использовать 1 графический процессор с пользовательским интерфейсом рабочего стола).

Я не вижу причин, по которым интегрированная графика должна ставить вас в тупик. Я не подозреваю проблемы, если вы отключите его. Простое использование машины для расчетов может быть выполнено даже без графики (только SSH).

Мне кажется, что наличие двух видеокарт, предназначенных для вычислений, и остальной интегрированной графики (например, просто экрана конечной точки) мне кажется самым чистым. Но это не что-то, что может дать количественную оценку.

Моя цель - получить максимальную производительность от графических процессоров. Если есть узкие места, я хочу знать, может ли это привести к разнице в производительности более чем на 5%, которая умножается на 8 часов за неделю использования графического процессора

Лучший совет по этому вопросу - оценить, что делает ваша система. Если это вообще возможно, провел неделю с ним в тестовом режиме. Запустите его с обеими картами в x8. Мера. Используйте программное обеспечение для понижения линий PCI-e до x4. Проверьте, сколько производительности теряется. Если это меньше 1%, попробуйте одну карту в x16 и одну карту в слоте x1. Я предполагаю, что 2 * x8 будет намного лучше, но я могу ошибаться.

Делайте аналогичные вещи с другими настройками. Например, попробуйте бегать без гиперпоточности. (Обычно HT включен на 30% быстрее, но иногда это действительно тормозит, так что тестируйте.) Попробуйте отключить энергосбережение. и т. д.

Затем после нескольких дней тестирования с несколькими различными тестами запускается производство.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .