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

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

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

混合使用CPU和GPU元素的多核圖像處理

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Frank Altschuler ,J ? 2022-06-14 11:19 ? 次閱讀

盡管多媒體處理極大地受益于多核處理器可用性的提高,但直到最近,人們?nèi)詢A向于從基本同質(zhì)的 CPU 架構(gòu)的角度考慮多核。一種典型的方法提供雙核、四核和更多數(shù)量的內(nèi)核,這些內(nèi)核排列在對稱多處理器 (SMP) 或緩存一致的非統(tǒng)一內(nèi)存架構(gòu) (ccNUMA) 組中。這些設(shè)備有時(shí)帶有額外的硬件加速來卸載特別困難的任務(wù),例如 H.264 視頻處理中使用的上下文自適應(yīng)可變長度編碼 (CAVLC) 或處理器密集型上下文自適應(yīng)二進(jìn)制算術(shù)編碼 (CABAC) 熵編碼功能。

許多公司現(xiàn)在在他們的設(shè)備中提供集成顯卡,主要是為了節(jié)省電路板空間和材料成本。擁有集成圖形處理單元 (GPU) 的另一個(gè)好處是它可以提供另一種途徑來攻擊具有挑戰(zhàn)性的計(jì)算任務(wù)。例如,AMD 的 R 系列處理器將 Bulldozer CPU 架構(gòu)與離散級 AMD Radeon GPU 集成以產(chǎn)生加速處理單元 (APU)。

GPU 是一組單指令多數(shù)據(jù) (SIMD) 處理元素。請注意陣列和 x86 內(nèi)核之間的通用內(nèi)存控制器。這種架構(gòu)是轉(zhuǎn)向 AMD 異構(gòu)系統(tǒng)架構(gòu) (HSA) 的早期步驟,它通過將集成圖形處理元素視為可應(yīng)用于非圖形數(shù)據(jù)的計(jì)算資源池,顯著打破了傳統(tǒng)的多核方法。它類似于可以使用附加硬件加速器的方式,但具有作為大型可編程設(shè)備集群的優(yōu)勢 - 高端多達(dá) 384 個(gè)內(nèi)核 - 具有數(shù)百 GFLOPS 的計(jì)算吞吐量。

表 1 說明了與 AMD R 系列 APU 具有相同底層架構(gòu)的 AMD 臺式機(jī)部件的基本操作參數(shù)?;?Bulldozer 的 CPU 的 121.6 GFLOPS 浮點(diǎn)性能與 GPU 相形見絀,GPU 為可以有效利用資源的應(yīng)用程序提供 614 GFLOPS。在成像中利用添加的 GPU 處理器的關(guān)鍵是考慮將數(shù)據(jù)塊傳輸?shù)?GPU、對其進(jìn)行處理、然后將結(jié)果返回到主線程所需的時(shí)間。

表 1:運(yùn)行參數(shù)的比較展示了 AMD 臺式機(jī)部件中 CPU 與 GPU 的性能。

pYYBAGKn_nmAQ9DxAAFSbAILleA086.png

視頻轉(zhuǎn)碼應(yīng)用中的性能分析

盡管當(dāng)前一代 AMD R 系列處理器需要在 GPU 和 CPU 之間進(jìn)行緩沖區(qū)傳輸,但數(shù)據(jù)并行應(yīng)用程序可以實(shí)現(xiàn)吞吐量和功率效率的提高,這大大超過了數(shù)據(jù)傳輸?shù)某杀尽?/p>

數(shù)據(jù)并行應(yīng)用程序的一個(gè)示例是 Handbrake,它是一種廣泛使用的視頻轉(zhuǎn)碼實(shí)用程序,可在各種操作系統(tǒng)和硬件平臺上運(yùn)行。該實(shí)用程序值得注意的是,它具有良好集成的多核支持,因此可作為研究多核策略有效性的合適平臺。Handbrake 使用 x264,這是一種功能齊全的 H.264 編碼器,用于多種開源和商業(yè)產(chǎn)品,可提供足夠的多核支持。

在這兩個(gè)項(xiàng)目中都使用了 OpenCL,以最大限度地利用 APU 中可用的 GPU 計(jì)算資源。在 x264 中,與前瞻功能相關(guān)的質(zhì)量優(yōu)化被完全移植到 GPU 上的 OpenCL。這可用于轉(zhuǎn)碼應(yīng)用程序以提高輸出視頻質(zhì)量,通常會(huì)消耗高達(dá)約 20% 的 CPU 時(shí)間。Handbrake 直接使用 x264 作為視頻編碼器。此外,Handbrake 使用 OpenCL 執(zhí)行視頻縮放和從 RGB 到 YUV 色彩空間的色彩空間轉(zhuǎn)換。AMD 的硬件視頻解碼器 (UVD) 也被用于 Handbrake 以執(zhí)行一些視頻解碼任務(wù)。

數(shù)據(jù)是在 Trinity 100 W A10 臺式機(jī)上生成的;但是,底層架構(gòu)與嵌入式產(chǎn)品中使用的架構(gòu)相同。

為了簡化對 APU 復(fù)雜電源管理架構(gòu)的分析,我們評估了頂級熱設(shè)計(jì)功耗 (TDP),而不是分解每個(gè)子系統(tǒng)消耗的功耗。表 2 中顯示的數(shù)據(jù)表明,當(dāng)純粹在 CPU 中執(zhí)行處理時(shí),可以實(shí)現(xiàn) 14.8 fps 的幀速率,并且在 62 秒內(nèi)完成處理。在處理過程中涉及 GPU 和 UVD 塊將幀速率提高到 18.3 fps,從而減少了處理時(shí)間,從而減少了 14 秒或 22% 的功耗。

表 2:對 A10 臺式機(jī)上的 Handbrake 應(yīng)用程序的分析顯示了單獨(dú)使用 CPU 與使用 GPU 和 UVD 塊進(jìn)行處理時(shí)的性能差異。

pYYBAGKn_oCADmn6AADisF-UeVU476.png

表 2 中的浮點(diǎn)運(yùn)算總數(shù)是表 1 中的浮點(diǎn)吞吐量和處理時(shí)間的乘積,從中可以得出一個(gè)品質(zhì)因數(shù):每瓦操作數(shù)。查看每瓦特的總浮點(diǎn)運(yùn)算和歸一化運(yùn)算,很明顯處理資源被留在了桌面上。僅 CPU 的吞吐量為每瓦 75 次操作,而當(dāng)添加 GPU 時(shí),它提高到每瓦 353 次操作,理論浮點(diǎn)吞吐量提高了近 5 倍 (4.7)。

22% 是非常重要的節(jié)省,但是盡管這一代 APU 在 HSA 方向上取得了重大進(jìn)展,但從延遲和吞吐量的角度來看,所有內(nèi)存訪問并不統(tǒng)一。當(dāng)內(nèi)核訪問內(nèi)存時(shí),它會(huì)直接這樣做。在典型應(yīng)用中,此類操作的理論速率為 22 GBps 或 16 到 18 GBps。但是,當(dāng)在主機(jī)內(nèi)存中創(chuàng)建緩沖區(qū)以訪問 GPU 數(shù)據(jù)時(shí),該數(shù)據(jù)會(huì)通過不同的路徑,其中有效帶寬接近 8 MBps。這意味著內(nèi)核在本地可以預(yù)期的內(nèi)存帶寬與程序員為 GPU 內(nèi)存設(shè)置本地緩沖區(qū)時(shí)可以預(yù)期的內(nèi)存帶寬差距接近 3:1。這是對稱的。如果 GPU 需要駐留在 CPU 內(nèi)存中的數(shù)據(jù),那么同樣的關(guān)系也成立。

未來采用全 HSA 架構(gòu)的設(shè)備將擁有統(tǒng)一的內(nèi)存模型,無需在 CPU 和 GPU 內(nèi)存區(qū)域之間復(fù)制數(shù)據(jù)。諸如 x264 的前瞻功能等算法,當(dāng)移入 GPU 的處理域時(shí),從內(nèi)存帶寬的角度來看,將具有近乎同等的地位。

基準(zhǔn)測試應(yīng)用程序中的性能分析

