小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

安裝CUDA,并使用VS2022開(kāi)始CUDA編程

 漢無(wú)為 2023-02-12 發(fā)布于湖北
在異構(gòu)計(jì)算架構(gòu)中,GPU與CPU通過(guò)PCIe總線連接在一起來(lái)協(xié)同工作,CPU所在位置稱為為主機(jī)端(host),而GPU所在位置稱為設(shè)備端(device),兩者優(yōu)勢(shì)互補(bǔ)。CUDA作為GPU的編程模型,提供了對(duì)其他編程語(yǔ)言的支持,例如常用的C/C++,Python等。
下面在windows系統(tǒng)下,使用VS2022對(duì)GPU進(jìn)行CUDA編程。開(kāi)始之前你需要準(zhǔn)備的硬件是:一塊GPU顯卡。并假設(shè)你已經(jīng)提前安裝了VS2022,而且具備一定的軟件編程經(jīng)驗(yàn)。
圖片

安裝CUDA

圖片
首先進(jìn)行CUDA編程模型的安裝,根據(jù)自己的系統(tǒng)情況到CUDA官網(wǎng)下載安裝包。下載完成后進(jìn)行安裝,過(guò)程很簡(jiǎn)單。
https://developer./cuda-downloads
圖片
圖片
安裝完成后,“win+R”輸入cmd打開(kāi)終端后輸入:nvcc -V檢驗(yàn)安裝是否成功。
圖片
若需要下載以前的版本,你還可以點(diǎn)擊查看你需要下載的CUDA版本:
圖片
圖片
圖片

創(chuàng)建VS2022項(xiàng)目

圖片
CUDA安裝完成后,打開(kāi)VS2022創(chuàng)建新項(xiàng)目,選擇CUDA runtime。
圖片
圖片
圖片
新建完成后有一個(gè)簡(jiǎn)單的例程,直接進(jìn)行調(diào)試即可看到下面的結(jié)果:
圖片
在CUDA中,用host指代CPU及其內(nèi)存,用device指代GPU及其內(nèi)存。CUDA程序既包含host程序,又包含device程序,它們分別在CPU和GPU上運(yùn)行。同時(shí),host與device之間可以進(jìn)行數(shù)據(jù)拷貝。
在CUDA中是通過(guò)函數(shù)類型限定詞開(kāi)區(qū)別host和device上的函數(shù),主要的三個(gè)函數(shù)類型限定詞如下:
__global__:在device上執(zhí)行,從host中調(diào)用(一些特定的GPU也可以從device上調(diào)用),返回類型必須是void,不支持可變參數(shù),不能成為類成員函數(shù)。注意用__global__定義的kernel是異步的,這意味著host不會(huì)等待kernel執(zhí)行完就執(zhí)行下一步。
__device__:在device上執(zhí)行,僅可以從device中調(diào)用,不可以和__global__同時(shí)用。
__host__:在host上執(zhí)行,僅可以從host上調(diào)用,一般省略不寫(xiě),不可以和__global__同時(shí)用,但可和__device__,此時(shí)函數(shù)會(huì)在device和host都編譯。
圖片
圖片
圖片
該例程雖然簡(jiǎn)單,也反映了典型的CUDA程序流程:
  • 分配host內(nèi)存,并進(jìn)行數(shù)據(jù)初始化;

  • 分配device內(nèi)存,并從host將數(shù)據(jù)拷貝到device上;

  • 在device上調(diào)用CUDA的核函數(shù)(kernel)完成進(jìn)行并行計(jì)算;

  • 將device上的運(yùn)算結(jié)果拷貝到host上;

  • 釋放device和host上分配的內(nèi)存。

其中,kernel是在device上線程中并行執(zhí)行的函數(shù),核函數(shù)用__global__符號(hào)聲明,在調(diào)用時(shí)需要用<<<grid, block>>>來(lái)指定kernel要執(zhí)行的線程數(shù)量,在CUDA中,每個(gè)線程都要執(zhí)行核函數(shù),并且每個(gè)線程會(huì)分配一個(gè)唯一的線程號(hào)thread ID,這個(gè)ID值可以通過(guò)核函數(shù)的內(nèi)置變量threadIdx來(lái)獲得。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多