【发布时间】:2015-11-30 22:11:00
【问题描述】:
我有一个带有 CUDA 7.5 的 GTX 970,并以 5.2 的计算能力进行编译。当我使用以下尺寸运行此内核时,我得到 cudaErrorInvalidValue。这些尺寸对这个内核有效还是我错过了其他东西?
dim3 blockDim(4, 4, 4);
dim3 gridDim((width + blockDim.z - 1)/ blockDim.z,
(height + blockDim.y - 1) / blockDim.y,
(depth + blockDim.z - 1) / blockDim.z);
icabsm_kernel<<<gridDim, blockDim>>>(threeDim,
b_count,
width,
height,
depth,
dev_md,
dev_d0,
dev_d1,
dev_num_fibers,
dev_fr,
dev_fib_fa,
dev_fib_dir,
dev_g_dg,
dev_invg_dg,
dev_signalData);
cudaError_t err = cudaGetLastError();
if(err != cudaSuccess)
printf("Error: %s\n", cudaGetErrorString(err));
cudaDeviceSynchronize();
宽度 = 96,高度 = 96,深度 = 72, 我得到了:
blockDim = {4, 4, 4}
gridDim = {24, 24, 18}
附言。我已经查看了所有其他解决方案,但在我的情况下都没有任何意义。 提前致谢。
更新:在我上次的 cudaMalloc 中,我忘记将大小乘以 sizeof(float) 并且 cudaMemcpy 说大小不匹配!愚蠢的我。
【问题讨论】: