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

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

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

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

處理器與AI芯片 ? 來源: 處理器與AI芯片 ? 2024-10-09 10:06 ? 次閱讀

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

繼續(xù)之前的文章,我們介紹GPGPU的優(yōu)化方向:1)增強GPGPU的可編程性 2)CPU-GPU異構(gòu)架構(gòu)

增強GPGPU的可編程性

增強GPGPU的可編程性可以增加GPGPU相對其他平臺,比如FPGA的優(yōu)勢。主要有以下三個方向:

1.Coherence and Consistency model

2.Transactional Memory

3.Memory Management

Coherence and Consistency model

目前的GPU缺乏cache一致性,需要diable 線程private的L1 cache,或者采用基于軟件的bulk coherence決策(比如在同步點,flush掉所有的private L1 cache。

不同于CPU的一致性模型,GPU存在大量的線程,如果也按照CPU的方式維護一致性,那么代價很大。文章【Cache Coherence for GPU Architectures】通過使用全局同步計數(shù)器來self-invalidate cache block,不需要顯性的信息來維護一致性,稱為Temporal Coherence(TC)。

wKgaomcF5YKAEuVYAADdcbf8PKE778.jpg

【Exploring Memory Consistency for Massively-Threaded Throughput-Oriented Processors】分析了硬件一致性模型,通過比較了sequential consistency, total store order and relaxed memory model,他們發(fā)現(xiàn)硬件一致性在GPU上的代價很小,可以維護strongly ordered,而只需要很小的代價。

Transactional memory

GPU中,跨線程的通信是通過在同一個thread block內(nèi)的thread的scratch-pad memory進行的。最新的GPU也可以使不同的線程通過全局的原子操作來訪問進行全局thread block的通信。

原子操作可以用于實現(xiàn)軟件同步原語,比如fine-grain lock,可以簡化編程,但是lock-based的同步容易導(dǎo)致死鎖。KILO TM (KILO TM: Hardware Transactional Memory for GPU Architecture) 不依賴cache一致性或者原子操作,而是通過細(xì)粒度的基于值的方法檢測沖突。

wKgZomcF5YKAGz5iAAFjUpTFaXk707.jpg

Memory management

wKgZomcF5YKAFiirAAKb9oyNOCw770.jpg

GPUdmmGPUdmm: A High-performance andMemory-Oblivious GPU ArchitectureUsing Dynamic Memory Management通過將GPU的內(nèi)存看作是CPU的內(nèi)存的緩存,來進行動態(tài)的內(nèi)存管理。有以下優(yōu)勢:

簡化了軟件編程對memory的管理

給編程人員一個CPU的memory編程視圖

將GPU執(zhí)行和CPU-GPU數(shù)據(jù)傳輸overlap

【Architectural Support for Address Translation on GPUs】通過基于GPU的特性修改了傳統(tǒng)的TLB和PTW來減少對虛擬地址物理地址轉(zhuǎn)換的overhead。

wKgZomcF5YKAco85AABKEGxbpjk257.jpg

通過在GPGPU內(nèi)部支持virtual-physical address的轉(zhuǎn)換可以支持unified memory,文章的作者通過比較與CPU TLB和page table walker的不同,主要進行了以下改進:

warp內(nèi)的線程公用TLB,而不是每個線程獨占一個

地址coaleacing之后再進行虛實地址轉(zhuǎn)換

提出了page divergence的觀點,即一個warp內(nèi)只需要3個讀口即可滿足常用的情況

TLB采用非阻塞tlb

Cache Conscious Warp Scheduling

wKgaomcF5YKAT6r2AAB-qpdG8u4453.jpg

CPU-GPU與異構(gòu)架構(gòu)

CPU-GPU集成

【Redefining the role of the CPU in the era of CPU–GPU integration】文章展示了在將代碼部分CPU執(zhí)行,部分卸載到GPU上執(zhí)行之后,在CPU執(zhí)行的代碼和傳統(tǒng)的CPU優(yōu)化過的代碼完全不同。

wKgaomcF5YKAdXxKAAE8cpRrq8E960.jpg

他們展示了剩余給CPU的代碼有更低的指令層并行性,更復(fù)雜的load store操作,更難進行預(yù)取和分支預(yù)測。并且剩下的順序執(zhí)行的代碼不會從SIMD指令獲益,也不會從更多的CPU核數(shù)上受益,因為線程并行和數(shù)據(jù)并行都被卸載到GPU上了。

CPU-GPU 編程

【Heterogeneous system coherence for integrated CPU–GPU system】提出以前的基于目錄一致性的CPU-GPU的顆粒度是64Byte,可以將其增加到1KB。因為很多GPU程序是有高度的spatial locality的,大多數(shù)的請求是不需要訪問region directory的。

利用異構(gòu)架構(gòu)

【CPU-Assisted GPGPU on Fused CPU-GPU Architectures】提出可以通過在CPU將程序卸載到GPU之后,在編譯器的輔助下另起一個線程,這個線程用于專門給GPU預(yù)取數(shù)據(jù),因為CPU有更高的時鐘頻率,因此預(yù)取提高l3 cache的命中率,可以取得很好的效果。

wKgaomcF5YKAf2B4AAA0fACVCQk307.jpg

Shared resources management

因為CPU和GPU越來越趨近于共享memory資源,包括last level cache, 片上網(wǎng)絡(luò)和內(nèi)存。因為GPU可以產(chǎn)生大量的內(nèi)存請求,可以競爭掉CPU對內(nèi)存的請求。主要有兩種方式來減少CPU和GPU之間的干擾:

application-aware resource managerment

throttling-based management

【Staged memory scheduling: Achieving high performance and scability in heterogeneous systems】提出了staged memory scheduling策略。在內(nèi)存的層面對cpu gpu的mem req進行平衡。

wKgZomcF5YKACRuIAABysh6CQkY498.jpg

第一個stage是基于row-buffer locality,第二個stage通過平衡 “偏向CPU的shortest job first調(diào)度策略” 和 “偏向GPU的round robin調(diào)度策略”來保證CPU和GPU的平衡。 【TAP: A TLP-Aware Cache Management Policy for a CPU-GPU Heterogeneous】發(fā)現(xiàn)并不是所有的GPU應(yīng)用都是對latency不敏感,也存在對cache 敏感,對latency敏感的應(yīng)用,并且發(fā)現(xiàn)GPU core會通常比CPU core更頻繁地訪問Cache。他們引入了cache block lifetime normalization策略來使得對于CPU和GPU,cache都有相似的lifetime。 【Managing GPU concurrency in heterogeneous architectures】通過增加或減少GPU的active warp,來減少其與CPU的競爭。

wKgaomcF5YKAWtzpAAHENaUAMzQ680.jpg

總結(jié):

增強GPU的可編程性

1. Coherence and Consistency model 通過使用計數(shù)器,避免顯示的維護cache一致性,self-invalidate。另外硬件維護strongly ordered內(nèi)存一致性,代價也可以很小。

2. Transactional Memory 可以使用基于value檢測沖突。

3. Memory Management 可以將GPU的memory視為CPU memory的cache。另外也有對虛實轉(zhuǎn)換TLB和page table walker的優(yōu)化工作。

CPU-GPU異構(gòu)架構(gòu)

1.CPU的代碼特性在將并行性高的代碼offload到GPU之后完全不同

2.同樣是對CPU,GPU一致性的優(yōu)化,將顆粒度從64B增加到1KB

3.利用異構(gòu)架構(gòu),CPU執(zhí)行對GPU數(shù)據(jù)的預(yù)取工作

4. 針對CPU和GPU對資源競爭的平衡,可以平衡對memory,cache的訪問,也可以調(diào)節(jié)GPU的active warp。

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603385
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3616

    瀏覽量

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

    關(guān)注

    0

    文章

    504

    瀏覽量

    19683
  • GPGPU
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    4903

原文標(biāo)題: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

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

    目錄一、嵌入式微處理器體系結(jié)構(gòu)1、馮諾依曼體系結(jié)構(gòu)2、哈弗體系結(jié)構(gòu)二、嵌入式系統(tǒng)的硬件結(jié)構(gòu)1、嵌入式微控制器MCU(CPU+片內(nèi)內(nèi)存+片內(nèi)外
    發(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幾種常見的指令集X86Inter
    發(fā)表于 12-14 07:13

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

    的原理和術(shù)語,但也包含了顯著的差異。 本規(guī)范的結(jié)構(gòu)如下: ?第2節(jié),DRTM體系結(jié)構(gòu)概述,概述了DRTM,并介紹了該體系結(jié)構(gòu)如何將DRTM映射到基于Arm的系統(tǒng)。本節(jié)介紹了與TCG定義
    發(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)來做詳細(xì)描述。在SAE 體系結(jié)構(gòu)中,RNC部分功能、GGSN、SGSN 節(jié)點將被融合為一個新的節(jié)點,
    發(fā)表于 06-16 13:09 ?9836次閱讀

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

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

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

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

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

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

    XScale是一款具有業(yè)界領(lǐng)先高性能特性的ARM兼容嵌入式微處理器構(gòu)架被應(yīng)用處理 能力要求很高的嵌入式應(yīng)用領(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)系復(fù)雜、隨時間演化、自組織臨界等特性可將其視為復(fù)雜系統(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)星應(yīng)用信息鏈體系結(jié)構(gòu)

    針對偵察衛(wèi)星應(yīng)用信息鏈體系結(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 ?284次閱讀
    <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>(1)