Я бачив дискусії з приводу "накладних витрат" GPU, і що для "малих" мереж тренування на процесорі (або мережі процесорів) може бути швидше, ніж на графічному процесорі.
Що означає «малий»?
Наприклад, чи буде одношаровий MLP зі 100 прихованими одиницями "малим"?
Чи змінюється наше визначення "малої" для періодичних архітектур?
Чи є якісь інші критерії, які слід враховувати, вирішуючи, чи тренуватись на процесорі чи GPU?
EDIT 1:
Щойно я знайшов повідомлення в блозі (можливо, застарів? Це з 2014 року):
"... Більшість мережевих карт (ив) працюють лише з пам'яттю, яка зареєстрована в процесорі, і передача GPU на GPU між двома вузлами виглядатиме так: GPU 1 до CPU 1 до Network Card 1 до Network Card 2 до CPU 2 2 до GPU 2. Це означає, що якщо вибираєте повільну мережеву карту, то не може бути жодного прискорення роботи на одному комп’ютері. Навіть при швидких мережевих картах, якщо кластер великий, не можна отримати навіть прискорення з графічних процесорів у порівнянні до процесорів, оскільки графічні процесори просто працюють надто швидко, щоб мережеві карти не відставали від них.
Це причина, чому багато великих компаній, таких як Google і Microsoft, використовують CPU, а не GPU кластери для навчання своїх великих нейронних мереж. "
Тож у якийсь момент, згідно з цим повідомленням, можна було б швидше використовувати процесори. Це все-таки так?
EDIT 2: Так, ця публікація в блозі може бути застарілою, оскільки:
Зараз здається, що графічні процесори в вузлі підключені через шину PCIe, тому зв’язок може відбуватися близько 6 Гбіт / с. (Наприклад: https://www.youtube.com/watch?v=el1iSlP1uOs , близько 35 хвилин). Доповідач означає, що це швидше, ніж перехід від GPU1 до процесора до GPU2. Це означало б, що мережева карта вже не вузьке місце.