cuCtxDestroy return value 1: CUDA_ERROR_INVALID_VALUE

lapidarylee 2010-03-24 02:31:26

請教
在加入一段調用global函數之後,在程式最後的 cuCtxDestroy回傳值從CUDA_SUCCESS變為CUDA_ERROR_INVALID_VALUE
且雖然最後得到的數值答案看似是對的,但運算速度明顯不如預期,且 cpu usage會爆增...
可能是哪兒出了問題呢?!
謝謝

...全文
248 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
还有b是如何定义的?
  • 打赏
  • 举报
回复
size多大?
lapidarylee 2010-03-25
  • 打赏
  • 举报
回复


一開始發現在function內做下列三行時:
cudaMalloc((void**) &b, Size);
Test<<<grid, block>>>();
cudaThreadSynchronize();
會return CUDA_ERROR_INVALID

在mark掉另外二行,只保留cudaMalloc時
cudaMalloc((void**) &b, Size);
//Test<<<grid, block>>>();
//cudaThreadSynchronize();
一樣得到 CUDA_ERROR_INVALID

然而,將runtime api cudaMalloc換置成 driver api cuMemAlloc如下
cuMemAlloc(&b, Size);
//Test<<<grid, block>>>();
//cudaThreadSynchronize();
時卻可得 CUDA_SUCCESS

但launch空的kernel function
cuMemAlloc(&b, Size);
Test<<<grid, block>>>();
//cudaThreadSynchronize();
時又得到了 CUDA_ERROR_INVALID

且打開cudaThreadSynchronize
cuMemAlloc(&b, Size);
//Test<<<grid, block>>>();
cudaThreadSynchronize();
後也從CUDA_SUCCESS變為CUDA_ERROR_INVALID

還是搞不清楚究竟問點題在何處,有請前輩們指引方向
謝謝
  • 打赏
  • 举报
回复
可能主机内存访问有问题.或则,cuda调用(cuda的api)的参数没有设置正确.

231

社区成员

发帖
与我相关
我的任务
社区描述
CUDA on Windows XP
社区管理员
  • CUDA on Windows XP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