2011-11-17 48 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并检查结果。