私は5636554752バイトのメモリを持っているはずのTesla C2070を持っています。十分なメモリ容量があることがわかっているときにcudaMallocが私にエラーを表示するのはなぜですか?
しかし、これは私にエラーを与える:
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
、それはLinuxディストリビューションロックス5.4(マーベリック)で、24インテル®Xeon®プロセッサーのX565を持っています。
アイデア?ありがとう!
あなたはどのプラットフォームにいますか? –
どのようなエラーコードが表示されますか? –
'cudaGetErrorString'を使用してエラーコードを印刷すると、いつでも役立ちます。問題のピンポイントを指定します – jwdmsd