衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用VS2022對GPU進行CUDA編程

雷達通信電子戰 ? 來源:軟硬件技術開發 ? 2023-01-10 09:54 ? 次閱讀

在異構計算架構中,GPUCPU通過PCIe總線連接在一起來協同工作,CPU所在位置稱為為主機端(host),而GPU所在位置稱為設備端(device),兩者優勢互補。

CUDA作為GPU的編程模型,提供了對其他編程語言的支持,例如常用的C/C++Python等。

下面在windows系統下,使用VS2022對GPU進行CUDA編程。

開始之前你需要準備的硬件是:一塊GPU顯卡。并假設你已經提前安裝了VS2022,而且具備一定的軟件編程經驗。

安裝CUDA

首先進行CUDA編程模型的安裝,根據自己的系統情況到CUDA官網下載安裝包。下載完成后進行安裝,過程很簡單。

4ad74652-9034-11ed-bfe3-dac502259ad0.png

4aef7600-9034-11ed-bfe3-dac502259ad0.png

安裝完成后,“win+R”輸入cmd打開終端后輸入:nvcc -V檢驗安裝是否成功。

4b03222c-9034-11ed-bfe3-dac502259ad0.png

若需要下載以前的版本,你還可以點擊查看你需要下載的CUDA版本:

4b0c1f08-9034-11ed-bfe3-dac502259ad0.png

4b156aae-9034-11ed-bfe3-dac502259ad0.png4accc088-9034-11ed-bfe3-dac502259ad0.png

創建VS2022項目

CUDA安裝完成后,打開VS2022創建新項目,選擇CUDA runtime。

4b46ccd4-9034-11ed-bfe3-dac502259ad0.png

4b65daac-9034-11ed-bfe3-dac502259ad0.png

4b820b5a-9034-11ed-bfe3-dac502259ad0.png

新建完成后有一個簡單的例程,直接進行調試即可看到下面的結果:

4b934dd4-9034-11ed-bfe3-dac502259ad0.png

在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都編譯。


4ba55a6a-9034-11ed-bfe3-dac502259ad0.png

4bc45776-9034-11ed-bfe3-dac502259ad0.png

4bec1b3a-9034-11ed-bfe3-dac502259ad0.png

該例程雖然簡單,也反映了典型的CUDA程序流程:

分配host內存,并進行數據初始化;

分配device內存,并從host將數據拷貝到device上;

在device上調用CUDA的核函數(kernel)完成進行并行計算;

將device上的運算結果拷貝到host上;

釋放device和host上分配的內存。

其中,kernel是在device上線程中并行執行的函數,核函數用__global__符號聲明,在調用時需要用<<>>來指定kernel要執行的線程數量,在CUDA中,每個線程都要執行核函數,并且每個線程會分配一個唯一的線程號thread ID,這個ID值可以通過核函數的內置變量threadIdx來獲得。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PCIE總線
    +關注

    關注

    0

    文章

    58

    瀏覽量

    13457
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85037
  • CUDA
    +關注

    關注

    0

    文章

    121

    瀏覽量

    13686

原文標題:安裝CUDA,并使用VS2022開始CUDA編程

