[問題] cuda記憶體問題

看板C_and_CPP (C/C++)作者 (Talka穎)時間14年前 (2011/08/11 00:34), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
環境好不容易設定完之後 就開始在ptt學習 翻舊文章找到a5000ml(查詢不到網友)大大的教學文 以下是code #include<stdio.h> #include<cuda.h> int main(){ const int num=10; int* g; cudaError_t r; //主機陣列 & 初始化 int a[num], b[num]; for(int k=0; k<num; k++){ a[k]=0; b[k]=k; } //配置裝置記憶體 & 顯示錯誤訊息 問題所在!!! r=cudaMalloc((void**) &g, sizeof(int)*num); //r=cudaMalloc((void**) &g, sizeof(int)*num); printf("cudaMalloc : %s\n",cudaGetErrorString®); //複製記憶體: 主機記憶體 a[] ------> 裝置記憶體 g[] r=cudaMemcpy(g, a, sizeof(int)*num, cudaMemcpyHostToDevice); printf("cudaMemcpy a => g : %s\n",cudaGetErrorString®); //複製記憶體: 裝置記憶體 g[] ------> 主機記憶體 b[] r=cudaMemcpy(b, g, sizeof(int)*num, cudaMemcpyDeviceToHost); printf("cudaMemcpy g => b : %s\n",cudaGetErrorString®); //結果比對 bool ooo=true; for(int k=0; k<num; k++){ if(a[k]!=b[k]){ ooo=false; break; } } printf("check a==b? : %s\n",ooo?"pass":"wrong"); //釋放裝置記憶體 r=cudaFree(g); printf("cudaFree : %s\n",cudaGetErrorString®); return 0; } 正確結果: cudaMalloc : no error cudaMemcpy a => g : no error cudaMemcpy g => b : no error check a==b? : pass cudaFree : no error 我印出的結果是: cudaMalloc : no CUDA-capable device is detected cudaMemcpy a => g : no CUDA-capable device is detected cudaMemcpy g => b : no CUDA-capable device is detected check a==b? : wrong cudaFree : no CUDA-capable device is detected 而我只要在cudaMalloc那裡多重復一次配置記憶體空間就對了 (註解裡紅色字) 我不懂為什麼同樣的指標需要要兩次cudaMalloc才能夠成功要到配置 我有在思考是不是我環境有細節沒設定好 小弟用的是 vs2008+cuda4.0 或是cuda本身版本問題??? 請高手解答一下我的問題 @@" 另外小問一下有關於cuda程式設計討論區的地方嗎? nvidia的討論區似乎沒什麼人。。。。。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.221.131

08/11 01:57, , 1F
你的執行環境(顯卡)是? 錯誤訊息看起來是找不到CUDA可
08/11 01:57, 1F

08/11 01:57, , 2F
用的裝置@_@"
08/11 01:57, 2F

08/11 10:49, , 3F
GeForce 8800 GTS 有支援cuda 是漏設定嗎???
08/11 10:49, 3F

08/11 10:49, , 4F
找不到cuda可用裝置會不會是因為還沒要到記憶體配置?
08/11 10:49, 4F

08/11 11:05, , 5F
driver更新一下
08/11 11:05, 5F

08/11 19:16, , 6F
你該不會是去中文版的討論區吧....
08/11 19:16, 6F

08/11 22:11, , 7F
你可以run GPU Computing SDK 裡面 Device Query這支
08/11 22:11, 7F

08/11 22:12, , 8F
程式,他會告訴你有哪些裝置可以用,和裝置詳細資訊
08/11 22:12, 8F
文章代碼(AID): #1EGhCKc6 (C_and_CPP)
文章代碼(AID): #1EGhCKc6 (C_and_CPP)