国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
> VP9視頻編碼案例研究與GCC -MCPU
>使用配置文件的優(yōu)化構(gòu)建應(yīng)用程序,GCC -FROFILE生成。
何時(shí)使用PGO?
> MySQL數(shù)據(jù)庫GCC PGO案例研究
首頁 科技周邊 IT業(yè)界 Ampere處理器GCC指南

Ampere處理器GCC指南

Feb 08, 2025 pm 12:23 PM

Ampere處理器GCC指南

本文最初是由Ampere Computing發(fā)表的。 本文介紹了如何有效地使用GNU編譯器收集(GCC)選項(xiàng)來幫助優(yōu)化Ampere處理器上的應(yīng)用程序性能。

嘗試優(yōu)化應(yīng)用程序時(shí),必須衡量潛在優(yōu)化是否改善性能至關(guān)重要。這包括編譯器選項(xiàng)。使用高級編譯器選項(xiàng)可能會導(dǎo)致更好的運(yùn)行時(shí)性能,這可能是出于增加編譯時(shí)間,更多調(diào)試?yán)щy以及通常會增加二進(jìn)制尺寸的成本。為什么編譯器選項(xiàng)影響性能超出了本文的范圍,盡管簡短的答案是代碼生成,現(xiàn)代處理器體系結(jié)構(gòu)以及它們?nèi)绾蜗嗷プ饔梅浅?fù)雜!另一個(gè)重要的一點(diǎn)是,由于計(jì)算機(jī)體系結(jié)構(gòu)的變化和特定的微結(jié)構(gòu),不同的處理器可能會從不同的編譯器選項(xiàng)中受益。優(yōu)化的重復(fù)實(shí)驗(yàn)是績效成功的關(guān)鍵。

>如何衡量應(yīng)用程序的績效來確定限制因素以及以前發(fā)表的文章中已經(jīng)涵蓋的優(yōu)化策略。該論文是在基于安培的阿爾特拉(Ampere Altra)實(shí)例上運(yùn)行時(shí)要回答的前10個(gè)問題,它描述了要收集的性能數(shù)據(jù)以了解整個(gè)系統(tǒng)的性能。優(yōu)化Ampere Altra家族處理器的性能分析方法解釋了如何使用數(shù)據(jù)驅(qū)動(dòng)方法有效地優(yōu)化。

>本文首先總結(jié)了最常見的GCC選項(xiàng),并描述了這些選項(xiàng)如何影響應(yīng)用程序。然后,討論使用GCC選項(xiàng)轉(zhuǎn)向目前的案例研究,以提高Ampere處理器的VP9視頻編碼軟件和MySQL數(shù)據(jù)庫的性能。有效地使用了類似的策略來優(yōu)化安培處理器上運(yùn)行的其他軟件。

GCC建議

GCC編譯器提供了許多可以改善應(yīng)用程序性能的選項(xiàng)。有關(guān)詳細(xì)信息,請參見GCC網(wǎng)站。要生成利用Ampere處理器中可用的所有性能功能的代碼,請使用GCC -MCPU選項(xiàng)。

>使用GCC -MCPU選項(xiàng),要么設(shè)置CPU模型,要么告訴GCC使用基于GCC在VIA -MCPU =本機(jī)上運(yùn)行的機(jī)器的CPU模型。注釋基于舊版X86的系統(tǒng),GCC -MCPU是-Mtune的不棄用同義詞,而GCC -MCPU在基于ARM的系統(tǒng)上得到了完全支持。有關(guān)詳細(xì)信息,請參見ARM的編譯器標(biāo)志指南:-March,-mtune和-mcpu。

總而言之,只要可能,在編譯ARM時(shí)僅使用-MCPU,然后避免-march和-mtune。以下是一個(gè)案例研究,通過使用VP9視頻編碼軟件設(shè)置GCC -MCPU選項(xiàng)來突出顯示性能的提高。

