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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nvidia CUDA初级教程4 GPU体系架构概述

發(fā)布時間:2025/3/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nvidia CUDA初级教程4 GPU体系架构概述 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Nvidia CUDA初級教程4 GPU體系架構(gòu)概述

視頻:https://www.bilibili.com/video/BV1kx411m7Fk?p=5
講師:周斌

本節(jié)內(nèi)容:

  • 為什么需要GPU
  • 三種方法提升GPU的處理速度
  • 實際GPU的設(shè)計舉例:
    • NVDIA GTX 480: Fermi
    • NVDIA GTX 680: Kepler
  • GPU存儲器設(shè)計

名詞解釋

  • FLOPS - Floating-point OPerations per Second
  • GFLOPS - One billion (10e9) FLOPS
  • TFLOPS - 1000GFLOPS

為什么需要GPU

  • 應用的需求越來越高
  • 計算機技術(shù)由應用驅(qū)動 Application Driven
    • 石油勘探
    • 氣象預報

GPU圖示

結(jié)構(gòu)略圖

GPU是一個異構(gòu)的多處理器芯片,為圖形圖像處理優(yōu)化

執(zhí)行單元 Execute Shader

CPU類型的內(nèi)核

可以看到,在常規(guī)的CPU類型的芯片中,真正進行運算的部分(左側(cè))所占的面積并不大,而是大緩存和上節(jié)提到的亂序執(zhí)行控制邏輯、分支預測器等優(yōu)化部分占了很大一部分面積。

思路1:精簡、減肥

移除掉那些來幫助單個指令流執(zhí)行的更快的組件。

兩個核,同時執(zhí)行兩個程序片元

16個核,同時執(zhí)行16個程序片元

指令流共享:多個程序片元共享指令流。因為如果要執(zhí)行不同的指令流的話,就需要復雜的控制機構(gòu)。

思路二:增加ALU,SIMD

  • 處理單元ALU改進
  • 指令變化
  • 多數(shù)據(jù)并行

128(16*8)個程序片元同時執(zhí)行,并發(fā)16路指令流

這16路可以共享相同的指令流,也可以不共享。

注意:

  • SIMD處理并不總是需要顯式的SIMD指令:
    • 選項一:顯式的向量運算指令
      • SSE等
    • 選項二:標量指令,但是硬件進行矢量化
      • 硬件進行指令流共享
      • NVIDIA等架構(gòu)
      • 多個片元共享指令流

分支處理怎么辦?

由于共享相同的指令流,故按照根據(jù)邏輯,某些數(shù)據(jù)在分支被執(zhí)行時,另一些在其他分支的數(shù)據(jù)只能等待。因為它們共享指令流,同一時間必須做相同的事情。

停滯怎么辦?

指令有時需要等待其依賴的數(shù)據(jù)

思路三:片元切換,掩藏延遲

上面提到,很多時候(如分支處理、停滯等),會出現(xiàn)大量片元等待的情況,這無疑會大大降低效率。對此,我們有思路三:

  • 大量的獨立片元相互切換
  • 通過偏遠切換來掩藏延遲

給單個片元設(shè)置多個(彼此獨立的)任務(wù),當某個任務(wù)停滯時,去執(zhí)行其他任務(wù)。

獲得較高的吞吐 throughput。

上下文存儲空間

18個小的上下文:更好的延遲掩藏的效果

12個中等大小的上下文

四個大的上下文:延遲隱藏效果較差

每個上下文更大,但是延遲隱藏能力較差

注意:

  • 上下文切換可以使軟件管理也可以是硬件管理,也可以是結(jié)合管理。

總結(jié)

“我”的設(shè)計

根據(jù)上面的三個思路,我們得到了一種芯片設(shè)計:

  • 16個核
  • 每個核8個乘加ALU
  • 16個同時指令流
  • 64路并發(fā)指令流
  • 512 (16*4*8) 個并發(fā)程序片元
  • 256GFLOPS,1GHz

三個關(guān)鍵思路

  • 保留每個核的計算部分,將其他部分盡量移除
  • 將每個核填滿 ALU (通過共享指令流)
    • 選項1:顯式的 SIMD 向量指令
    • 選項2:隱式的共享,由硬件管理
  • 通過在多組任務(wù)間切換避免停滯
  • 不同GPU架構(gòu)舉例

    Fermi架構(gòu)

    Kepler架構(gòu)

    存儲和數(shù)據(jù)訪問

    CPU類型的緩存

    CPU通常會有多級緩存

    GPU型的吞吐處理核

    GPU中有更多的ALU,沒有傳統(tǒng)的分級緩存,需要更高的帶寬

    帶寬是非常寶貴的資源

    減少帶寬需求

    • 減少不必要的數(shù)據(jù)請求,做更多的計算
    • 每次訪存多取數(shù)據(jù),從而減少訪存次數(shù)

    現(xiàn)代GPU的存儲器結(jié)構(gòu)

    總結(jié)

    GPU的特點

    GPU是異構(gòu)、眾核的處理器

    針對吞吐優(yōu)化

    高效的GPU任務(wù)具備的條件

    • 具有成千上萬的獨立工作
      • 盡量利用大量的ALU單元
      • 大量的片元切換掩藏延遲
    • 可以共享指令流
      • 適用于 SIMD
    • 最好是計算密集的任務(wù)
      • 通信和計算的開銷比例合適
      • 不要受制于訪存帶寬

    總結(jié)

    以上是生活随笔為你收集整理的Nvidia CUDA初级教程4 GPU体系架构概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。