2010-10-14 8 views
11

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

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.

+1

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

+2

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

+0

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. –

İlgili konular