設(shè)置-MCPU選項(xiàng):

  • -MCPU = Ampere1:生成將在安培處理器上運(yùn)行的代碼。 Ampereone是從安培的下一代云本地處理器,將高性能處理器的家族擴(kuò)展到新的行業(yè)領(lǐng)先的核心計(jì)數(shù)。請注意,這可以生成不會在Ampere Altra和Altra Max處理器上運(yùn)行的代碼。此選項(xiàng)最初在GCC版本12.1及更高版本中可用,然后回到GCC 10.5和GCC 11.3。

  • -MCPU = Neoverse-N1:生成將在Ampere Altra,Ampere Altra Max和Ampere AmpereOne上運(yùn)行的代碼。在支持將在安培安培中運(yùn)行的代碼使用此選項(xiàng),但它可能不會利用所有可用的新績效功能。請注意,需要GCC版本9.1或更高版本才能為Ampere Altra和Ampere Altra Max處理器啟用CPU特定調(diào)諧。

  • -MCPU =本機(jī):生成代碼基于CPU GCC正在運(yùn)行的CPU模型。注意,需要GCC版本9.1或更高版本以啟用Ampere Altra和Ampere Altra Max處理器的CPU特定調(diào)諧。

使用-mcpu =本機(jī)的使用可能更易于使用,盡管如果在其他系統(tǒng)上使用可執(zhí)行文件,共享庫或?qū)ο笪募?,則可能存在潛在的問題。如果在安培安培處理器上完成構(gòu)建,則該代碼可能無法在安培的Altra或Altra Max處理器上運(yùn)行,因?yàn)樯傻拇a可能包括AMPERE安培處理器支持的ARMV8.6指令。 如果在Ampere Altra或Altra Max處理器上完成構(gòu)建,則GCC將不會利用安培安培處理器上可用的最新性能改進(jìn)。當(dāng)構(gòu)建代碼以利用任何體系結(jié)構(gòu)的性能功能時(shí),這是一個(gè)一般問題。

>下表列出了支持Ampere處理器-MCPU值的GCC版本。

>處理器 -MCPU值 gcc 9 gcc 10 gcc 11 GCC 12 > gcc 13 安培的醒目 Neoverse-N1 ≥9.1 全部 全部 全部 全部 安培·奧特拉(Ampere Altra Max) Neoverse-N1 ≥9.1 全部 全部 全部 全部 安培 Ampere1 N/A。 ≥10.5 ≥11.3 ≥12.1 全部

>我們的建議是使用上述適當(dāng)?shù)闹凳褂肎CC -MCPU選項(xiàng)(-mcpu = ampere1,-mcpu = neoverse -n1或-mcpu =本機(jī))和-O2來建立性能的基線,然后探索其他優(yōu)化選項(xiàng)并衡量與基線相比,不同的選項(xiàng)是否提高了性能。

>

常見GCC選項(xiàng)的摘要:

  • 在構(gòu)建Ampere處理器上,建議使用

    -MCPU,以啟用處理器特定的調(diào)整和優(yōu)化。 (有關(guān)詳細(xì)信息,請參見上面的討論“設(shè)置-MCPU選項(xiàng)”部分。)

    >
  • 如果您的應(yīng)用程序受到獲取說明的限制,則

    -OS可以優(yōu)化以減少代碼大小。

  • -O2被認(rèn)為是標(biāo)準(zhǔn)的GCC優(yōu)化選項(xiàng),并且可以用作與其他GCC選項(xiàng)進(jìn)行比較的基準(zhǔn)。

  • -O3添加了其他優(yōu)化,以生成更有效的循環(huán)代碼,如果您的應(yīng)用程序性能在循環(huán)中所花費(fèi)的時(shí)間主導(dǎo),則可以嘗試使用。

  • 配置文件指導(dǎo)優(yōu)化(PGO):-frofile -fer -fofile -fofile -use。生成編譯器將使用的配置文件數(shù)據(jù)有潛在地對優(yōu)化做出更好的決策,例如內(nèi)部,循環(huán)優(yōu)化和默認(rèn)分支。這被認(rèn)為是高級優(yōu)化,因?yàn)樗枰臉?gòu)建系統(tǒng),請參見下文。

  • >鏈接時(shí)間優(yōu)化(LTO):-flto。啟用鏈接時(shí)間優(yōu)化,允許編譯器在各個(gè)源文件上進(jìn)行優(yōu)化。這使得在其他編譯器優(yōu)化以及其他編譯器優(yōu)化和其他編譯器優(yōu)化方面可以將函數(shù)在源文件上進(jìn)行串聯(lián)。這也被認(rèn)為是高級優(yōu)化,可能需要更改構(gòu)建系統(tǒng)。此選項(xiàng)增加了整體構(gòu)建時(shí)間,這對于大型應(yīng)用程序可能是戲劇性的??梢詫TO僅在績效關(guān)鍵源文件上使用,以減少構(gòu)建時(shí)間。

> VP9視頻編碼案例研究與GCC -MCPU

