一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內(nèi)不再提示

探究GPGPU體系結(jié)構(gòu)優(yōu)化策略

處理器與AI芯片 ? 來源:處理器與AI芯片 ? 2024-04-09 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近讀了 GPGPU Architectural Survey[1],這篇survey很長,這里簡要的介紹內(nèi)容,將我理解的方向和重點的論文介紹一下。

相關(guān)的論文我只介紹縮寫的名字,大致介紹文章的內(nèi)容,具體的內(nèi)容還是要看survey和原文。

GPGPU的優(yōu)化方向主要包括以下五點:

控制分支分叉優(yōu)化

control flow divergence

Memory帶寬優(yōu)化

Efficient utilization of memory bandwidth

提高并行度和優(yōu)化流水線

Increasing parallelism and improving execution pipelining

增強GPGPU可編程

Enhancing GPGPU programmability

CPU GPU異構(gòu)架構(gòu)優(yōu)化

CPU–GPU heterogeneous architecture

2b441af4-f4d8-11ee-a297-92fbcf53809c.png

上圖為近幾年各個方向文章發(fā)表的比例

優(yōu)化方向的前兩點在這篇文章中介紹,后三點將會在下一篇文章介紹。

文末附有總結(jié),也可以直接拉到文末。

文中baseline即指默認的GPGPU的配置。

控制分支分叉優(yōu)化

GPU Warp內(nèi),32個線程(NVIDIA)鎖步lock step執(zhí)行時,如果遇到每個分支走上了不同分支,比如20個線程if,12個執(zhí)行else,那么20個線程會先執(zhí)行,mask調(diào)另外的12個。20個線程執(zhí)行到分支合并點之后,另外12個再執(zhí)行,直到這12個線程也進行到分支合并點。

如下圖左側(cè)所示。

2b63aee6-f4d8-11ee-a297-92fbcf53809c.png

這樣的缺點:

不同的分支順序執(zhí)行

warp本應執(zhí)行32個,這樣導致單元利用率不高

分支divergence可能進一步導致memory divergence

具體優(yōu)化的子方向如下圖所示:

2b72d8d0-f4d8-11ee-a297-92fbcf53809c.png

Dynamic Regrouping Divergent Warps即為不同warp的分支合并為新的warp。

Large Warp/CTA compaction中的Thread Block Compaction,將thread block 內(nèi)的thread共享分支mask棧(baseline 每個warp單獨有自己的分支mask棧)。

2b7d798e-f4d8-11ee-a297-92fbcf53809c.png

Multi path execution即為if 和 else分支兩路同時執(zhí)行。

Dynamickernels/threads比如在圖形應用中,可能會動態(tài)的創(chuàng)建kernel,在[3]中提出了在irregular benchmark中怎么減少創(chuàng)建的開銷.

Memory帶寬優(yōu)化

2b979f44-f4d8-11ee-a297-92fbcf53809c.png

Two-level warp scheduling

baseline將所有的warp按照輪詢的方式調(diào)度,但是如果程序是一致的,那么可能會所有的warp同時遇到cache miss的指令,導致很長的延遲。

TPRR(Two-Level Warp Scheduling):如果將warp分成兩個level的warp。將32個warp組成了細粒度的4個fetch group,每個fetch group內(nèi)部8個warp。直到一個fetch warp執(zhí)行阻塞時,再執(zhí)行另一組warp可以提高效率。

2ba82cf6-f4d8-11ee-a297-92fbcf53809c.png

Coarse-grained CTA throttling

baseline將在一個GPU core上盡量執(zhí)行最多的CTA以增加線程并行度。

但是這樣可能會導致大量的線程競爭memory,因此也有優(yōu)化方案DYNCTA提出調(diào)度最佳而不是最多的CTA。

2bbde096-f4d8-11ee-a297-92fbcf53809c.png

Fine-grained warp throttling

baseline將在一個warp內(nèi)的memory優(yōu)化。不同的warp之間可能也會競爭共享的資源,比如一個warp訪問的cache反復的被另一個warp競爭出去,即thrashing??梢酝ㄟ^將被thrashing的 warp優(yōu)先執(zhí)行,進行優(yōu)化,即為PCAL(Priority-based cache allocation in throughput processors)。

