RM新时代网站-首页

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)化方向(1)

處理器與AI芯片 ? 來(lái)源:處理器與AI芯片 ? 2024-10-09 10:03 ? 次閱讀

繼續(xù)上文GPGPU體系結(jié)構(gòu)優(yōu)化方向 [上],介紹提高并行度和優(yōu)化流水線的方向。

不同的workload因?yàn)榇嬖诓煌膇nput size和對(duì)寄存器以及memory的需要,有時(shí)會(huì)導(dǎo)致只有少量的活躍thread block,這降低了執(zhí)行單元的利用率。因此可以通過(guò)同時(shí)運(yùn)行多個(gè)workload,增加并行度來(lái)提高利用率。另一種方法則是利用scalar opportunity以及運(yùn)行的warp之間的value similarity。

具體的子方向:

減少資源碎片化增加并行度

Unifying Primary Cache, Scratch and Register File Memory in a Throughput processor提出不同的workload對(duì)資源的需求不同,因此可以動(dòng)態(tài)的對(duì)不同workload的資源進(jìn)行劃分。

wKgaomcF5JOAaZHTAAEcjHYtep8333.png

Shared Memory Multiplexing: A Novel Way to ImproveGPGPU Throughput注意到在一個(gè)thread block內(nèi)的warp會(huì)在不同的時(shí)間點(diǎn)結(jié)束,此時(shí),即使是較早完成的warp占用的資源也不會(huì)釋放,這導(dǎo)致了資源的低效利用,此時(shí)應(yīng)該可以launch新的warp。

他們將資源的低效利用劃分為temporal和spatial:

temporal低效是因?yàn)閣arp的不同時(shí)間結(jié)束導(dǎo)致的

spatial的低效則是因?yàn)闆](méi)有足夠的資源launch新的warp

他們提出了在資源不夠launch一個(gè)新的thread block時(shí),只launch部分thread block的方法。GPU Multitaksing

多任務(wù)同時(shí)在GPU上執(zhí)行

可以有效的提高GPU的利用率。

有助于操作系統(tǒng)調(diào)用GPU時(shí),對(duì)GPU的虛擬化以及在云上deploy GPU

Improving GPGPU Concurrency with Elastic Kernels將task不能夠進(jìn)行并行化的原因分成了幾類(lèi):

Serialization due to Lack of Resources

Serialization due to Inter-stream Scheduling

Serialization due to Memory Transfers

Serialization in the CUDA API

Serialization in the Implementation

他們觀察到如果bfs只占用了部分資源,但是fft和cutcp占用了全部資源,那么即使bfs較晚進(jìn)入queue中,也可以不按照f(shuō)ifo的調(diào)度順序,將bfs優(yōu)先調(diào)度,空置的資源同時(shí)執(zhí)行cutcp,這樣提高了并行度。

wKgZomcF5JeAZhCoAAAk1tfPH1Y192.jpg

此外,觀察到GPU的DMA只能在一個(gè)時(shí)間段內(nèi)進(jìn)行拷貝到GPU和拷出GPU中的一種。如果下圖中的bfs等到數(shù)據(jù)的拷貝,但是此時(shí)lbm正在將數(shù)據(jù)拷出,會(huì)導(dǎo)致bfs的等待,因此可以將DMA的任務(wù)切片,提高并行度。

wKgaomcF5JeAY6qGAAAqiR68Wb4360.jpg

此外,Increasing GPU throughput using kernel interleaved thread block scheduling等也發(fā)現(xiàn)可以將memory intensive和compute intensive的workloads混合調(diào)度,這樣提高資源的利用效率。

在調(diào)度workloads時(shí),也需要注意到workload的優(yōu)先級(jí),如果優(yōu)先級(jí)較高的workload等待時(shí)間較長(zhǎng),那么應(yīng)當(dāng)切換到優(yōu)先級(jí)高的workload。Enabling preemptive multiprogramming on GPUs提出了兩種搶占的方式,context swtiching和draning。

wKgZomcF5LeAKbKYAACvxOkV70U484.jpg

Chimera: Collaborative Preemptionfor Multitasking on a Shared GPU提出了被搶占的workload可以不需要保存上下文,直接放棄,在獲得資源后重新從頭開(kāi)始執(zhí)行。

利用scalar and value similarity opprotunities

