Cuda Programlama Kılavuzu'ndaki bu basit soruya bir cevap bulamıyorum: nvcc ile bir çekirdek derlerken, hangi büyüklük tamsayı kısa, int, long ve tarafından bildirilir uzun uzun? Ev sahibi mimarime bağlı mı, bu yüzden int16_t, int32_t ve int64_t kullanmalı mıyım yoksa her zaman sabit bir boyut mu?Cuda çekirdekleri programlanırken tam boyut ne boyuttadır
11
A
cevap
10
Bu, ana bilgisayar derleyicisine bağlıdır. Spesifik olarak, nvcc
'un bu tiplerin tanımı, ana bilgisayar derleyicisinin temsiliyle uyumlu olacaktır. Uygulamada
char
,
short
ve
int
veri tipleri tüm platformlar üzerinde öngörülebilir boyutları CUDA destekler (8, 16, ve 32 bit sırası) sahiptir. Bununla birlikte,
long
boyutu, platformdan platforma değişir.
Bunun doğru olduğuna emin misin? Cihaz kodunun ptx komutlarına dönüştürülmesi gerekiyor. Bu sürecin mimariye özgü olması garip olurdu. CUDA dokümanlarına baktım ve hiçbir şey bulamadım. – nsanders
Evet, cihaz veri türleri ana bilgisayar türleriyle eşleşmelidir, aksi halde ana makineye ne kadar memcpy yapılacağını tahmin etmek imkansız olurdu. – Edric
Teşekkürler. Tam olarak ihtiyacım olan buydu. Ev sahibi kodum ile çekirdek kodum arasındaki türlerin eşleştirilmesinden sorumlu olsaydım, bir kabus olurdu çünkü mantıklı geliyor. –