【发布时间】:2012-02-12 22:12:28
【问题描述】:
我有一个应该有 5636554752 字节内存的 Tesla C2070。
但是,这给了我一个错误:
int *buf_d = NULL;
err = cudaMalloc((void **)&buf_d, 1000000000*sizeof(int));
if( err != cudaSuccess)
{
printf("CUDA error: %s\n", cudaGetErrorString(err));
return EXIT_ERROR;
}
这怎么可能?这与最大内存间距有关吗?以下是 GPU 的规格:
Device 0: "Tesla C2070"
CUDA Driver Version: 3.20
CUDA Runtime Version: 3.20
CUDA Capability Major/Minor version number: 2.0
Total amount of global memory: 5636554752 bytes
Multiprocessors x Cores/MP = Cores: 14 (MP) x 32 (Cores/MP) = 448 (Cores)
Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 49152 bytes Total number of registers available per block: 32768 Warp size: 32
Maximum number of threads per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 1
Maximum memory pitch: 2147483647 bytes
至于我运行的机器,它有 24 个 Intel® Xeon® 处理器 X565,带有 Linux 发行版 Rocks 5.4 (Maverick)。
有什么想法吗?谢谢!
【问题讨论】:
-
你在什么平台上?
-
你得到什么错误代码?
-
使用“cudaGetErrorString”打印错误代码总是有帮助的。这将查明问题
-
您能否指定您得到的错误字符串,并通过减小大小来查看您在什么时候停止收到该错误。
-
我在更新中添加了更多信息。错误是“内存不足”