2011-11-17 75 views
-1

我使用CUDA的,我需要字節分配到內存:出使用cudaMallocPitch內存

cudaMallocPitch((void **) &query_dev, &query_pitch_in_bytes, max_nb_query_traited * size_of_float, height + ref_width); 

in which: 

float *query_dev; 
size_t query_pitch_in_bytes; 
size_t max_nb_query_traited; 
int height; 
int ref_width 

但我得到「內存不足」。用cudaMallocPitch有沒有安全的方法?

預先感謝

+0

你試圖分配多少內存?你的顯卡有多少內存? – jmsu

+0

我錯了,問題不在於內存分配。這是因爲cublas圖書館。 – olidev

+0

由於OP表明原因與他的問題描述無關,因此被降級並投票結束,但並未刪除該問題。 – harrism

回答

1

因爲在CUDA的存儲器操作是阻塞,他們提出了一個同步點。所以如果不用cudaThreadSynchonize進行檢查,其他錯誤在內存調用中看起來就像是錯誤。

因此,如果在內存操作上收到錯誤,請嘗試在它之前放置一個cudaThreadSynchronize並檢查結果。