數(shù)據(jù)并行應(yīng)用程序的第二個(gè)示例是 LuxMark,它是一個(gè)面向圖形的基準(zhǔn)測試包,它使用 OpenCL,并說明了當(dāng)從等式中移除內(nèi)存訪問時(shí)間的差異時(shí)可以實(shí)現(xiàn)的目標(biāo)。默認(rèn)的集成基準(zhǔn)測試在 AMD Embedded R-464L APU 上運(yùn)行,其特性如表 3 所示。

表 3:運(yùn)行參數(shù)比較展示了 AMD 嵌入式 R-464L APU 中的 CPU 與 GPU 性能。

pYYBAGKn_oaAJqxoAAE3VTNqWPE255.png

表 4 中的結(jié)果清楚地表明,對于此類處理任務(wù),GPU 的性能優(yōu)于 CPU 25% 以上。使用完整的 HSA 實(shí)施,人們會(huì)期望看到 CPU 加 GPU 的增加接近 GPU 加 CPU 的總和:344。在實(shí)踐中,得到的數(shù)字是 230,這是一個(gè)不平凡的 63% 提升,但不是反映充分利用的資源。這種差距主要是由于 CPU 解析數(shù)據(jù)的開銷以及以前面描述的較低速度在 CPU 和 GPU 之間來回傳輸數(shù)據(jù)的開銷。這些特性將能夠以最小的開銷同時(shí)利用 CPU 和 GPU,從而使 CPU 和 GPU 的綜合性能明顯優(yōu)于單獨(dú)使用任何一個(gè)。

表 4:在 AMD 嵌入式 R-464L APU 上運(yùn)行 LuxMark 2.0 基準(zhǔn)測試的結(jié)果表明 GPU 在此處理任務(wù)中的表現(xiàn)優(yōu)于 CPU。

pYYBAGKn_ouAZEOIAADf1yiowHk819.png

最大化計(jì)算資源

新發(fā)布的 APU 產(chǎn)品為嵌入式計(jì)算產(chǎn)品的設(shè)計(jì)人員提供了重要的計(jì)算資源。利用這些資源需要對底層硬件架構(gòu)有深入的了解,深入了解目標(biāo)應(yīng)用程序中的數(shù)據(jù)流問題,并熟悉 OpenCL 等最新工具。

作者:Frank Altschuler ,Jonathan Gallmeier

審核編輯:郭婷

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

    關(guān)注

    25

    文章

    5421

    瀏覽量

    133814
  • 嵌入式
    +關(guān)注

    關(guān)注

    5059

    文章

    18975

    瀏覽量

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

    關(guān)注

    28

    文章

    4673

    瀏覽量

    128594
