2011-01-12 10 views
10

CUDA kodunuzu derlerken, kodunuzun hangi mimaride üretildiğini seçmeniz gerekir. nvcc temelde, bu mimariyi belirtmek için iki parametre sunar:nvcc kullanılırken öntanımlı kod ve kod seçenekleri için varsayılan değerler nedir?

  • archsm_10, sm_11 vs. olabilir compute_10, compute_11 olabilir sanal arquictecture, vb
  • code gerçek mimarisini belirtir belirtir

Yani böyle bir komut:

nvcc x.cu -arch=compute_13 -code=sm_13 

1.3 işlem kabiliyetine sahip aygıtlar için 'küp' kodu üretecektir. Yanılıyorsam lütfen beni düzeltin. Bilmek istediğim, bu iki parametre için varsayılan değerler hangileridir? archveyacodeiçin hiçbir değer belirtildiğinde nvcc kullandığı varsayılan mimarisi hangisi?

+2

Kodunuzu ayrıntılı bayrağı kullanarak derlerseniz, kullanılan varsayılan sanal mimariyi görürsünüz. –

cevap

8

Tamam, nihayet varsayılan değerleri bulmayı başardım. NVCC belgelerindeki tüm bölümün baştan sona çok kapsamlı bir şekilde okunamaması benim hatamdı. Yani,

nvcc x.cu 

olanlar varsayılan değerlerdir

nvcc x.cu –arch=compute_10 -code=sm_10,compute_10 

için eşdeğerdir. Derleme, varsayılan olarak sanal mimariye compute_10 ve derlemeden kaynaklanan a.out, sm_10 gerçek mimarisi için CUBIN kodunu ve compute_10 mimarisinin PTX derleme kodunu içerecek ve tam zamanında yeniden derlenecek Mimariniz sm_10'dan büyükse, CUDA sürücüsü tarafından.

+2

Varsayılan mimari [şimdi CUDA sürümüne göre değişir] (http://stackoverflow.com/questions/28932864/cuda-compute-capability-requirements), yeni sürümlerle birlikte. –

2

Varsayılan olarak compute_10 olduğuna inanıyorum, çünkü istediğinizi açıkça belirtmediğiniz sürece hiçbir compute_13 özelliğini kullanamazsınız. (Muhtemelen CUDA araç takımıyla birlikte gelen NVCC belgeleri belirtir, ancak çevrimiçi bir bağlantı bulamıyorum).

+0

Sanırım haklısın. NVCC belgelerine baktığımda bu bilgiyi bulamadım. Yine de tekrar bakacağım. – Auron

+0

Hmm, '-code' için varsayılan değer '-arch' içinde belirtilen değerdir, ancak' -arch' için varsayılan değer hangisi olduğunu bulamıyorum. – Auron