VP9是由Google開發(fā)的視頻編碼格式。 LIBVPX是Google的VP8和VP9視頻編解碼器的開源參考軟件實(shí)現(xiàn),以及Open Media聯(lián)盟(AOMEDIA)。 LIBVPX在X264上提供了顯著改善,并花費(fèi)了額外的計(jì)算時(shí)間。有關(guān)VP9和LIBVPX的其他信息,請?jiān)L問Wikipedia。 在本案例研究中,VP9構(gòu)建被配置為使用GCC -MCPU =本機(jī)選項(xiàng)來提高性能。如上所述,在編譯安培處理器上時(shí),請使用-MCPU選項(xiàng)以啟用CPU特定的調(diào)整和優(yōu)化。最初,使用默認(rèn)配置構(gòu)建了libvpx,然后使用-mcpu =本機(jī)進(jìn)行重建。為了評估VP9性能,使用了1080p輸入視頻文件,使用了YouTube的用戶生成的內(nèi)容數(shù)據(jù)集的Original_videos_sports_sports_1080p_sports_1080p-0063.mkv。有關(guān)如何構(gòu)建FFMPEG和包括Ampere處理器的VP9在內(nèi)的各種編解碼器,請參見Ampere的FFMPEG調(diào)整和構(gòu)建指南。

>

>默認(rèn)的libvpx構(gòu)建:

如何使用-mcpu =本機(jī)

優(yōu)化libvpx構(gòu)建
$ git clone https://chromium.googlesource.com/webm/libvpx
$ cd libvpx/
$ export CFLAGS="-mcpu=native -DNDEBUG -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-conversion -Wformat=2 -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wimplicit-function-declaration -Wmissing-declarations -Wmissing-prototypes -Wuninitialized -Wunused -Wextra -Wundef -Wframe-larger-than=52000 -std=gnu89"
$ export CXXFLAGS="-mcpu=native -DNDEBUG -O3 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -Wall -Wdisabled-optimization -Wextra-semi -Wfloat-conversion -Wformat=2 -Wpointer-arith -Wtype-limits -Wcast-qual -Wvla -Wmissing-declarations -Wuninitialized -Wunused -Wextra -Wno-psabi -Wc++14-extensions -Wc++17-extensions -Wc++20-extensions -std=gnu++11 -std=gnu++11"
$ ./configure
$ make verbose=1 
$ ./vpxenc --codec=vp9 --profile=0 --height=1080 --width=1920 --fps=25/1 --limit=100 -o output.mkv /home/joneill/Videos/original_videos_Sports_1080P_Sports_1080P-0063.mkv --target-bitrate=2073600 --good --passes=1 --threads=1 –debug

使用Linux Perf的調(diào)查測量功能中CPU周期的數(shù)量,該函數(shù)花費(fèi)了最多的時(shí)間包括函數(shù)VPX_Convolve8_Horiz_Neon和VPX_Convolve8_vert_neon。 LIBVPX GIT存儲庫表明,通過ARM優(yōu)化了這些功能以使用ARMV8.6-A USDOT(混合符號點(diǎn)產(chǎn)物)指令,該指令由Ampere處理器支持。

。使用GCC -MCPU =天然,在VPX_Convolve8_Horiz_Neon中花費(fèi)的CPU周期從6.07e 11減少到2.52e 11,以在Ampere Altra處理器上啟用點(diǎn)產(chǎn)品優(yōu)化,從而將CPU周期減少為2.4x。

對于VPX_Convolve8_vert_neon,

將CPU周期從2.46E 11減少到2.07e 11,以減少16%。

總體而言,使用-mcpu =天然來啟用DOT產(chǎn)品指令加速編碼文件Original_videos_sports_sports_1080p_sports_sports_1080p -0063.mkv在AMPERE ALTRA處理器上通過改進(jìn)應(yīng)用程序?yàn)g覽器來啟用7%。下表顯示了使用Perf Record和Perf Report實(shí)用程序收集的數(shù)據(jù),以測量CPU周期和指令退休。

構(gòu)建config

