У меня есть открытый вопрос для вас:

Я установил в своем офисе подержанный сервер для обучения наших моделей ML; он содержит 4 Xeon E7 4820 (https://ark.intel.com/products/53675/Intel-Xeon-Processor-E7-4820-18M-Cache-2_00-GHz-5_86-GTs-Intel-QPI) - 2, 00 ГГц, 8 ядер, 16 потоков каждый - 128 ГБ ОЗУ и 128 ГБ SWAP (SSD Swap).

Тем не менее, я сделал свой первый тест обучения на нем, и очень удивительно, что это было удивительно ... медленно. 11 минут на тренировку, когда на моем 8-м процессоре i5 (1,6 ГГц, 4 ядра, 8 потоков) с 8 ГБ ОЗУ и 8 ГБ подкачки требуется 5 минут.

Htop говорит мне, что параллельные вычисления включены, и пики нагрузки на процессор составляют около 3 для i5 и 22 для 4 E7; так у вас есть идея, почему существует такой разрыв производительности? Я знаю, что закон Мура - непреодолимое явление, но для 1-летнего процессора среднего класса, который превосходит 4-летний семилетний Xeon E7, я не могу обернуть голову вокруг этого. Надеюсь, вы можете помочь! :)

PS: Я уже установил Cuda и CuDNN на него, но он еще не работает, и я провел обучение только с использованием процессора. Я был настолько озадачен результатами, что перестал работать над ускорением графического процессора (у нас на сервере установлено небольшое 1050 Ti, которое я установил), чтобы решить эту проблему. Я убедился, что на обоих компьютерах работает одинаковый код.

Заранее спасибо ! :)

иней

1 ответ1

1

Ваша проблема (как и в большинстве проблем машинного обучения), вероятно, связана с пропускной способностью памяти.

Машинное обучение не особенно интенсивно вычисляет ЦП, оно выполняет много "простых" вычислений, но сильно ограничено пропускной способностью для памяти. Это одна из причин того, что потоковые процессоры видеокарт так хороши для этого. Каждый потоковый процессор относительно ограничен (по сравнению с процессором), но для более простых операций их огромная пропускная способность и огромное количество процессоров более чем компенсируют их ограничения.

Чтобы выбрать случайное 8-е поколение i5:

Max Memory Bandwidth    41.6 GB/s

CPUboss, похоже, предполагает, что пропускная способность памяти E7-4820 первого поколения составляет 23 ГБ / с (23 464 МБ / с)

Многопроцессорная машина должна будет постоянно копировать память между процессорами или иным образом делиться доступом к памяти из одного процессора в другой.

Начнем с того, что сочетание старой памяти и существенно более низкой пропускной способности, вероятно, наносит ущерб старой системе.

Более новые Xeons требуют пропускной способности выше 85 ГБ / с.

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