SORU
5 Mayıs 2012, CUMARTESİ


Nasıl CUDA blok/konu CUDA çekirdeği üzerine harita çözgü/?

Birkaç hafta CUDA kullanıyorum, ama/iplik çözgü/blok tahsisi hakkında bazı şüphelerim var. Görüş didaktik bir noktadan mimarlık okuyorum(üniversite projesi), çok yüksek performans ulaşıyor beni ilgilendirmiyor.

Öncelikle, eğer bu söylediklerin doğru bende anlamak istiyorum:

  1. Programcı bir çekirdek yazar ve iplik bloklar bir ızgara yürütme düzenlemek.

  2. Her blok bir Akış İşlemcili (SM) atanır. Bir kez atanan bir SM için taşınamaz.

  3. Her SM Çözgü (şu anda 32 iş parçacığı boyutu ile kendi bloklara böler. Bir warp tüm konuları SM kaynakları üzerinde aynı anda yürütür.

  4. Bir iş parçacığı, gerçek yürütme CUDA Çekirdeği SM bilgiler tarafından yapılır. Konuları ve çekirdek arasında belirli bir eşleme yok.

  5. Bir warp 20 iplik içerir, ama şu anda sadece 16 çekirdek varsa, warp çalışmaz.

  6. Eğer bir blok 48 konuları içeriyorsa diğer taraftan, 2 çözgü bölünmüş olacak ve yeterli bellek kullanılabilir koşuluyla paralel olarak idam edecekler.

  7. Eğer bir iş parçacığı bir çekirdekte başlar, sonra hafıza erişim için durdu ya da uzun bir kayan nokta işlemi için, yürütme farklı bir temel üzerinde devam edebilir.

Doğru bunlar?

Şimdi, GeForce 560 Ti yani 8 SM, her 48 CUDA çekirdeği (toplam 384 çekirdek) içeren ile donatılmıştır özelliklerine göre var.

Amacım, mimarisi, her çekirdek AYNI talimatları yürütür emin olmaktır. Kodum olanlar her SM kullanılabilir daha fazla kayıt gerektirmez varsayarak, farklı yaklaşımlar hayal ettim:

  1. Her SM yürütmek için 1 blok 48 konuları her 8 blok oluşturmak. Bu durumda 48 konuları SM paralel (48 çekirdek onlar için geçerli istismar) yürütecek?

  2. Herhangi bir fark varsa ben 6 konuları 64 blok fırlatma var mı? (Eşit SMs arasında eşleştirilmiş olacağını varsayarsak)

  3. Eğer ben "daldırın" CPU ile çalışmak (oluşturma 1024 blok 1024 her iş parçacığı, örneğin) makul varsayıyorum tüm çekirdek mimarisi kullanılacak belirli bir noktada, ve gerçekleştirmek aynı hesaplamaları (varsayarak o konuları hiç stall)?

  4. Bu gibi durumlarda profiler kullanarak kontrol etmek için herhangi bir yolu var mı?

  5. Bunun için herhangi bir referans var mı? CUDA Programlama Kılavuzu Bölüm donanım mimarisi adanmış okudum "büyük ölçüde Paralel İşlemcileri Programlama" ve "CUDA Uygulama tasarımı ve geliştirme"; ama kesin bir cevap alamadım.

CEVAP
6 Mayıs 2012, Pazar


En iyi başvurular ikisidir

  1. NVIDIA Fermi Compute Architecture Whitepaper
  2. GF104 Reviews

Sorularınızı her cevaplamaya çalışacağım.

Programcı ızgaralar, iş parçacığı, iş parçacığı blokları içine iplikler ve iplik bloklar halinde çalışmak böler. Bilgi işlem iş dağıtıcı çoklu işlemcili (SMs) Akarsu iplik blokları ayırır. Bir kez bir iş parçacığı iş parçacığı blok blok için kaynakların bir SM (çözgü ve paylaşılan bellek) dağıtılır ve ipler 32 iplikleri çözgü denilen gruba ayrılır. Bir warp ayrılmış bir zamanlar aktif bir çarpıtma denir. İki warp program döngüsü başına iki aktif çözgü çekme ve yürütme birimlerine çözgü gönderme. Yürütme birimleri ve öğretim hakkında daha fazla bilgi için merkez 1 p bkz.7-10 ve 2.

'. D Laneid (bir çözgü iplikleri endeksi) ve çekirdek arasında bir eşleme vardır.

'. E Eğer bir warp 32'den daha az iş parçacığı varsa, çoğu durumda ise 32 iş parçacığı varsa aynı çalıştırılacaktır. Çözgü olabilir az 32 aktif iş parçacığı için birkaç sebep: parçacığı sayısı blok başına değil bölünebilen tarafından 32, programı çalıştırmak farklı bir blok yani iş parçacıklarının almadım geçerli yol, işaretli, etkin olmayan, ya da bir iplik çözgü çıkıldı.

'. F Bir iş parçacığı blok bölünecektir = ()- 1 ThreadsPerBlock WarpSize / WarpSize WarpsPerBlock Warp planlayıcılar aynı konu bloktan iki çözgü seçmek için ihtiyacı vardır. '. G Yürütme birimi bellek operasyon durak olacak. Eğer bir kaynak bir talimat gönderilecek hazır olduğunda kullanılabilir durumda değilse talimat kaynağın kullanılabilir olduğu zaman, gelecekte tekrar sevk edilecektir. Çözgü bellek işlemleri, doku işlemleri, veri bağımlılıkları üzerinde engel kabini, ... durmuş Bir warp uygun warp Zamanlayıcısı tarafından seçilecek. Fermi warp Zamanlayıcısı bir talimat verebilir, böylece döngü başına en az 2 uygun çözgü için yararlıdır.

Bir GTX480 ve GTX560 arasındaki farklar için başvuru 2 bkz.

Eğer referans malzeme (birkaç dakika) okursanız Amacınız mantıklı değil bulacaksınız düşünüyorum. Puan cevap vermeye çalışacağım.

'. 1 Sen çekirdek fırlatma<<&;8, 48>lt ^< . 32 ve 16 iş parçacığı 2 çözgü ile 8 blok, her alacak. Bu 8 çözgü farklı SMs atanacak garantisi yok. Eğer 2 çözgü bir SM için ayrılan olursa, o zaman her warp Zamanlayıcısı bir warp seçin ve warp yürütmek mümkündür. Sadece 48 çekirdek 32 kullanacaksınız.

'. 2 48 konuları 8 blok ve 6 konuları 64 bloklar arasında büyük bir fark var. Hadi çekirdek hiçbir sapma olduğunu varsayalım ve her iş parçacığı 10 yönergeleri çalıştırır.

8 48 konuları ile blok = 16 * 10 talimatları = 160 çözgü talimatları 6 iş parçacığı ile 64 blok = 64 * 10 talimatları = 640 çözgü talimatları

Optimum verim elde etmek için iş bölümü 32 konuları katları olmalıdır. Donanım farklı çözgü gelen konuları birleşim olmaz.

'. 3 Eğer çekirdek dışarı kaydeder veya paylaşılan bellek max mı yoksa GTX560 olabilir 8 SM * 8 blok = 64 saat veya 8 SM * 48 = 512 blok çözgü çözgü. Herhangi bir anda üzerinde çalışmak için bir kısmını SMs aktif olacaktır. Her SM, birden fazla yürütme birimi (CUDA daha fazla çekirdek) vardır. Herhangi bir anda kullanımda olan program ve talimat karışımı uygulama warp bağlıdır. Eğer TEX işlemleri yapın yok eğer doğru değilse TEX birimleri boşta olacak. Eğer özel bir kayan nokta işlem yapmak durumunda değil SUFU birimleri boşta olacaktır.

'. 4 Quadro ve Görsel Profiler göster bir. idam IPC b. IPC yayınladı c. aktif devir başına aktif çözgü d. aktif devir başına uygun çözgü (sadece Nsight) e. warp ahır sebep (sadece Nsight) f. Yönerge yürütüldü başına aktif konuları Profiler yürütme birimlerinin herhangi bir kullanım yüzdesi gösterme. GTX560 için kaba bir tahmin / MaxİPC İssuedİPC olurdu. MaxİPC kabul için GF100 (GTX480) 2 GF10x 4 ama 3 hedef daha iyi bir hedef.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • buttheadgsxr1000

    buttheadgsxr

    24 Ocak 2008
  • HTC

    HTC

    12 Ocak 2006
  • midomansour

    midomansour

    19 EYLÜL 2009