Critical warp awareness

baseline對各個warp無感,但是實際上warp中也會有critical warp,執(zhí)行的最慢成為關(guān)鍵路徑,以下的情況可能會產(chǎn)生critical warp。

warp執(zhí)行的workload比較重

warp執(zhí)行了另外的控制分支

競爭memory。執(zhí)行最慢的warp持續(xù)的刷LRU,導致這個warp占用了最多的cache

warp如果按照輪詢調(diào)度,那么N個warp ready了之后,需要等待N個周期才能再次被調(diào)度

CAWA(Coordinated Warp Scheduling and Cache Prioritization for Critical WarpAcceleration of GPGPU Workloads)通過識別critical warp,優(yōu)先調(diào)度并且優(yōu)先cache 分配到這些warp上,來加速執(zhí)行。

Cache management and bypassing

baseline 的cache之間沒有配合。GCache(Adaptive Cache Bypass and Insertion for Many-core Accelerators)通過在L2 tag array中增加額外的標記來給L1 cache提供這個hot line在之前被evict出來,L1 Cache通過自適應的方法來鎖定這些hot cacheline,防止thrashing,cache抖動。

Ordering buffers

如果不同的warp以interleave的方式發(fā)送memory的請求,這樣memory footprint是所有warp整體的總和,如果能夠一個warp先執(zhí)行完,另一個warp再執(zhí)行,那么memory footprint只是一個warp的memory footprint。

比如下圖,將W3聚合在一起,可以減少footprint。即為ordering buffer, 詳見MRPB: Memory request prioritization for massively parallel processors。

2bddc672-f4d8-11ee-a297-92fbcf53809c.png

Mitigating off-chip bandwidth bottleneck

LAMAR(local-aware memory hierarchy)注意到對于規(guī)范的GPGPU workload,每次memory 訪問,進行粗粒度的內(nèi)存訪問可以利用空間局部性,也可以提高帶寬。但是對于不規(guī)則的workload,細粒度的內(nèi)存訪問則更好,因此它對于不同的workload進行不同粒度的內(nèi)存訪問。

CABA(Core-Assised Bottleneck Acceleartion)如果存在帶寬瓶頸,那么會使用空閑的計算單元,創(chuàng)建warp壓縮內(nèi)存,以避免帶寬瓶頸。

Memory divergence normalization

baseline的prefetcher會根據(jù)當前的warp對下一個warp的內(nèi)存進行預取,但是這樣可能會late prefetch或者不準確產(chǎn)生useless prefetch。 Orchestrated Scheduling and Prefetching for GPGPUs 論文比對了之前的TPRR,認為使用當前的fetch group預測下一個fetch group進行預測是不準確的,因為從使用warp1-warp4的訪問去預測warp5-warp8的訪問可能不準確,因此它細粒度的先執(zhí)行warp 1/3/5/7,使用產(chǎn)生的地址去預測warp2/4/6/8. 下圖中的D1-D7即為warp產(chǎn)生的訪問內(nèi)存的請求,黃色和紅色的即為TPRR中不同的fetch group,在之前的TPRR fetch group中包含8個warp。

2c022210-f4d8-11ee-a297-92fbcf53809c.png

Main memory scheduling

baseline的linux page placement主要處理CPU-only NUMA系統(tǒng),致力于減少memory latency。但是GPU對bandwidth更加敏感,因此論文Page Placement Strategies for GPUswithin Heterogeneous Memory Systems通過平衡page placement來最大化memory bandwidth。

CPU–GPU memory transfer overhead

baseline的GPGPU啟動時,需要等待CPU將數(shù)據(jù)完全將內(nèi)存拷貝到GPU內(nèi)存,才能開始計算。

Reducing GPU Offload Latency via Fine-Grained CPU-GPU Synchronization通過增加full-empty bists,來追蹤已經(jīng)傳輸完成的page。如果GPGPU計算所依賴的數(shù)據(jù)已經(jīng)傳輸完畢,就可以直接執(zhí)行。這樣可以overlap 執(zhí)行和數(shù)據(jù)搬運的時間。

