日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

CUDA简要理解

發布時間:2024/8/5 综合教程 49 生活家
生活随笔 收集整理的這篇文章主要介紹了 CUDA简要理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入理解請參考:CUDA by Example: An Introduction to General-Purpose GPU Programming

1.CUDA是什么?

  CUDA,Compute Unified Device Architecture的簡稱,由NVIDIA公司創立的基于他們公司生產的圖形處理器GPUs(Graphics Processing Units,可以通俗的理解為顯卡)的一個并行計算平臺和編程模型。

通過CUDA,GPUs可以很方便地被用來進行通用計算(有點像在CPU中進行的數值計算。。)。在沒有CUDA前,GPUs一般只用來進行圖形渲染(如通過OpenGL,DirectX等接口)。開發人員可以通過調用CUDA的API,來進行并行編程,達到高性能計算目的。

  NVIDIA公司為了吸引更多的開發人員,對CUDA進行了編程語言擴展,如CUDA C/C++,CUDA Fortran語言。注意CUDA C/C++可以看作一個新的編程語言,因為NVIDIA配置了相應的編譯器nvcc,CUDA Fortran一樣。更多信息可以參考文獻。

2.CUDA C的理解

  簡單的認為C語言工作的對象是CPU和內存條(下文稱為主機內存),那么CUDA C工作的的對象就是GPU及GPU上的內存(下文稱為設備內存),且充分利用了GPU多核的優勢及降低了并行編程的難度。

  過程:一般通過C語言把數據從外界讀入,再分配數據,給CUDA C,以便在GPU上計算,然后再把計算結果返回給C語言,以便進一步工作,如進一步處理及顯示,或重復此過程。

3. 深入概念理解

主機:將CPU及系統的內存(內存條)稱為主機。

設備:將GPU及GPU本身的顯示內存稱為設備。

線程(Thread):一般通過GPU的一個核進行處理。(可以表示成一維,二維,三維)。

線程塊(Block):

  1. 由多個線程組成(可以表示成一維,二維,三維。。)。

  2. 各block是并行執行的,block間無法通信,也沒有執行順序。

  3. 注意線程塊的數量限制為不超過65535(硬件限制)。

線程格(Grid):

  每個線程格Grid由若干個線程塊(block)組成(可以表示成一維,二維,三維等),而每個線程塊block又由若干個線程(thread)組成。

線程束:

  在CUDA架構中,線程束是指一個包含32個線程的集合,這個線程集合被“編織在一起”并且“步調一致”的形式執行。在程序中的每一行,線程束中的每個線程都將在不同數據上執行相同的命令。

核函數(Kernel):

  1. 在GPU上執行的函數通常稱為核函數。

  2. 一般通過標識符__global__修飾,調用通過<<<參數1,參數2>>>,用于說明內核函數中的線程數量,以及線程是如何組織的。

  3. 以線程格(Grid)的形式組織.

  4. 是以block為單位執行的。

  5. 能在主機端代碼中調用。

  6. 調用時必須聲明內核函數的執行參數。

  7. 編程時,必須先為kernel函數中用到的數組或變量分配好足夠的空間,再調用kernel函數,否則在GPU計算時會發生錯誤,例如越界或報錯,甚至導致藍屏和死機。

更多的gpu編程詳見下方keyword:

  dim3結構類型定義;函數修飾符(__global__/__device__);常用的GPU內存函數 cudaMemcpy()/cudaMalloc()/cudaFree();cuda內存分類(全局內存、共享內存、常量內存、紋理內存、固定內存);

  常用線程操作函數__syncthreads();時間測量性能的用途和形式;CUDA流是如何實現并發?

Refer:

http://cist.buct.edu.cn/staff/zheng/gpgpu/

http://blog.csdn.net/zkl99999/article/details/50708184

總結

以上是生活随笔為你收集整理的CUDA简要理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。