2011-06-06 9 views
7

cudaMemcpy - ana bilgisayardan aygıta cihaz hatası gönder

 cudaMemcpy and cudaMemset?? 

arasındaki fark nedir? int değeri ana bilgisayardan aygıta nasıl kopyalarım? Bu

int addXdir = 1; 
int devAddXdir; 
cudaMalloc((void**)&devAddXdir, sizeof(int)); 
cudaMemcpy(devAddXdir, addXdir, sizeof(int), cudaMemcpyHostToDevice); 
kullanıyorum kod hatası veriyor: "int" türü argümanı "void *" türünde parametre ile uyuşmuyor. "int" argümanı uyuşmuyor "const void *" tipi parametre ile

+1

cudaMemcpy ve cudaMemset arasındaki fark bir kaynaktan, diğer bir işaretçi olarak bir değer almasıdır. Bu fark, iki fonksiyonun API dokümantasyonunda mükemmel bir şekilde açıklanmıştır. – talonmies

+0

Gönderildikten 5 yıl sonra bir cevabı kabul etmek bir çeşit kayıt olmalı. – talonmies

cevap

7

devAddXdir parametresinin, bu kodun çalışması için bir işaretçi olması gerekir. Ayrıca, addXdir değerini cudaMemcpy'a atıfta bulunarak, değere göre değil. Bu gibi:

int addXdir = 1; 
int * devAddXdir; 
cudaMalloc((void**)&devAddXdir, sizeof(int)); 
cudaMemcpy(devAddXdir, &addXdir, sizeof(int), cudaMemcpyHostToDevice); 
İlgili konular