久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Ubuntu 9.04下如何實(shí)現(xiàn)CUDA編程

共計(jì) 1623 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。

這篇文章給大家分享的是有關(guān) Ubuntu 9.04 下如何實(shí)現(xiàn) CUDA 編程的內(nèi)容。丸趣 TV 小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨丸趣 TV 小編過(guò)來(lái)看看吧。

CUDA SDK 的實(shí)例都在 src 目錄下,每一個(gè)實(shí)例都有一個(gè)自己的目錄, 例如 deviceuery,在它的目錄下還有一個(gè)編譯時(shí)候使用的 Makefile 文件,這是編譯單個(gè)項(xiàng)目的?,F(xiàn)在我們將所有實(shí)例都編譯一遍,在 CUDA_SDK 根目錄下運(yùn)行 sudo make 之后,可以在 /bin/linux/release 下看到編譯之后的可執(zhí)行程序,運(yùn)行即可看到結(jié)果。

這是 deviceQuery 的運(yùn)行結(jié)果:

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

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 // 為本地分配內(nèi)存

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 // 將本地內(nèi)存的中的數(shù)據(jù)復(fù)制到設(shè)備中

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 // 分配存放結(jié)果的空間

43 float* d_C;

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

45

46  // 定義 16 個(gè)線(xiàn)程

47  dim3 dimblock(16);

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

49

50  // 講計(jì)算結(jié)果復(fù)制回主存中

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

52

53  // 輸出計(jì)算結(jié)果

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

55  {

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

57  }

58

59  // 釋放主機(jī)和設(shè)備內(nèi)存

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 }

感謝各位的閱讀!關(guān)于“Ubuntu 9.04 下如何實(shí)現(xiàn) CUDA 編程”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-25發(fā)表,共計(jì)1623字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 固原市| 大邑县| 开远市| 泗洪县| 南陵县| 临武县| 凤阳县| 阳信县| 通许县| 嘉定区| 盐池县| 上犹县| 清水县| 隆回县| 南投县| 绥江县| 澄迈县| 芷江| 安乡县| 道孚县| 敖汉旗| 黎川县| 大足县| 伊宁县| 杭锦后旗| 琼海市| 个旧市| 垣曲县| 桐庐县| 包头市| 密云县| 扎兰屯市| 松江区| 武安市| 休宁县| 杭锦旗| 奎屯市| 双流县| 平原县| 司法| 长武县|