收藏 人收藏

    評論

    相關(guān)推薦

    GPU的作用、原理及與CPU、DSP的區(qū)別

    、手持設(shè)備編寫高效輕便的代碼,而且廣泛適用于多核處理器(CPU)、圖形處理器(GPU)、Cell類型架構(gòu)以及數(shù)字信號
    發(fā)表于 11-04 10:04

    GPU

    ,也是一個(gè)統(tǒng)一的編程環(huán)境,便于軟件開發(fā)人員為高性能計(jì)算服務(wù)器、桌面計(jì)算系統(tǒng)、手持設(shè)備編寫高效輕便的代碼,而且廣泛適用于多核處理器(CPU)、圖形處理器(
    發(fā)表于 01-16 08:59

    什么是GPU?GPU的主要作用和工作原理以及GPUCPU的區(qū)別

    圖像和特效時(shí)主要依賴CPU處理能力,稱為軟加速。3D顯示芯片是將三維圖像和特效處理功能集中在顯示芯片內(nèi),也即所謂的硬件加速功能。顯示芯片通
    發(fā)表于 09-13 09:43 ?13次下載

    一文解析GPU圖像處理的基本流程

    現(xiàn)代GPU提供了頂點(diǎn)處理器和片段處理器兩個(gè)可編程并行處理部件。在利用GPU執(zhí)行圖像
    的頭像 發(fā)表于 01-01 08:58 ?5837次閱讀
    一文解析<b class='flag-5'>GPU</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>的基本流程

    淺析cpugpu的區(qū)別

    GPU則專為多任務(wù)而生,并發(fā)能力強(qiáng),具體來講就是多核,一般的CPU有2核、4核、8核等,而GPU則可能會(huì)有成百上千核。
    發(fā)表于 10-06 06:20 ?3358次閱讀

    GPU圖像處理的基本流程

    現(xiàn)代GPU提供了頂點(diǎn)處理器和片段處理器兩個(gè)可編程并行處理部件。在利用GPU執(zhí)行圖像
    的頭像 發(fā)表于 02-14 15:47 ?972次閱讀

    恒訊科技分析:GPU是什么和CPU的區(qū)別?

    GPU是什么和CPU的區(qū)別?CPU是計(jì)算機(jī)的中央處理單元,可以以最小的延遲執(zhí)行算術(shù)和邏輯運(yùn)算。相比之下,GPU是一種嵌入式或外部圖形
    的頭像 發(fā)表于 05-25 17:23 ?2325次閱讀

    GPU圖像處理的工作原理

    現(xiàn)代GPU提供了頂點(diǎn)處理器和片段處理器兩個(gè)可編程并行處理部件。在利用GPU執(zhí)行圖像
    的頭像 發(fā)表于 08-07 09:46 ?990次閱讀
    <b class='flag-5'>GPU</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>的工作原理

    gpucpu有什么區(qū)別?

    )中央處理器,它是電腦中的主要計(jì)算器件。CPU的主要任務(wù)是管理電腦的計(jì)算和處理。CPU可以理解為電腦“大腦”,它可以執(zhí)行所有的命令和計(jì)算任務(wù)。 GP
    的頭像 發(fā)表于 08-09 16:15 ?1.3w次閱讀

    什么是GPUCPUGPUCPU的區(qū)別及聯(lián)系

    GPUCPU是計(jì)算機(jī)系統(tǒng)中最重要的兩種處理器,它們在不同的應(yīng)用中發(fā)揮不同的作用。
    發(fā)表于 08-09 18:24 ?5360次閱讀

    cpu gpu npu的區(qū)別 NPU與GPU哪個(gè)好?gpu是什么意思?

    (CPU)、Graphics Processing Unit(GPU)和Neural Processing Unit(NPU)等處理器和芯片被廣泛應(yīng)用于各種領(lǐng)域。這些處理器和芯片在計(jì)算
    的頭像 發(fā)表于 08-27 17:03 ?1w次閱讀

    CPUGPU之間的主要區(qū)別

    的任務(wù)。GPU的指令有限,只能執(zhí)行與圖形相關(guān)的任務(wù)。它通常可以執(zhí)行任何類型的任務(wù),包括圖形,但不是以非常優(yōu)化的方式。雖然GPU的唯一目的是比CPU更快地處理
    的頭像 發(fā)表于 12-14 08:28 ?737次閱讀
    <b class='flag-5'>CPU</b>和<b class='flag-5'>GPU</b>之間的主要區(qū)別

    為什么GPUCPU更快?

    GPUCPU更快的原因并行處理能力:GPU可以同時(shí)處理多個(gè)任務(wù)和數(shù)據(jù),而CPU通常只能一次
    的頭像 發(fā)表于 01-26 08:30 ?2170次閱讀
    為什么<b class='flag-5'>GPU</b>比<b class='flag-5'>CPU</b>更快?

    gpu是什么和cpu的區(qū)別

    GPUCPU是兩種常見的計(jì)算機(jī)處理器,它們在結(jié)構(gòu)和功能上有很大的區(qū)別。在這篇文章中,我們將探討GPUCPU的區(qū)別,并詳細(xì)介紹它們的原理、
    的頭像 發(fā)表于 02-20 11:24 ?1.8w次閱讀

    多核CPU的優(yōu)勢是什么

    多核CPU(Central Processing Unit,中央處理器)作為現(xiàn)代計(jì)算機(jī)技術(shù)的重要里程碑,其優(yōu)勢在于顯著提升了計(jì)算性能、多任務(wù)處理能力、系統(tǒng)穩(wěn)定性以及能效比等多個(gè)方面。以
    的頭像 發(fā)表于 08-22 14:30 ?1828次閱讀