2013-06-07 20 views
6

NVidia GPU'daki çekirdek sayısı, SMP sayısı ve maksimum iplik sayısı arasındaki ilişki ile kafam karıştı. Dizüstü bilgisayarımın GT650m cihaz özellikleri, SMP başına 1024 dişe sahip 384 çekirdek, 2 SMP gösterir.CUDA çekirdekleri vs iplik sayısı

Bu sayılar birbirleriyle nasıl ilişkili ve çözgü büyüklüğü? SMP başına 192 çekirdek olduğunu varsayabilirim (belki de yanlış), ancak bu 1024 bir faktör değildir. Her çekirdek 32 iplikten oluşan bir warp çalıştırıyorsa, SMP başına 32 * 192 iş parçacığı beklerim, veya 2^5 * (2^7 + 2^6), veya 4096 + 2048 = 6142.

Neler eksik?

cevap

9

Cuda'daki kernelleri daha derinlemesine incelemelisiniz. blok ve sonra çözgü içine dilimlenmiş bloğun

Her blok tek SM üzerinde planlanan ve orada edilmiyor konu:

iki önemli boyutu vardır. Dolayısıyla, bloklar, SM belleğinde bulunduğu için, yalnızca blok içinde erişilebilen bir paylaşılan belleğe sahiptir, . SM başına blokları sayısı cihaz limitine ve kullanım miktarına bağlıdır. SM başına maksimum blok CC 1.0-2.x için 8 ve CC 3.x için 16'dır.

Her blok blok başına parçacığı belirli sayıda vardır. İplikler parçalarına ayrılmıştır ve çözgü sadece rasp- programlayıcı tarafından belirlenen bir sırayla çalıştırılabilir.

Artık kartınızın her birinde 192 çekirdek bulunan 2 SM'de toplam 384 çekirdek bulunmaktadır. CUDA çekirdek sayısı, döngü başına çalıştırılabilecek tek hassas kayan nokta veya tam sayı iş parçacığı yönergelerinin toplam sayısını gösterir. Herhangi bir hesaplamada CUDA çekirdeklerini dikkate almayın.

maksimum iş parçacığı sayısı, işlem kapasitesine göre değişir. CC2.0-3.x, yeterli yazmaç ve çözgü yuvaları verilen blok başına maksimum 1024 dişi destekler. Çözgülerin statik olarak çözgü programlayıcılarına atanması. SM başına warp zamanlayıcı sayısı CC 1.x için 2, CC 2.x için 2 ve CC 3.x için 4'tür. Uygulamanız eşzamanlı çekirdekler uygulanmazsa, her SM'yi kullanmak için gridDim'in> = SM blok sayısı olmalıdır.

GTX650m için bilgi işlem gücünü tam olarak kullanabilmeniz için en az iki blok olmalıdır (aksi halde bir SM'yi yalnızca bir blok ile kullanabilirsiniz). Diğer yandan, 10240 iş parçacığı programlamak istiyorsanız, her biri 1024 iş parçacığının 10 bloğunu kolayca programlayabilirsiniz.

+0

Teşekkürler. Çözgü planlaması benim eksik olduğum şeydi, bence. –