91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

鯤鵬GCC編譯器具有代表性的三方面優(yōu)化特性

7riU_gh_3a181fa ? 來(lái)源:華為計(jì)算 ? 作者:華為計(jì)算 ? 2021-09-02 10:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編譯器作為重要的基礎(chǔ)軟件之一,在各個(gè)領(lǐng)域都有著非常廣泛的應(yīng)用。比如在嵌入式領(lǐng)域,如何在有限的空間內(nèi)豐富應(yīng)用的功能困擾著眾多的工程師,編譯器能夠輔助大幅度地降低應(yīng)用的體積,是工程師們不可或缺的好幫手。

再或是 HPC(High Performance Computing,高性能計(jì)算)領(lǐng)域聚焦于計(jì)算密集型的場(chǎng)景,像氣象預(yù)報(bào)、科學(xué)研究等,極致化的應(yīng)用性能是 HPC 領(lǐng)域不斷探索的課題之一,編譯器作為重要的性能貢獻(xiàn)者,在其中發(fā)揮著至關(guān)重要的作用。

鯤鵬 GCC 是搭載在鯤鵬平臺(tái)上的高性能編譯器,致力于為用戶(hù)提供高效的性能體驗(yàn),在編譯算法、指令流水、運(yùn)算庫(kù)等方面進(jìn)行了深度的優(yōu)化。

了解鯤鵬 GCC 編譯器

鯤鵬 GCC 編譯器是基于開(kāi)源 GCC 的高性能編譯器,鯤鵬 GCC 與鯤鵬芯片協(xié)同,通過(guò)編譯器技術(shù)充分發(fā)揮芯片的性能,提升鯤鵬硬件平臺(tái)上業(yè)務(wù)的性能體驗(yàn)。除支持開(kāi)源 GCC 通用功能之外,鯤鵬 GCC 主要對(duì)以下三個(gè)方面進(jìn)行了增強(qiáng)。

更豐富的編譯算法:提供豐富的優(yōu)化算法,如內(nèi)存布局優(yōu)化、結(jié)構(gòu)體拆分優(yōu)化、自動(dòng)矢量化等,大幅提升指令和數(shù)據(jù)的吞吐量。

更靈活的指令流水:適配鯤鵬平臺(tái)的指令流水優(yōu)化,發(fā)揮鯤鵬架構(gòu)極致算力。

更高效的運(yùn)算庫(kù):深度優(yōu)化數(shù)學(xué)庫(kù)算法,提供豐富的矢量數(shù)學(xué)函數(shù)接口,大幅提升數(shù)學(xué)計(jì)算的效率。

當(dāng)前鯤鵬 GCC 編譯器已廣泛應(yīng)用于多種 HPC 典型場(chǎng)景,如氣象、安防、流體力學(xué)等,性能優(yōu)勢(shì)已經(jīng)逐步展露。其中,SPECCPU 2006 和 SPECCPU 2017 benchmark 跑分平均優(yōu)于開(kāi)源 GCC 15% 以上,HPC 典型氣象應(yīng)用 WRF 優(yōu)于開(kāi)源 GCC 10% 以上。

GCC 編譯器典型優(yōu)化場(chǎng)景及其優(yōu)化原理介紹

結(jié)構(gòu)體拆分優(yōu)化——大幅提升 Cache 命中率

SPECCPU 2006 benchmark 中有一款 libquantum 子項(xiàng),它用于模擬量子計(jì)算機(jī)運(yùn)行整數(shù)分解的 Shor 算法,該子項(xiàng)的一個(gè)瓶頸在于頻繁連續(xù)的內(nèi)存讀寫(xiě),簡(jiǎn)化后的代碼示例如下圖左邊所示。

dd98c7bc-0b48-11ec-8fb8-12bb97331649.png

內(nèi)存布局優(yōu)化原理示意圖

從循環(huán)中可以看出在結(jié)構(gòu)體 node_t 中,data1 的使用率極高,而 data2 是不使用的。在源代碼中,數(shù)據(jù)是以結(jié)構(gòu)體數(shù)組的形式排布在內(nèi)存中,按照普通編譯器的編譯方式,每次從內(nèi)存中取數(shù)據(jù)時(shí)會(huì)將連續(xù)幾個(gè)結(jié)構(gòu)體數(shù)據(jù)加載到 cache 中,而 cache 包含的數(shù)據(jù)中有一半將不會(huì)參與運(yùn)算,這會(huì)造成 cache 空間和帶寬的浪費(fèi)與性能的損耗。

