我有一个特斯拉C2070应该有5636554752字节的内存.
但是,这给了我一个错误:
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;
}
Run Code Online (Sandbox Code Playgroud)
这怎么可能?这是否与最大内存间距有关?以下是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 …Run Code Online (Sandbox Code Playgroud) 在CUDA应用程序抛出异常后,CUDA文档不清楚内存数据如何变化.
例如,内核启动(动态)遇到异常(例如Warp超出范围的地址),将停止当前的内核启动.在此之后,设备上的数据(例如__device__变量)是否仍然保留,或者它们是否与例外一起被删除?
一个具体的例子是这样的:
有人能说明这背后的理由吗?