Bir GPU’nun “ek yükü” hakkında tartışmalar gördüm ve “küçük” ağlar için bir CPU’da (veya CPU ağında) çalışmak GPU’dan daha hızlı olabilir.
'Küçük' ile kastedilen nedir?
Örneğin, 100 gizli üniteye sahip tek katmanlı bir MLP 'küçük' olur mu?
'Küçük' tanımımız tekrarlayan mimarilerde değişiyor mu?
CPU veya GPU'da eğitim alıp almayacağınıza karar verirken göz önünde bulundurulması gereken başka kriterler var mı?
EDIT 1:
Daha yeni bir blog yazısı buldum (muhtemelen modası geçmiş? 2014'ten itibaren):
"... Çoğu ağ kartı []] yalnızca CPU’ya kayıtlı bellekle çalışır ve bu nedenle iki düğüm arasında GPU’dan GPU’ya aktarma şu şekilde olur: GPU 1’den CPU 1’e, Ağ Kartı 1’den Ağ Kartı 2’den CPU’ya 2 2'den GPU'ya 2. Bu ne anlama gelir, eğer biri yavaş bir ağ kartı seçerse o zaman tek bir bilgisayar için hız olmayabilir. GPU'lar, CPU'ların sadece ağ kartlarının bunlara ayak uydurabilmesi için çok hızlı çalıştığını gösterir.
Bu nedenle, Google ve Microsoft gibi birçok büyük şirketin, büyük sinir ağlarını eğitmek için GPU kümeleri yerine CPU kullanması nedeni budur. "
Yani bir noktada, bu yayına göre, CPU'ları kullanmak daha hızlı olabilirdi. Bu hala böyle mi?
2 EDIT: Evet, bu blog yazısı çok eski olabilir, çünkü:
Şimdi bir düğüm içindeki GPU'ların PCIe veri yolu üzerinden bağlandığı görülüyor, bu yüzden iletişim yaklaşık 6GiB / s'de gerçekleşebilir. (Örneğin: https://www.youtube.com/watch?v=el1iSlP1uOs , yaklaşık 35 dakika içinde). Hoparlör, bunun GPU1'den CPU'ya GPU2'ye geçmekten daha hızlı olduğunu belirtir. Bu, ağ kartının artık tıkanıklık olmadığı anlamına gelir.