文章出處:【微信號:雷達通信電子戰,微信公眾號:雷達通信電子戰】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    有沒有大佬知道NI vision 有沒有辦法通過gpucuda來加速圖像處理

    有沒有大佬知道NI vision 有沒有辦法通過gpucuda來加速圖像處理
    發表于 10-20 09:14

    在K520上能使用兩個GPU進行CUDA作業嗎

    如果沒有其他用戶共享K520,您是否可以抓取兩個GPU進行CUDA計算作業?我們的應用程序使用GPU進行顯示和計算。當我們在AWS K520
    發表于 09-26 15:23

    CUDA編程教程

    Nvidia CUDA 2.0編程教程
    發表于 03-05 07:30

    linux安裝GPU顯卡驅動、CUDA和cuDNN庫

    /deviceQuery若看到類似以下信息則說明 cuda 已安裝成功: 7、安裝cuDNN cuDNN是GPU加速計算深層神經網絡的庫。首先去官網 https://developer.nvidia.com
    發表于 07-09 07:45

    GPU加速的L0范數圖像平滑(L0 Smooth)【CUDA

    GPU 加速的 L0 范數圖像平滑(L0 Smooth)【CUDA
    發表于 07-08 12:10

    計算機組成原理 — GPU 圖形處理器 精選資料分享

    目錄文章目錄目錄顯卡GPUCPU 與 GPU 的區別GPU 的架構CUDA 編程模式CUDA 的架構利用
    發表于 07-23 08:56

    VS2022破解vMicro

    VS2022破解vMicro以前一直在用VS2019來進行Arduino的開發,用的也是Visual Micro這款擴展。今天發現VS2022上也上架了這個擴展,就想著能不能把這個版本
    發表于 01-10 08:02

    GPU高性能運算之CUDA

      全面介紹使用CUDA進行通用計算所需   要的語法、硬件架構、程序優化技巧等知識,是進行GPU通用計算程序開發的入門教材和參考書。   本書共分5章。第1章
    發表于 08-16 16:21 ?0次下載

    NVIDIA GPU計算的關鍵技術解析

    NVIDIA采用了兩項關鍵技術——G80統一圖形與計算架構(最先采用于GeForce 8800、Quadro FX 5600與Tesla C870 GPU)和CUDACUDA作為一種軟硬件架構,可采用多種高級
    發表于 08-09 09:56 ?2842次閱讀

    CUDA學習筆記第一篇:一個基本的CUDA C程序

    1、CUDA的簡介 2、GPU架構和CUDA介紹3、CUDA架構4、開發環境說明和配置5、開始第一個Hello CUDA程序????5.1、
    的頭像 發表于 12-14 23:40 ?977次閱讀

    CUDA簡介: CUDA編程模型概述

    CUDA 編程模型中,線程是進行計算或內存操作的最低抽象級別。 從基于 NVIDIA Ampere GPU 架構的設備開始,CUDA
    的頭像 發表于 04-20 17:16 ?3053次閱讀
    <b class='flag-5'>CUDA</b>簡介: <b class='flag-5'>CUDA</b><b class='flag-5'>編程</b>模型概述

    國產GPU繞不開的CUDA生態

    CUDA(Compute Unified Device Architecture,統一計算架構)是由英偉達所推出的一種集成技術,是該公司對于GPGPU的正式名稱。通過這個技術,用戶可利用NVIDIA的GPU進行圖像處理之外的運算
    的頭像 發表于 11-29 09:36 ?4042次閱讀

    使用CUDA進行編程的要求有哪些

    CUDA是NVIDIA的一種用于GPU編程的技術,CUDA核心是GPU上的一組小型計算單元,它們可以同時執行大量的計算任務。
    的頭像 發表于 01-08 09:20 ?2592次閱讀

    GPU平臺生態,英偉達CUDA和AMD ROCm對比分析

    CUDA 除了是并行計算架構外,還是 CPU 和 GPU 協調工作的通用語言。在CUDA 編程模型中,主要有 Host(主機)和 Device(設備)兩個概念,Host 包含 CPU
    的頭像 發表于 05-18 09:57 ?2523次閱讀
    <b class='flag-5'>GPU</b>平臺生態,英偉達<b class='flag-5'>CUDA</b>和AMD ROCm對比分析

    介紹CUDA編程模型及CUDA線程體系

    CUDA 編程模型主要有三個關鍵抽象:層級的線程組,共享內存和柵同步(barrier synchronization)。
    的頭像 發表于 05-19 11:32 ?1988次閱讀
    介紹<b class='flag-5'>CUDA</b><b class='flag-5'>編程</b>模型及<b class='flag-5'>CUDA</b>線程體系
    百家乐官网科学| 威尼斯人娱乐城代理加盟| 免费百家乐官网统计软件| 百家乐官网技巧-百家乐官网开户指定代理网址 | tt娱乐城官方网站| 德州扑克网站| 德州扑克秘籍| 百家乐破解赌戏玩| 百家乐贴| 国美百家乐的玩法技巧和规则| 百家乐官网玩法最多的娱乐城| 百家乐官网现金游戏注册送彩金| 赌场百家乐官网网站| 百家乐官网任你博娱乐| 百家乐官网平注常赢玩法技巧| 百家乐登封代理| 免费百家乐官网计划工具| 百家乐博彩策略论坛| 百家乐信誉平台现金投注| 百家乐官网赌博彩| 百家乐官网手机壳| 查看百家乐赌博| 威尼斯人娱乐场官网| 晓游棋牌官方下载| 和记国际娱乐| 皇冠现金投注网| 百家乐官网捡揽方法| 澳门百家乐官网真人斗地主| 路单百家乐官网的玩法技巧和规则 | 在线百家乐博彩| 大发888娱乐场登陆| 三易博| 如何看百家乐路| 大发888游戏平台 34| 百家乐官网分析软件下| 百家乐官网赌场代理| 百家乐网上技巧| 威尼斯人娱乐网赌| 秭归县| 2024九紫离火| 大发888游戏交易平台|