鯤鵬 GCC 編譯器會(huì)自動(dòng)檢查循環(huán)中適合優(yōu)化的場(chǎng)景,通過(guò)將結(jié)構(gòu)體拆分成兩個(gè)結(jié)構(gòu)體的方式(如上圖右),將有效的數(shù)據(jù)緊湊排布起來(lái),從而提高 cache 命中率和應(yīng)用性能。經(jīng)測(cè)試,此優(yōu)化可以給 libquantum 子項(xiàng)帶來(lái)80%的性能提升。除此之外,鯤鵬 GCC 編譯器還支持結(jié)構(gòu)體全展開(kāi)、結(jié)構(gòu)體成員重排列等內(nèi)存布局優(yōu)化,讓?xiě)?yīng)用程序的性能如虎添翼。

指令流水優(yōu)化——更加適合鯤鵬的指令調(diào)度模型

通用的指令流水調(diào)度是基于各個(gè)指令的消耗和指令間的依賴(lài)關(guān)系合理地調(diào)度指令執(zhí)行的順序。在不進(jìn)行指令流水優(yōu)化時(shí),6條指令依次順序執(zhí)行,假設(shè)每條指令需要兩個(gè)單位的執(zhí)行時(shí)間來(lái)計(jì)算得到結(jié)果,由于指令間存在數(shù)據(jù)依賴(lài),在沒(méi)有計(jì)算得到 V1 值的條件下,無(wú)法進(jìn)行 V0 值的計(jì)算,由此導(dǎo)致了一個(gè)單位時(shí)間的等待,造成性能損失。

在使用指令流水優(yōu)化后,在 V 系列指令執(zhí)行等待的一個(gè)單位時(shí)間內(nèi)加入了沒(méi)有數(shù)據(jù)依賴(lài)的K系列指令的執(zhí)行,所有指令的執(zhí)行被合理地調(diào)度了起來(lái),指令流水優(yōu)化提升了指令執(zhí)行的效率和程序運(yùn)行的性能。

鯤鵬芯片基于 ARM 架構(gòu),對(duì)指令的消耗和指令間依賴(lài)關(guān)系的處理進(jìn)行了優(yōu)化和增強(qiáng)。鯤鵬 GCC 編譯器導(dǎo)入了基于鯤鵬芯片的指令模型,使得指令流水優(yōu)化的結(jié)果能夠更加適合鯤鵬芯片的執(zhí)行,提升鯤鵬軟件運(yùn)行的性能。經(jīng)測(cè)試,該優(yōu)化可以給 SPEC CPU 2006benchmark 帶來(lái)2%的整體性能提升。

高性能運(yùn)算庫(kù)——極致性能的數(shù)學(xué)庫(kù)和矢量數(shù)學(xué)函數(shù)

HPC 領(lǐng)域會(huì)運(yùn)用到大量的數(shù)學(xué)函數(shù)計(jì)算,如 pow、sinf、log 等,也經(jīng)常需要對(duì)整個(gè)數(shù)組內(nèi)的數(shù)據(jù)做數(shù)學(xué)函數(shù)運(yùn)算。如下圖舉例所示,左邊是需要對(duì) a 數(shù)組的所有數(shù)據(jù)進(jìn)行 sinf 數(shù)學(xué)計(jì)算。

正常情況下會(huì)循環(huán)遍歷 a 數(shù)組依次對(duì)每個(gè)數(shù)據(jù)進(jìn)行 sinf 數(shù)學(xué)計(jì)算,無(wú)法獲得進(jìn)一步的性能提升空間。鯤鵬 GCC 編譯器能夠識(shí)別該場(chǎng)景,自動(dòng)將 sinf 數(shù)學(xué)函數(shù)的調(diào)用轉(zhuǎn)化為矢量化 vec_sinf 的數(shù)學(xué)調(diào)用,能夠同時(shí)處理四個(gè)數(shù)據(jù)的 sinf 數(shù)學(xué)計(jì)算,并矢量化存取數(shù)據(jù),得到性能的提升。經(jīng)測(cè)試,該優(yōu)化可以給 HPC 領(lǐng)域 NEMO 應(yīng)用帶來(lái)6%的性能提升。

ddd81796-0b48-11ec-8fb8-12bb97331649.png

矢量數(shù)學(xué)函數(shù)優(yōu)化原理示意圖

本文我們主要介紹了鯤鵬 GCC 編譯器具有代表性的三方面優(yōu)化特性:前中端編譯算法優(yōu)化、后端指令優(yōu)化、運(yùn)行時(shí)庫(kù)優(yōu)化。除此之外,還有軟件預(yù)取、循環(huán)優(yōu)化、分支預(yù)測(cè)、矢量化等編譯優(yōu)化特性的開(kāi)發(fā)應(yīng)用。

