在異構計算架構中,GPU與CPU通過PCIe總線連接在一起來協同工作,CPU所在位置稱為為主機端(host),而GPU所在位置稱為設備端(device),兩者優勢互補。
CUDA作為GPU的編程模型,提供了對其他編程語言的支持,例如常用的C/C++,Python等。
下面在windows系統下,使用VS2022對GPU進行CUDA編程。
開始之前你需要準備的硬件是:一塊GPU顯卡。并假設你已經提前安裝了VS2022,而且具備一定的軟件編程經驗。
安裝CUDA
首先進行CUDA編程模型的安裝,根據自己的系統情況到CUDA官網下載安裝包。下載完成后進行安裝,過程很簡單。
安裝完成后,“win+R”輸入cmd打開終端后輸入:nvcc -V,檢驗安裝是否成功。
若需要下載以前的版本,你還可以點擊查看你需要下載的CUDA版本:
創建VS2022項目
CUDA安裝完成后,打開VS2022創建新項目,選擇CUDA runtime。
新建完成后有一個簡單的例程,直接進行調試即可看到下面的結果:
在CUDA中,用host指代CPU及其內存,用device指代GPU及其內存。
CUDA程序既包含host程序,又包含device程序,它們分別在CPU和GPU上運行。
同時,host與device之間可以進行數據拷貝。
在CUDA中是通過函數類型限定詞開區別host和device上的函數,主要的三個函數類型限定詞如下:
__global__:在device上執行,從host中調用(一些特定的GPU也可以從device上調用),返回類型必須是void,不支持可變參數,不能成為類成員函數。
注意用__global__定義的kernel是異步的,這意味著host不會等待kernel執行完就執行下一步。
__device__:在device上執行,僅可以從device中調用,不可以和__global__同時用。
__host__:在host上執行,僅可以從host上調用,一般省略不寫,不可以和__global__同時用,但可和__device__,此時函數會在device和host都編譯。
該例程雖然簡單,也反映了典型的CUDA程序流程:
分配host內存,并進行數據初始化;
分配device內存,并從host將數據拷貝到device上;
在device上調用CUDA的核函數(kernel)完成進行并行計算;
將device上的運算結果拷貝到host上;
釋放device和host上分配的內存。
其中,kernel是在device上線程中并行執行的函數,核函數用__global__符號聲明,在調用時需要用<<
審核編輯:劉清
-
PCIE總線
+關注
關注
0文章
58瀏覽量
13457 -
python
+關注
關注
56文章
4807瀏覽量
85037 -
CUDA
+關注
關注
0文章
121瀏覽量
13686
原文標題:安裝CUDA,并使用VS2022開始CUDA編程
文章出處:【微信號:雷達通信電子戰,微信公眾號:雷達通信電子戰】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論