成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Ubuntu 9.04下CUDA編程起步

系統(tǒng) Linux
前一陣子把蟻群算法和改進(jìn)的K-Means算法都搞定了,然后一直在看CUDA編程,前面看CUDA的介紹,一直認(rèn)為會(huì)C之后CUDA就很容易上手,其實(shí)不然,還需要了解一些GPU的體系結(jié)構(gòu)相關(guān)的知識才能寫出好的程序來

前一陣子把蟻群算法和改進(jìn)的K-Means算法都搞定了,然后一直在看CUDA編程,前面看CUDA的介紹,一直認(rèn)為會(huì)C之后CUDA就很容易上手,其實(shí)不然,還需要了解一些GPU的體系結(jié)構(gòu)相關(guān)的知識才能寫出好的程序來?!禛PU高性能運(yùn)算之CUDA》這本書看完一遍之后感覺它更像一個(gè)手稿整理,把之前的恒多文檔整理了一下出了一本書,因?yàn)槭羌蠹业闹腔郏v的還不錯(cuò),就是順序上安排的不是太好。有總比沒有好,看過一遍之后,對CUDA編程還是有一些底氣的。推薦新手也先看看。

看書歸看書,寫程序是另外一件事情,上一篇文章里把環(huán)境搭建起來了,可是我還是不知道怎么創(chuàng)建CUDA工程,怎么動(dòng)手開始寫程序。還好CUDA提供了一個(gè)SDK,里面有很多的實(shí)例可以供我們參考,于是乎,我的***個(gè)CUDA程序就從這里開始了。

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í)例來創(chuàng)建我們自己的工程。再實(shí)例中有一個(gè)template,將該目錄下src中的.cu、.cpp文件刪除,將obj目錄下的內(nèi)容清空,這就成為一個(gè)空的CUDA工程,可以再src下編寫程序,然后在Makefie中將編譯的文件名修改正確,編譯即可。所生成的執(zhí)行文件在CUDA_SDK_HOME/bin/linux/release下。這里是一個(gè)測試代碼,執(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

#p#

26 //初始化

27 for (int i=0;i

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è)線程

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

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 }
 

【編輯推薦】

  1. Ubuntu Server 9.04中文UTF-8環(huán)境的配置
  2. Ubuntu9.04下CUDA環(huán)境的搭建
  3. Windows7/Ubuntu9雙系統(tǒng)輕松配置
責(zé)任編輯:趙寧寧 來源: chinaitlab
相關(guān)推薦

2009-12-16 09:47:24

Ubuntu9.04CUDA

2011-02-24 13:17:12

fireFTPubuntu

2009-07-02 08:54:40

UbuntuMozillaFirefox

2009-12-02 10:41:18

Ubuntu 9.04

2009-04-18 06:31:35

LinuxUbuntu 9.04發(fā)行版

2011-01-18 16:45:04

Ubuntu

2011-06-27 09:36:58

Ubuntu Qt Creator

2009-06-23 17:47:02

UbuntuLinux菜單故障

2009-12-02 10:23:31

Ubuntu 9.04

2010-06-04 15:41:29

安裝MySQL數(shù)據(jù)庫

2009-04-20 20:22:57

LinuxUbuntuOracle

2009-04-22 16:44:55

LinuxUbuntu安裝圖

2009-04-24 09:22:58

Ubuntu 9.04官方下載

2009-07-07 15:28:50

安裝sun-java6安裝EclipseUbuntu

2009-12-29 15:21:29

Ubuntu 9.04

2009-12-31 16:20:14

Ubuntu 9.04

2010-01-06 18:01:17

Ubuntu 9.04

2010-01-07 15:52:30

Ubuntu skyp

2009-12-31 17:04:58

Ubuntu9.04版

2010-02-06 15:31:06

Ubuntu9.04
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文精品久久 | 午夜视频一区二区 | 亚洲欧美国产毛片在线 | 亚洲欧美激情精品一区二区 | 精品在线免费观看视频 | 欧美成人一区二区三区 | 国产精品九九九 | 九色av| 日韩欧美一区二区三区免费观看 | 91色网站 | 黄片毛片免费看 | 黄免费观看视频 | 久久国产综合 | 一级片免费视频 | 精品久久久av | 噜噜噜噜狠狠狠7777视频 | 精品伊人 | 国产精品一区二区视频 | 日本欧美在线观看视频 | 国产天堂 | 国产9999精品 | av黄在线观看 | 欧美一级大片免费观看 | 韩日一区二区三区 | 在线观看特色大片免费网站 | 国产精品毛片av一区 | 日本三级全黄三级三级三级口周 | 亚洲国产精品一区二区三区 | 国内自拍偷拍一区 | 一区二区三区av | 成av人电影在线 | 国产高清视频在线观看播放 | 久久久久亚洲精品中文字幕 | 色屁屁在线观看 | 四虎影院美女 | 欧美1级 | 91婷婷韩国欧美一区二区 | 二区精品 | av一级| 三级在线视频 | www.亚洲精品 |