Мои 4 Xeon E7 имеют более низкие характеристики, чем один 8-й Gen i5

401
Frost

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

Я установил в своем офисе подержанный сервер для обучения наших моделей 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, которое я установил), чтобы решить эту проблему. Я убедился, что на обоих компьютерах работает одинаковый код.

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

иней

0
Какой процессор у I5? davidgo 6 лет назад 0
Вот оно, Intel Core i5 8250U: https://ark.intel.com/products/124967/Intel-Core-i5-8250U-Processor-6M-Cache-up-to-3_40-GHz Frost 6 лет назад 0

1 ответ на вопрос

1
Mokubai

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

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

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

Max Memory Bandwidth 41.6 GB/s 

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

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

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

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

Я не думал об этом, это объяснило бы все, в том числе тот факт, что такая же разница наблюдалась для сопоставимых процессоров. Спасибо! Как вы думаете, есть ли какой-нибудь способ, которым я мог бы воспользоваться этим сервером? (у него определенно есть приличная вычислительная мощность, было бы стыдно не использовать его) Frost 6 лет назад 0
Благодаря значительно большему объему оперативной памяти ничто не мешает вам использовать ее для более крупных моделей, о которых вы не возражаете потратить немного больше времени; вероятно, это будет быстрее, если объем используемой памяти превысит объем системной памяти i5. Кроме того, я не мог начать догадываться, для чего еще можно использовать такую ​​машину ... Mokubai 6 лет назад 0
Ну, вы были очень полезны, большое спасибо! Одним из главных преимуществ машины было то, что у нее много слотов, доступных для графических процессоров, поэтому я быстро вернусь к оптимизации графического процессора :) Еще раз спасибо! Frost 6 лет назад 0
С четырьмя процессорами я бы предположил, что все они имеют одинаковый объем памяти, теоретически каждый процессор может тренировать набор моделей индивидуально, так что если вам нужно сделать 4 тонко разных модели одновременно, то снова Xeons вероятно, будет быстрее в целом. Вам просто нужно разобраться, как использовать определенный процессор и подключенную к нему оперативную память. Тогда у вас будет (теоретическая) общая пропускная способность 92 ГБ / с, хотя только при выполнении 4 комплектов вместо одного. Mokubai 6 лет назад 0
Если вы хотите эффективно использовать многопроцессорный компьютер, вам необходимо принять во внимание его конфигурацию NUMA. Процессор должен в основном обращаться к напрямую подключенной памяти. Не знаю, если кто-то написал программное обеспечение ML с мыслью о NUMA. Daniel B 6 лет назад 2
Хорошо, я проверю это. Тем не менее, я настроил все для GTX 1050Ti, и мое время обучения сократилось с 11 минут до 25 секунд, поэтому я бы сказал, что более интересно приумножать графические процессоры, а не пытаться использовать эти процессоры. Это немного стыдно, но я получил хорошую подержанную сделку, так что все в порядке :) Я буду держать вас в курсе, если найду решения по распределению операций по нескольким процессорам, спасибо всем! :) Frost 6 лет назад 0

Похожие вопросы