總結(jié)

1.Control Divergence

因為warp內(nèi)可能存在不同的分支執(zhí)行路徑,因此合并不同warp的相同分支,產(chǎn)生新的warp,也可以在整個CTA的范圍內(nèi)合并warp。

也可以同時執(zhí)行分支的不同路徑。

因為CUDA后面支持kernel執(zhí)行時自己產(chǎn)生新的kernel,但是產(chǎn)生新的kernel開銷很大,所以可以減少開銷。

2. Memory 帶寬和利用率優(yōu)化

不是簡單的輪詢調(diào)度warp,而是將其切割成fetch group。后面的優(yōu)化方案又結(jié)合了fetch group和prefetch

可以在CTA的粒度上節(jié)流線程的執(zhí)行,以減少memory競爭。同樣,也可以在warp的力度上進行節(jié)流,防止warp之間的競爭。

可以優(yōu)化cache,防止cache的抖動,thrashing問題。也可以bypass

識別關(guān)鍵的warp,優(yōu)先執(zhí)行關(guān)鍵warp

對訪問內(nèi)存的請求進行ordering,減少memory footprint

利用空閑的執(zhí)行單元進行壓縮,避免bandwidth bottleneck

針對GPU memory系統(tǒng)設(shè)計bandwidth有限的page placement 策略

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4925

    瀏覽量

    130899
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3117

    瀏覽量

    75115
  • 線程
    +關(guān)注

    關(guān)注

    0

    文章

    508

    瀏覽量

    20130
  • GPGPU
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    5100

原文標題:GPGPU體系結(jié)構(gòu)優(yōu)化方向 [上]

