91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ubuntu 9.04下如何實現CUDA編程

發布時間:2021-11-16 13:47:53 來源:億速云 閱讀:177 作者:小新 欄目:系統運維

這篇文章給大家分享的是有關Ubuntu 9.04下如何實現CUDA編程的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

CUDA SDK的實例都在src目錄下,每一個實例都有一個自己的目錄,例如deviceuery,在它的目錄下還有一個編譯時候使用的Makefile文件,這是編譯單個項目的。現在我們將所有實例都編譯一遍,在CUDA_SDK根目錄下運行sudo make之后,可以在 /bin/linux/release下看到編譯之后的可執行程序,運行即可看到結果。

這是deviceQuery的運行結果:

 Ubuntu 9.04下如何實現CUDA編程

那么到這里相信讀者應該想到了我們完全可以利用這些實例來創建我們自己的工程。再實例中有一個template,將該目錄下src中的.cu、.cpp文件刪除,將obj目錄下的內容清空,這就成為一個空的CUDA工程,可以再src下編寫程序,然后在Makefie中將編譯的文件名修改正確,編譯即可。所生成的執行文件在CUDA_SDK_HOME/bin/linux/release下。這里是一個測試代碼,執行矩陣加法運算的:

1 #include

2 #include

3 #include

4 #include

5 #include

6

7 #define VEC_SIZE 16

8

9 //kernel function

10 __global__ void vecAdd(float* d_A,float* d_B,float* d_C)

11 {

12  int index=threadIdx.x;

13 d_C[index]=d_A[index]+d_B[index];

14 }

15

16 int main()

17 {

18 //得到分配空間的大小

19 size_t size=VEC_SIZE*sizeof(float);

20

21 //為本地分配內存

22 float* h_A=(float*)malloc(size);

23 float* h_B=(float*)malloc(size);

24 float* h_C=(float*)malloc(size);
25

26 //初始化

27 for (int i=0;i<VEC_SIZE;++I)< p>

28 {

29 h_A[i]=1.0;

30 h_B[i]=2.0;

31 }

32

33 //將本地內存的中的數據復制到設備中

34 float* d_A;

35 cudaMalloc((void**)&d_A,size);

36 cudaMemcpy(d_A,h_A,size,cudaMemcpyHostToDevice);

37

38 float* d_B;

39 cudaMalloc((void**)&d_B,size);

40 cudaMemcpy(d_B,h_B,size,cudaMemcpyHostToDevice);

41

42 //分配存放結果的空間

43 float* d_C;

44         cudaMalloc((void**)&d_C,size);

45

46         //定義16個線程

47         dim3 dimblock(16);

48         vecAdd<<<1,dimblock>>>(d_A,d_B,d_C);

49

50         //講計算結果復制回主存中

51         cudaMemcpy(h_C,d_C,size,cudaMemcpyDeviceToHost);

52

53         //輸出計算結果

54         for (int j=0;j<VEC_SIZE;++J)< p>

55         {

56                printf("%f\t",h_C[j]);

57         }

58

59         //釋放主機和設備內存

60         cudaFree(d_A);

61         cudaFree(d_B);

62         cudaFree(d_C);

63

64         free(h_A);

65         free(h_B);

66         free(h_C);

67

68         return 0;

69 }

感謝各位的閱讀!關于“Ubuntu 9.04下如何實現CUDA編程”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨玉县| 广饶县| 南丰县| 宁强县| 内丘县| 沙湾县| 唐河县| 新巴尔虎左旗| 泽库县| 临澧县| 孟津县| 建宁县| 嘉义县| 益阳市| 长子县| 海原县| 东辽县| 桦南县| 锡林浩特市| 江山市| 安庆市| 安龙县| 米易县| 金坛市| 易门县| 云龙县| 河南省| 天长市| 潍坊市| 屏山县| 萍乡市| 育儿| 盐边县| 庄浪县| 渝中区| 清河县| 东安县| 玉林市| 莱西市| 永济市| 江安县|