符號 循環(huán)(%) 循環(huán) >指令(%) >指令 默認(rèn)構(gòu)建 vpx_convolve8_horiz_neon 8.72 6.07e 11 7.52 1.13e 12 vpx_convolve8_vert_neon 3.53 2.46 E11 2.51 3.78e 11 整個(gè)應(yīng)用程序 100 6.97e 10 100 1.48e 11 -mcpu =本機(jī) vpx_convolve8_horiz_neon 3.89 2.52E 11 3.87 5.71E 11 vpx_convolve8_vert_neon 3.19 2.07 E11 3.29 4.86e 11 整個(gè)應(yīng)用程序 100 6.48e 10 100 1.48e 11 > GCC配置文件指導(dǎo)優(yōu)化 >本節(jié)概述了GCC的配置文件指導(dǎo)優(yōu)化(PGO)和用PGO優(yōu)化MySQL的案例研究。配置指南的優(yōu)化使GCC能夠做出更好的優(yōu)化決策,包括優(yōu)化分支,代碼塊重新排序,通過循環(huán)展開,循環(huán)剝離和矢量化來融合功能和循環(huán)優(yōu)化。使用PGO需要修改構(gòu)建環(huán)境才能進(jìn)行三部分構(gòu)建。

>使用配置文件的優(yōu)化構(gòu)建應(yīng)用程序,GCC -FROFILE生成。

在代表工作負(fù)載上運(yùn)行應(yīng)用程序以生成配置文件數(shù)據(jù)。

>使用配置文件數(shù)據(jù),gcc -fprofile -use。
  1. 使用PGO的挑戰(zhàn)是上面步驟2中極高的性能開銷。由于運(yùn)行使用GCC -FROFILE生成的應(yīng)用程序的性能緩慢,因此在生產(chǎn)環(huán)境中運(yùn)行的系統(tǒng)運(yùn)行可能是不切實(shí)際的。請參閱GCC手冊的程序儀器選項(xiàng)部分,以使用運(yùn)行時(shí)儀器和使用生成的配置文件信息進(jìn)行優(yōu)化進(jìn)行優(yōu)化的部分構(gòu)建應(yīng)用程序,以獲取其他詳細(xì)信息。
  2. 如GCC手冊中所述,建議用于多線程應(yīng)用程序,并可以通過收集改進(jìn)的配置文件數(shù)據(jù)來提高性能。

    何時(shí)使用PGO?

    >使用PGO,GCC可以通過提供其他信息,例如測量分支,而不是采用并測量循環(huán)跳閘計(jì)數(shù)來更好地優(yōu)化應(yīng)用程序。 PGO是一種有用的優(yōu)化,可以嘗試查看其是否提高性能。 PGO可能有助于包括分支錯(cuò)誤預(yù)測的應(yīng)用程序的性能簽名,可以使用Perf Utility讀取CPU的性能監(jiān)控單元(PMU)計(jì)數(shù)器BR_MIS_PRED_RETIED。大量的分支錯(cuò)誤預(yù)測導(dǎo)致前端攤位的很高比例,可以通過Stall_frontend PMU計(jì)數(shù)器進(jìn)行測量。具有高L2指令的申請緩存率也可能受益于PGO,可能與錯(cuò)誤預(yù)測的分支機(jī)構(gòu)有關(guān)??偠灾?,很大一部分分支機(jī)構(gòu)錯(cuò)誤預(yù)測,CPU前端攤位和L2指令cache遺漏是績效簽名,PGO可以提高性能。

    > MySQL數(shù)據(jù)庫GCC PGO案例研究

    MySQL是世界上最受歡迎的開源數(shù)據(jù)庫,由于MySQL二進(jìn)制尺寸巨大,是使用GCC PGO優(yōu)化的理想候選者。沒有PGO信息,海灣合作委員會就無法正確預(yù)測執(zhí)行的許多不同代碼路徑。使用PGO極大地減少了分支錯(cuò)誤預(yù)測,L2指令cache MISS率和CPU前端檔位上的Ampere Altra Max處理器。

    總結(jié)使用GCC PGO優(yōu)化MySQL的方式:

    Sysbench用于評估MySQL性能

    使用MySQL MTR(MySQL-Test-run)測試套件
    1. GCC PGO
    2. 與默認(rèn)構(gòu)建相比 然后將所使用的線程數(shù)從1到1024變化,OLTP_POINT_SELECT的平均速度為29%,在Ampere Altra Max M128-30處理器上測試的OLTP_READ_ONLY測試為20%。
    3. 有64個(gè)線程,PGO通過改進(jìn)MySQL的吞吐量
    4. 提高了32%
    5. 其他詳細(xì)信息可以在Ampere開發(fā)人員的網(wǎng)站上找到MySQL Tuning Guide。
    6. 。
    7. 摘要
    8. 優(yōu)化應(yīng)用程序需要實(shí)驗(yàn)不同的策略,以確定哪種作用最佳。本文為不同的海灣合作委員會編譯器優(yōu)化提供了建議,以生成在安培處理器上運(yùn)行的高性能應(yīng)用程序。它突出顯示了使用-MCPU選項(xiàng)作為生成代碼的最簡單方法,該代碼利用了Ampere Cloud Native處理器支持的所有功能。針對MySQL數(shù)據(jù)庫和VP9視頻編碼器的兩個(gè)案例研究顯示了使用GCC選項(xiàng)來優(yōu)化這些應(yīng)用程序至關(guān)重要的這些應(yīng)用程序。Ampere的第一個(gè)云本地處理器為可持續(xù)云計(jì)算而構(gòu)建的

      >可預(yù)測的高性能,平臺可擴(kuò)展性和功率效率在行業(yè)中提供了前所未有的。我們邀請您了解有關(guān)開發(fā)人員工作的更多信息,并在developer.amperecomputing.com上找到最佳實(shí)踐,并加入community.amperecomputing.com。

