chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

control flow divergence

Memory帶寬優(yōu)化

Efficient utilization of memory bandwidth

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

Increasing parallelism and improving execution pipelining

增強(qiáng)GPGPU可編程

Enhancing GPGPU programmability

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

CPU–GPU heterogeneous architecture

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

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

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

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

文中baseline即指默認(rèn)的GPGPU的配置。

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

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

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

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

這樣的缺點(diǎn):

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

warp本應(yīng)執(zhí)行32個(gè),這樣導(dǎo)致單元利用率不高

分支divergence可能進(jìn)一步導(dǎo)致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 每個(gè)warp單獨(dú)有自己的分支mask棧)。

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

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

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

Memory帶寬優(yōu)化

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

Two-level warp scheduling

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

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

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

Coarse-grained CTA throttling

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

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

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

Fine-grained warp throttling

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

Critical warp awareness

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

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

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

競(jìng)爭(zhēng)memory。執(zhí)行最慢的warp持續(xù)的刷LRU,導(dǎo)致這個(gè)warp占用了最多的cache

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

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

Cache management and bypassing

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

Ordering buffers

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

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

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

Mitigating off-chip bandwidth bottleneck

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

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

Memory divergence normalization

baseline的prefetcher會(huì)根據(jù)當(dāng)前的warp對(duì)下一個(gè)warp的內(nèi)存進(jìn)行預(yù)取,但是這樣可能會(huì)late prefetch或者不準(zhǔn)確產(chǎn)生useless prefetch。 Orchestrated Scheduling and Prefetching for GPGPUs 論文比對(duì)了之前的TPRR,認(rèn)為使用當(dāng)前的fetch group預(yù)測(cè)下一個(gè)fetch group進(jìn)行預(yù)測(cè)是不準(zhǔn)確的,因?yàn)閺氖褂脀arp1-warp4的訪問(wèn)去預(yù)測(cè)warp5-warp8的訪問(wèn)可能不準(zhǔn)確,因此它細(xì)粒度的先執(zhí)行warp 1/3/5/7,使用產(chǎn)生的地址去預(yù)測(cè)warp2/4/6/8. 下圖中的D1-D7即為warp產(chǎn)生的訪問(wèn)內(nèi)存的請(qǐng)求,黃色和紅色的即為T(mén)PRR中不同的fetch group,在之前的TPRR fetch group中包含8個(gè)warp。

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

Main memory scheduling

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

CPU–GPU memory transfer overhead

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

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

總結(jié)

1.Control Divergence

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

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

因?yàn)镃UDA后面支持kernel執(zhí)行時(shí)自己產(chǎn)生新的kernel,但是產(chǎn)生新的kernel開(kāi)銷(xiāo)很大,所以可以減少開(kāi)銷(xiāo)。

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

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

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

可以?xún)?yōu)化cache,防止cache的抖動(dòng),thrashing問(wèn)題。也可以bypass

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

對(duì)訪問(wèn)內(nèi)存的請(qǐng)求進(jìn)行ordering,減少memory footprint

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

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

審核編輯:黃飛

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

    關(guān)注

    28

    文章

    4937

    瀏覽量

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

    關(guān)注

    8

    文章

    3118

    瀏覽量

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

    關(guān)注

    0

    文章

    508

    瀏覽量

    20182
  • GPGPU
    +關(guān)注

    關(guān)注

    0

    文章

    30

    瀏覽量

    5111

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎ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幾種常見(jiàn)的指令集X86Inter
    發(fā)表于 12-14 07:13

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

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

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

    本規(guī)范定義了基于Arm A配置文件體系結(jié)構(gòu)的處理器的動(dòng)態(tài)測(cè)量信任根(DRTM)體系結(jié)構(gòu)。本規(guī)范基于TCG D-RTM體系結(jié)構(gòu)[4]的概念,但作為一個(gè)獨(dú)立的獨(dú)立文檔發(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版增加了對(duì)操作模式的支持。由于功能或更高粒度的功率控制原因,這使得能夠支持特定于組件的功率模式
    發(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)來(lái)做詳細(xì)描述。在SAE 體系結(jié)構(gòu)中,RNC部分功能、GGSN、SGSN 節(jié)點(diǎn)將被融合為一個(gè)新的節(jié)點(diǎn),
    發(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) 通過(guò)通信信道和設(shè)備互連起來(lái)的多個(gè)不同地理位置的計(jì)算機(jī)系統(tǒng),要使其能協(xié)同工作實(shí)現(xiàn)信息交換和資源共享
    發(fā)表于 04-06 16:30 ?1904次閱讀

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

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

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

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

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

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

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

    針對(duì)偵察衛(wèi)星應(yīng)用信息鏈體系結(jié)構(gòu)建模問(wèn)題,提出了基于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)講解(開(kāi)關(guān)電源技術(shù)的節(jié)能意義)-該文檔為Oracle體系結(jié)構(gòu)講解文檔,是一份十分不錯(cuò)的參考資料,感興趣的可以下載看看,,,,,,,,,,,,,,,,,,,,,
    發(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 ?652次閱讀
    <b class='flag-5'>GPGPU</b><b class='flag-5'>體系結(jié)構(gòu)</b><b class='flag-5'>優(yōu)化</b>方向(1)