文章出處:【微信號:處理器與AI芯片,微信公眾號:處理器與AI芯片】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ARM SOC體系結(jié)構(gòu)

    ARMSOC 體系結(jié)構(gòu)
    發(fā)表于 11-22 10:54

    ARM體系結(jié)構(gòu)是怎樣的?

    ARM體系結(jié)構(gòu)是怎樣的?
    發(fā)表于 11-05 06:40

    Microarchitecture指令集體系結(jié)構(gòu)

    第二章 ARM微處理器概述與編程模型ARM體系結(jié)構(gòu)及其發(fā)展歷史處理器的體系結(jié)構(gòu)處理器微架構(gòu) Microarchitecture指令集體系結(jié)構(gòu) Architecture幾種常見的指令集X86Inter
    發(fā)表于 12-14 07:13

    淺析嵌入式實時系統(tǒng)的體系結(jié)構(gòu)設(shè)計

    ②和③D.①、②和③62、D[解析] 體系結(jié)構(gòu)描述系統(tǒng)的分解、全局控制流、錯誤處理策略、子系統(tǒng)間的通信協(xié)議和接口、系統(tǒng)安全策略等系統(tǒng)的整體架構(gòu),不關(guān)心子系統(tǒng)的詳細設(shè)計和實現(xiàn)。輸入信號預處理、主控制過程和網(wǎng)絡(luò)接口等都屬于
    發(fā)表于 12-22 06:09

    Arm的DRTM體系結(jié)構(gòu)規(guī)范

    本規(guī)范定義了基于Arm A配置文件體系結(jié)構(gòu)的處理器的動態(tài)測量信任根(DRTM)體系結(jié)構(gòu)。本規(guī)范基于TCG D-RTM體系結(jié)構(gòu)[4]的概念,但作為一個獨立的獨立文檔發(fā)揮作用。它使用了TCG體系結(jié)
    發(fā)表于 08-08 07:45

    Arm Power Policy Unit 1.1版體系結(jié)構(gòu)規(guī)范

    本規(guī)范描述了電源策略單元(PPU)體系結(jié)構(gòu)。它定義了PPU體系結(jié)構(gòu)的1.1版本。 PPU規(guī)范的1.1版增加了對操作模式的支持。由于功能或更高粒度的功率控制原因,這使得能夠支持特定于組件的功率模式
    發(fā)表于 08-11 06:14

    ARM體系結(jié)構(gòu)與編程

    ARM體系結(jié)構(gòu)與編程
    發(fā)表于 02-11 09:35 ?169次下載
    ARM<b class='flag-5'>體系結(jié)構(gòu)</b>與編程

    LTE體系結(jié)構(gòu)

    LTE體系結(jié)構(gòu) LTE體系結(jié)構(gòu)可以借助SAE 體系結(jié)構(gòu)來做詳細描述。在SAE 體系結(jié)構(gòu)中,RNC部分功能、GGSN、SGSN 節(jié)點將被融合為一個新的節(jié)點,
    發(fā)表于 06-16 13:09 ?1w次閱讀

    網(wǎng)絡(luò)體系結(jié)構(gòu),什么是網(wǎng)絡(luò)體系結(jié)構(gòu)

    網(wǎng)絡(luò)體系結(jié)構(gòu),什么是網(wǎng)絡(luò)體系結(jié)構(gòu) 通過通信信道和設(shè)備互連起來的多個不同地理位置的計算機系統(tǒng),要使其能協(xié)同工作實現(xiàn)信息交換和資源共享
    發(fā)表于 04-06 16:30 ?1886次閱讀

    ARM體系結(jié)構(gòu)與程序設(shè)計

    《ARM體系結(jié)構(gòu)與程序設(shè)計》是ARM體系結(jié)構(gòu)與程序設(shè)計的一本實用指導書籍,通過案例詳細介紹了ARM體系結(jié)構(gòu)與程序設(shè)計,案例中的程序都取自實際的項目,且對程序有詳細注解。
    發(fā)表于 10-27 16:37 ?2457次閱讀

    XScale體系結(jié)構(gòu)及編譯優(yōu)化問題

    XScale是一款具有業(yè)界領(lǐng)先高性能特性的ARM兼容嵌入式微處理器構(gòu)架被應用處理 能力要求很高的嵌入式應用領(lǐng)域如PDA、高帶寬網(wǎng)絡(luò)交換等。本文分析了RISC、 ARM和XScale體系結(jié)構(gòu)的特點
    發(fā)表于 04-18 10:28 ?0次下載

    軟件體系結(jié)構(gòu)的分析

    軟件系統(tǒng)因具有節(jié)點眾多、節(jié)點間聯(lián)系復雜、隨時間演化、自組織臨界等特性可將其視為復雜系統(tǒng)。在軟件安全領(lǐng)域,對軟件體系結(jié)構(gòu)的分析一直是研究的重點。軟件體系結(jié)構(gòu)具有自身的脆性,這體現(xiàn)在軟件系統(tǒng)的運行過程
    發(fā)表于 11-24 10:34 ?15次下載
    軟件<b class='flag-5'>體系結(jié)構(gòu)</b>的分析

    基于DoDAF的衛(wèi)星應用信息鏈體系結(jié)構(gòu)

    針對偵察衛(wèi)星應用信息鏈體系結(jié)構(gòu)建模問題,提出了基于DoDAF (department of defense architect framework)的體系結(jié)構(gòu)描述方法和基于ABM (activity
    發(fā)表于 01-10 16:58 ?1次下載

    Oracle體系結(jié)構(gòu)講解

    Oracle體系結(jié)構(gòu)講解(開關(guān)電源技術(shù)的節(jié)能意義)-該文檔為Oracle體系結(jié)構(gòu)講解文檔,是一份十分不錯的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,,,,,,,,,
    發(fā)表于 09-27 10:27 ?3次下載
    Oracle<b class='flag-5'>體系結(jié)構(gòu)</b>講解

    GPGPU體系結(jié)構(gòu)優(yōu)化方向(1)

    繼續(xù)上文GPGPU體系結(jié)構(gòu)優(yōu)化方向 [上],介紹提高并行度和優(yōu)化流水線的方向。
    的頭像 發(fā)表于 10-09 10:03 ?619次閱讀
    <b class='flag-5'>GPGPU</b><b class='flag-5'>體系結(jié)構(gòu)</b><b class='flag-5'>優(yōu)化</b>方向(1)