以上是Ampere處理器GCC指南的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

開發(fā)人員的快捷方式到您的Udemy樣平臺 開發(fā)人員的快捷方式到您的Udemy樣平臺 Jun 17, 2025 pm 04:43 PM

在開發(fā)類似于Udemy的學(xué)習(xí)平臺時(shí),重點(diǎn)不僅僅是內(nèi)容質(zhì)量。同樣重要的是如何交付內(nèi)容。這是因?yàn)楝F(xiàn)代教育平臺依賴于媒體,快速且易于消化。

用于購買SSL證書的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺 用于購買SSL證書的經(jīng)濟(jì)有效的轉(zhuǎn)售商平臺 Jun 25, 2025 am 08:28 AM

在一個(gè)在線信任不可談判的世界中,SSL證書對于每個(gè)網(wǎng)站都至關(guān)重要。 SSL認(rèn)證的市場規(guī)模在2024年價(jià)值56億美元,并且由于電子商務(wù)業(yè)務(wù)的激增而推動(dòng)了強(qiáng)勁的增長

SaaS的5個(gè)最佳支付門戶:您的最終指南 SaaS的5個(gè)最佳支付門戶:您的最終指南 Jun 29, 2025 am 08:28 AM

付款網(wǎng)關(guān)是付款過程的關(guān)鍵組成部分,使企業(yè)能夠在線接受付款。它充當(dāng)客戶與商人之間的橋梁,安全地傳輸付款信息并促進(jìn)交易。 為了

新研究聲稱AI比我們更好地'理解”情緒。特別是在情感上充滿電的情況下 新研究聲稱AI比我們更好地'理解”情緒。特別是在情感上充滿電的情況下 Jul 03, 2025 pm 05:48 PM

在我們認(rèn)為人類始終超越機(jī)器的領(lǐng)域的另一個(gè)挫折中,研究人員現(xiàn)在建議AI比我們更好地理解情感。研究人員發(fā)現(xiàn)人工智能證明了一個(gè)

由于新的Microsoft AI型號 由于新的Microsoft AI型號 Jul 05, 2025 am 12:44 AM

一種新的人工智能(AI)模型已經(jīng)證明了比幾個(gè)使用最廣泛使用的全球預(yù)測系統(tǒng)更快,更精確地預(yù)測重大天氣事件的能力。該名為Aurora的模型已接受過培訓(xùn)。

您的設(shè)備喂養(yǎng)AI助手并收集個(gè)人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 您的設(shè)備喂養(yǎng)AI助手并收集個(gè)人數(shù)據(jù),即使他們睡著了。這是如何知道您分享的內(nèi)容。 Jul 05, 2025 am 01:12 AM

不管喜歡與否,人工智能已成為日常生活的一部分。許多設(shè)備(包括電動(dòng)剃須刀和牙刷)已成為AI驅(qū)動(dòng)的“使用機(jī)器學(xué)習(xí)算法來跟蹤一個(gè)人的使用方式,Devi的方式

高級AI型號的CO₂回答相同問題時(shí)的排放量比更常見的LLM 高級AI型號的CO₂回答相同問題時(shí)的排放量比更常見的LLM Jul 06, 2025 am 12:37 AM

根據(jù)最近的一項(xiàng)研究,我們試圖使AI模型的功能越精確,其碳排放量就越大 - 某些提示產(chǎn)生的二氧化碳比其他提示高達(dá)50倍。

See all articles