首页 > 代码库 > device not ready cuda
device not ready cuda
问题描述:
CUDA: 使用cudaEventElapsedTime时返回device not ready error
强调下我是用谷歌大神搜索到的结构哦!
http://stackoverflow.com/questions/6551121/cuda-cudaeventelapsedtime-returns-device-not-ready-error
我自己的环境是用的Tesla C2070 GPU,也不知道为什么会出现这个问题,但是根据网上这个方法是可以解决问题的。
方案如下:
1 cudaError_t err; 2 cudaEvent_t start, stop; 3 cudaEventCreate(&start); 4 cudaEventCreate(&stop); 5 err = cudaEventRecord(start, 0); 6 f(err != cudaSuccess) { 7 printf ("\n\n 1. Error: %s\n\n", cudaGetErrorString(err)); 8 exit(1); 9 }10 // actual code11 cudaThreadSynchronize();12 err = cudaEventRecord(stop, 0);13 if(err != cudaSuccess) {14 printf ("\n\n2. Error: %s\n\n", cudaGetErrorString(err));15 exit(1);16 }17 err = cudaEventElapsedTime(&elapsed_time, start, stop);18 f(err != cudaSuccess) {19 printf ("\n\n 3. Error: %s\n\n", cudaGetErrorString(err));20 exit(1);21 }
对如上代码调整如下:
将11行代码和12行代码对换位置。
这样就OK了!
但是,如果GPU是其他结构的如fermi架构就不用修改,原因未知!
device not ready cuda
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。