Characterizing Scalar Opportunities inGPGPU Applications提出了 scalar opportunity,即在各個(gè)threads中同時(shí)對(duì)相同的數(shù)據(jù)執(zhí)行相同的計(jì)算,也就得到相同的結(jié)果,寫(xiě)回相同的值。AMD將這類(lèi)計(jì)算單獨(dú)放在GPU core中的標(biāo)量單元中進(jìn)行計(jì)算。

“We define a scalar opportunity as a SIMD instructionoperating on the same data in all of its active threads. Atypical example of scalar opportunities is loading a constantvalue when each active thread loads the same value frommemory and then stores it in the corresponding component ofthe destination vector register. Finally those components storethe same value.”

基于這個(gè)的工作主要有幾類(lèi):

檢測(cè)方法:硬件或者軟件編譯器

執(zhí)行方法:?jiǎn)为?dú)的標(biāo)量單元或者單獨(dú)使用一個(gè)core計(jì)算

專(zhuān)門(mén)的寄存器或者和其他指令共用寄存器

取址譯碼執(zhí)行和其他指令的資源共享或者單獨(dú)設(shè)計(jì)

支持的指令類(lèi)型

Improving execution pipeling

現(xiàn)代 GPU為了有效地共享資源,在 GPU 管道中插入了buffering和collisionavoidance stage,從而增加指令的讀后寫(xiě) (RAW) 延遲。通常大家認(rèn)為GPU通過(guò)warp的調(diào)度可以隱藏RAW延遲,因而GPU沒(méi)有設(shè)計(jì)data forward networking。但是Exploiting GPUPeak-power and Performance Tradeoffs through Reduced Effective Pipeline Latency觀察到許多 GPGPU 應(yīng)用程序沒(méi)有足夠的活動(dòng)線程來(lái)準(zhǔn)備發(fā)出指令來(lái)隱藏這些 RAW 延遲。

因此他們使用most recent result forwarding(MORF)來(lái)實(shí)現(xiàn)data forwarding,同時(shí)相對(duì)于傳統(tǒng)的data forwarding,降低了功耗。

wKgaomcF5MCAEupeAACy72_5q1c355.jpg

Warped-Preexecution: A GPU Pre-execution Approachfor Improving Latency Hiding文章提出在warp的線程進(jìn)入長(zhǎng)期等待的idle狀態(tài)時(shí),可以進(jìn)入P-mode。在P-mode模式下,識(shí)別出程序中后續(xù)的不存在依賴(lài)關(guān)系的指令,先執(zhí)行后續(xù)的指令,也即實(shí)現(xiàn)了亂序執(zhí)行。

wKgZomcF5L-AaUFxAADzixioPS8150.jpg

聲明:本文內(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)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120229
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4729

    瀏覽量

    128890
  • 流水線
    +關(guān)注

    關(guān)注

    0

    文章

    120

    瀏覽量

    25726
  • GPGPU
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    4899

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    本帖最后由 eehome 于 2013-1-5 09:47 編輯 ARM體系結(jié)構(gòu)和編程
    發(fā)表于 12-04 03:35

    ARM嵌入式體系結(jié)構(gòu)與接口技術(shù).ARM SoC體系結(jié)構(gòu)(中文版)

    ARM嵌入式體系結(jié)構(gòu)與接口技術(shù).pdf{:1:}{:1:}{:1:}ARM SoC體系結(jié)構(gòu)(中文版).pd
    發(fā)表于 03-23 16:04

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

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

    嵌入式微處理器體系結(jié)構(gòu)

    目錄一、嵌入式微處理器體系結(jié)構(gòu)1、馮諾依曼體系結(jié)構(gòu)2、哈弗體系結(jié)構(gòu)二、嵌入式系統(tǒng)的硬件結(jié)構(gòu)1、嵌
    發(fā)表于 11-08 06:57

    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

    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體系結(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 ?9827次閱讀

    網(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 ?1702次閱讀

    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 ?2359次閱讀

    ARM體系結(jié)構(gòu)(1)PPT課件

    ARM體系結(jié)構(gòu)(1),有需要的朋友下來(lái)看看。
    發(fā)表于 01-08 14:46 ?0次下載

    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次下載

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

    目前的GPU缺乏cache一致性,需要diable 線程private的L1 cache,或者采用基于軟件的bulk coherence決策(比如在同步點(diǎn),flush掉所有的private L1 cache。
    的頭像 發(fā)表于 10-09 10:06 ?295次閱讀
    <b class='flag-5'>GPGPU</b><b class='flag-5'>體系結(jié)構(gòu)</b><b class='flag-5'>優(yōu)化</b><b class='flag-5'>方向</b>(2)
    RM新时代网站-首页