編輯:jq

聲明:本文內(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)注

    463

    文章

    54014

    瀏覽量

    466289
  • GCC
    GCC
    +關(guān)注

    關(guān)注

    0

    文章

    112

    瀏覽量

    26272
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51644
  • HPC
    HPC
    +關(guān)注

    關(guān)注

    0

    文章

    346

    瀏覽量

    24987

原文標(biāo)題:【鯤鵬 DevKit 黑科技揭秘】┃鯤鵬GCC編譯器,釋放鯤鵬澎湃算力

文章出處:【微信號(hào):gh_3a181fa836b6,微信公眾號(hào):華為計(jì)算】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    單片機(jī)開(kāi)發(fā)功能安全中編譯器

    的問(wèn)題是,防御編碼和外部數(shù)據(jù)訪問(wèn)等實(shí)踐并不屬于編譯器認(rèn)可的領(lǐng)域。例如,C和C ++都沒(méi)有為內(nèi)存損壞留出任何余地,因此,除非在沒(méi)有這種損壞的情況下可以訪問(wèn)旨在防止內(nèi)存損壞的代碼,否則在對(duì)代碼進(jìn)行優(yōu)化
    發(fā)表于 12-01 06:44

    高校宿舍水電計(jì)費(fèi)?智能管理?能效優(yōu)化一體化系統(tǒng)

    個(gè)重要方面,一是安全管理工作,二是水電計(jì)量和收費(fèi)工作,是節(jié)能降耗。對(duì)高校宿舍水電管理的現(xiàn)狀及針對(duì)以上三方面存在問(wèn)題進(jìn)行探討,并針對(duì)這三方面摸索行之有效的對(duì)策,對(duì)于高校宿舍水電管理
    的頭像 發(fā)表于 11-13 14:25 ?276次閱讀
    高校宿舍水電計(jì)費(fèi)?智能管理?能效<b class='flag-5'>優(yōu)化</b>一體化系統(tǒng)

    飛凌嵌入式ElfBoard-Vim編輯器之GCC編譯器的安裝

    GCC(GNU Compiler Collection)是由GNU開(kāi)發(fā)的編程語(yǔ)言編譯器,最初是作為GNU操作系統(tǒng)的編譯器編寫(xiě)的。GCC是一個(gè)編譯器
    發(fā)表于 10-15 08:44

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會(huì)被編譯呢?

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會(huì)被編譯?有什么編譯選項(xiàng)可以設(shè)置嗎? 移植代碼,有些函數(shù)沒(méi)被調(diào)用的函數(shù)想留在代碼里,但不想被編譯
    發(fā)表于 09-28 12:25

    電能質(zhì)量在線(xiàn)監(jiān)測(cè)裝置定位諧波源的準(zhǔn)確有多高?

    網(wǎng)、測(cè)點(diǎn)密集、同步精準(zhǔn)),準(zhǔn)確可達(dá)到 90% 以上;在復(fù)雜場(chǎng)景(如廣域電網(wǎng)、背景諧波波動(dòng)大、測(cè)點(diǎn)稀疏),準(zhǔn)確可能降至 70% 以下。以下從 “準(zhǔn)確分級(jí)、關(guān)鍵影響因素、提升路徑” 三方面
    的頭像 發(fā)表于 09-26 15:20 ?607次閱讀

    霍爾元件在磁懸浮技術(shù)上的應(yīng)用與解析

    霍爾元件在磁懸浮技術(shù)中主要承擔(dān)磁場(chǎng)檢測(cè)和反饋控制功能,其應(yīng)用可歸納為以下三方面: 一、位置檢測(cè)與反饋控制 .?實(shí)時(shí)位置監(jiān)測(cè)? 線(xiàn)性霍爾元件通過(guò)檢測(cè)磁場(chǎng)強(qiáng)度變化,將懸浮體的位移量轉(zhuǎn)化為電壓信號(hào)輸出
    發(fā)表于 08-07 10:40

    電子測(cè)試行業(yè)中的第三方檢測(cè)機(jī)構(gòu)如何解決平臺(tái)靈活度低,維護(hù)困難等痛點(diǎn)問(wèn)題?

    在競(jìng)爭(zhēng)激烈的市場(chǎng)環(huán)境中,第三方檢測(cè)機(jī)構(gòu)面臨著諸多挑戰(zhàn),尤其是在來(lái)料測(cè)試環(huán)節(jié)。某權(quán)威第三方檢測(cè)機(jī)構(gòu)就曾深陷困境,他們一方面要應(yīng)對(duì)產(chǎn)品不確定性高與系統(tǒng)固化嚴(yán)重的矛盾,另一方面還需解決已有系
    的頭像 發(fā)表于 08-06 17:07 ?827次閱讀
    電子測(cè)試行業(yè)中的第<b class='flag-5'>三方</b>檢測(cè)機(jī)構(gòu)如何解決平臺(tái)靈活度低,維護(hù)困難等痛點(diǎn)問(wèn)題?

    天合跟蹤獲得DNV第三方風(fēng)洞測(cè)試審查報(bào)告

    三方審核。這不僅是三方合作的里程碑,更是中國(guó)光伏跟蹤支架技術(shù)邁向國(guó)際高標(biāo)準(zhǔn)的重要一步。DNV對(duì)此研究成果的專(zhuān)業(yè)以及可靠進(jìn)行了全面審查。
    的頭像 發(fā)表于 07-08 17:35 ?945次閱讀

    邊緣設(shè)備AI部署:編譯器如何實(shí)現(xiàn)輕量化與高性能?

    、ASIC等)上高效執(zhí)行的機(jī)器代碼。AI編譯器在AI模型的部署和優(yōu)化中扮演著關(guān)鍵角色,能夠顯著提升模型的運(yùn)行效率和性能。 ? AI編譯器的主要功能 ? AI編譯器的主要功能包括模型
    的頭像 發(fā)表于 07-06 05:49 ?6656次閱讀

    使用 Claroty SRA 優(yōu)化三方 OT 遠(yuǎn)程訪問(wèn)

    三方,如原始設(shè)備制造商 (OEM) 技術(shù)員和維護(hù)承包商,是確保 OT 環(huán)境可用、完整和安全的關(guān)鍵。負(fù)責(zé)服務(wù) OT 資產(chǎn)的第三方經(jīng)常遠(yuǎn)
    的頭像 發(fā)表于 06-17 16:11 ?788次閱讀
    使用 Claroty SRA <b class='flag-5'>優(yōu)化</b>第<b class='flag-5'>三方</b> OT 遠(yuǎn)程訪問(wèn)

    三方工業(yè)互聯(lián)網(wǎng)平臺(tái)有哪些

    三方工業(yè)互聯(lián)網(wǎng)平臺(tái)有哪些
    的頭像 發(fā)表于 06-14 15:48 ?1121次閱讀

    小鵬汽車(chē)出席東盟-中國(guó)-海合會(huì)三方經(jīng)濟(jì)論壇

    近日,東盟-中國(guó)-海合會(huì)三方經(jīng)濟(jì)論壇于馬來(lái)西亞吉隆坡盛大開(kāi)幕,中國(guó)新能源汽車(chē)領(lǐng)軍企業(yè)代表小鵬汽車(chē)受邀出席開(kāi)幕式及系列活動(dòng)。
    的頭像 發(fā)表于 06-04 15:42 ?786次閱讀

    萬(wàn)里紅入選安全大模型及Agentic AI賦能網(wǎng)絡(luò)安全代表性廠商

    近日,專(zhuān)注于網(wǎng)絡(luò)安全和數(shù)字風(fēng)險(xiǎn)管理的第三方研究機(jī)構(gòu)安全牛,正式發(fā)布了《Agentic AI安全技術(shù)應(yīng)用報(bào)告》(以下簡(jiǎn)稱(chēng)“報(bào)告”)。報(bào)告依托多方調(diào)研分析,對(duì)Agentic AI發(fā)展背景、安全框架、建設(shè)實(shí)施、產(chǎn)業(yè)能力、代表性廠商、落地應(yīng)用案例等諸多
    的頭像 發(fā)表于 04-30 14:19 ?1012次閱讀

    環(huán)CC81系列電容的高頻特性如何?

    環(huán)CC81系列電容在高頻特性方面表現(xiàn)優(yōu)異,其設(shè)計(jì)特點(diǎn)與材料選擇使其能夠滿(mǎn)足高頻電路對(duì)低損耗、高穩(wěn)定性的需求,以下從關(guān)鍵性能參數(shù)、高頻應(yīng)用適配及技術(shù)優(yōu)勢(shì)
    的頭像 發(fā)表于 04-25 15:06 ?1452次閱讀
    <b class='flag-5'>三</b>環(huán)CC81系列電容的高頻<b class='flag-5'>特性</b>如何?

    請(qǐng)問(wèn)基于GCC編譯器的initcall在STM32如何實(shí)現(xiàn)?

    請(qǐng)問(wèn)各位基于GCC編譯器的initcall在STM32如何實(shí)現(xiàn)?有哪位實(shí)現(xiàn)了嗎?
    發(fā)表于 03-13 06:24