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

目錄
> VP9視頻編碼案例研究與GCC -MCPU
>使用配置文件的優(yōu)化構建應用程序,GCC -FROFILE生成。
何時使用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)選項來幫助優(yōu)化Ampere處理器上的應用程序性能。

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

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

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

GCC建議

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

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

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

設置-MCPU選項:

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

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

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

使用-mcpu =本機的使用可能更易于使用,盡管如果在其他系統(tǒng)上使用可執(zhí)行文件,共享庫或對象文件,則可能存在潛在的問題。如果在安培安培處理器上完成構建,則該代碼可能無法在安培的Altra或Altra Max處理器上運行,因為生成的代碼可能包括AMPERE安培處理器支持的ARMV8.6指令。 如果在Ampere Altra或Altra Max處理器上完成構建,則GCC將不會利用安培安培處理器上可用的最新性能改進。當構建代碼以利用任何體系結構的性能功能時,這是一個一般問題。

>下表列出了支持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 全部

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

>

常見GCC選項的摘要:

  • 在構建Ampere處理器上,建議使用

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

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

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

  • -O2被認為是標準的GCC優(yōu)化選項,并且可以用作與其他GCC選項進行比較的基準。

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

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

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

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

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

>

>默認的libvpx構建:

如何使用-mcpu =本機

優(yōu)化libvpx構建
$ 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ù)花費了最多的時間包括函數(shù)VPX_Convolve8_Horiz_Neon和VPX_Convolve8_vert_neon。 LIBVPX GIT存儲庫表明,通過ARM優(yōu)化了這些功能以使用ARMV8.6-A USDOT(混合符號點產(chǎn)物)指令,該指令由Ampere處理器支持。

。使用GCC -MCPU =天然,在VPX_Convolve8_Horiz_Neon中花費的CPU周期從6.07e 11減少到2.52e 11,以在Ampere Altra處理器上啟用點產(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處理器上通過改進應用程序瀏覽器來啟用7%。下表顯示了使用Perf Record和Perf Report實用程序收集的數(shù)據(jù),以測量CPU周期和指令退休。

構建config

符號 循環(huán)(%) 循環(huán) >指令(%) >指令 默認構建 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 整個應用程序 100 6.97e 10 100 1.48e 11 -mcpu =本機 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 整個應用程序 100 6.48e 10 100 1.48e 11 > GCC配置文件指導優(yōu)化 >本節(jié)概述了GCC的配置文件指導優(yōu)化(PGO)和用PGO優(yōu)化MySQL的案例研究。配置指南的優(yōu)化使GCC能夠做出更好的優(yōu)化決策,包括優(yōu)化分支,代碼塊重新排序,通過循環(huán)展開,循環(huán)剝離和矢量化來融合功能和循環(huán)優(yōu)化。使用PGO需要修改構建環(huán)境才能進行三部分構建。

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

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

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

    何時使用PGO?

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

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

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

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

    Sysbench用于評估MySQL性能

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

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的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的學習平臺時,重點不僅僅是內(nèi)容質量。同樣重要的是如何交付內(nèi)容。這是因為現(xiàn)代教育平臺依賴于媒體,快速且易于消化。

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

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

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

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

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

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

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

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

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

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

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

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

See all articles