Saya telah melihat diskusi tentang 'overhead' GPU, dan untuk jaringan 'kecil', mungkin sebenarnya lebih cepat untuk berlatih menggunakan CPU (atau jaringan CPU) daripada GPU.
Apa yang dimaksud dengan 'kecil'?
Misalnya, apakah MLP satu-lapis dengan 100 unit tersembunyi akan 'kecil'?
Apakah definisi kami tentang 'kecil' berubah untuk arsitektur berulang?
Apakah ada kriteria lain yang harus dipertimbangkan ketika memutuskan apakah akan berlatih pada CPU atau GPU?
EDIT 1:
Saya baru saja menemukan posting blog (mungkin kedaluwarsa? Ini dari 2014):
"... Sebagian besar kartu jaringan hanya bekerja dengan memori yang terdaftar pada CPU dan dengan demikian transfer GPU ke GPU antara dua node akan seperti ini: GPU 1 ke CPU 1 ke Kartu Jaringan 1 ke Kartu Jaringan 2 ke CPU 2 hingga GPU 2. Artinya, jika seseorang memilih kartu jaringan yang lambat maka mungkin tidak ada speedup di satu komputer. Bahkan dengan kartu jaringan yang cepat, jika cluster besar, seseorang bahkan tidak mendapatkan speedup dari GPU jika dibandingkan ke CPU karena GPU hanya bekerja terlalu cepat untuk kartu jaringan untuk mengikutinya.
Ini adalah alasan mengapa banyak perusahaan besar seperti Google dan Microsoft menggunakan CPU daripada cluster GPU untuk melatih jaringan saraf besar mereka. "
Jadi pada titik tertentu, menurut posting ini, bisa lebih cepat menggunakan CPU. Apakah ini masih terjadi?
EDIT 2: Ya, posting blog itu mungkin sudah usang karena:
Sekarang tampaknya GPU dalam sebuah node terhubung melalui PCIe bus, sehingga komunikasi dapat terjadi pada sekitar 6GiB / s. (Misalnya: https://www.youtube.com/watch?v=el1iSlP1uOs , sekitar 35 menit dalam). Pembicara menyiratkan bahwa ini lebih cepat daripada pergi dari GPU1 ke CPU ke GPU2. Itu berarti kartu jaringan tidak lagi menjadi hambatan.