英特爾最新版C/C++編譯器採用LLVM架構,性能提升明顯

{"type":"doc","content":[{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"下一代英特爾C\/C++編譯器的表現會更加出色,因爲它們將使用LLVM開源基礎架構。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"LLVM幫助我們實現了爲英特爾架構提供更加優秀的C\/C++編譯器這一目標。最新的英特爾C\/C++編譯器使用LLVM架構,可提供更快的編譯時間、更好的優化、增強的標準支持以及對GPU和FPGA負載轉移(offloading)的支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這篇文章中,我將分享我們採用LLVM的相關信息。我將討論這對編譯器的用戶有哪些意義、我們爲什麼這樣做以及未來的光明前景。英特爾C\/C++編譯器採用LLVM的工作已經完成,我還會分享關於英特爾Fortran編譯器採用LLVM這一重要(但尚未完成)計劃的更新信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"採用LLVM的好處有很多。我會建議大家從經典編譯器升級到基於LLVM的編譯器。我們正努力讓這一過程儘可能無縫平滑,同時爲使用英特爾編譯器的開發人員提供大量收益。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"採用LLVM的好處"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"LLVM開源項目是模塊化和可重用的編譯器和一系列工具鏈技術的集合,整個項目支持多種處理器架構和編程語言。Clang開源項目提供了一個C\/C++前端,爲LLVM項目支持了最新的語言標準。包括Clang在內,LLVM是由一個龐大且非常活躍的開發社區維護的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/c6\/c6f5d248b3849763f8fb2717ec03c1f7.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"採用LLVM的好處有很多,第一條要說的是"},{"type":"text","marks":[{"type":"strong"}],"text":"更快的構建時間"},{"type":"text","text":"。衆所周知,Clang是很快的!我們使用英特爾oneAPI 2021.3"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/tools\/oneapi.html","title":null,"type":null},"content":[{"type":"text","text":"工具包"}]},{"type":"text","text":"中的英特爾C\/C++編譯器時,測得構建時間減少了14%。除了減少構建時間外,採用Clang使我們可以從社區支持最新C++語言標準的一系列成果中受益,並貢獻成果來反哺社區。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英特爾爲開源項目提供貢獻和支持的歷史頗爲悠久,其中我們向LLVM做出貢獻就有十年時間了。我們今天的主動合作行爲包括了優化報告補充、擴大的浮點模型支持,以及向量增強。英特爾直接對LLVM項目做出貢獻,我們也有一個臨時區域(英特爾LLVM技術"},{"type":"link","attrs":{"href":"https:\/\/github.com\/intel\/llvm","title":null,"type":null},"content":[{"type":"text","text":"項目"}]},{"type":"text","text":"),針對SYCL支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在英特爾架構上,英特爾C\/C++編譯器預期能提供比基礎Clang+LLVM編譯器更高的性能。接下來英特爾C\/C++編譯器都會是採用了LLVM開源基礎架構的版本(icx)。我們會繼續之前的長期努力,持續爲Clang和LLVM項目做出貢獻,包括爲它們提供優化。並非所有的優化技術都會被上游採納,有時是因爲它們太新了,有時因爲它們過於針對英特爾架構。這是可以預料的,並且與其他已經採用LLVM的編譯器是同樣的情況。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/66\/00\/66539cc4fb03ee30fbf36c7c83073700.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們使用英特爾oneAPI工具包2021.3版本中發佈的最新英特爾C\/C++編譯器進行了一系列的性能測試。我們的目標是爲英特爾架構提供一流的C\/C++編譯器,而我們的測試結果證明了這一點,表明英特爾C\/C++編譯器擊敗了其他所有對手。我們也戰勝了自己:新的基於LLVM的英特爾C\/C++編譯器在性能上打平或超越了經典版本。現在是時候升級你使用的編譯器了!我在這裏先分享一個例子,文末提供了更多測試結果。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英特爾C\/C++編譯器一直都在提供最優秀的性能。經典版本的英特爾C\/C++編譯器取得了對GCC "},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/blogs\/adoption-of-llvm-complete-icx.html#CoreMark-Pro-i7-8700K","title":null,"type":null},"content":[{"type":"text","text":"18%的優勢"}]},{"type":"text","text":",而基於LLVM的英特爾C\/C++編譯器取得了"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/blogs\/adoption-of-llvm-complete-icx.html#CoreMark-Pro-i7-8700K","title":null,"type":null},"content":[{"type":"text","text":"41%的優勢"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"爲支持英特爾不斷髮展的衆多平臺,我們在基於LLVM的編譯器中重點關注了新特性和新硬件支持。除了繼續提供業界一流的CPU優化之外,我們還加入了對GPU和FPGA的高度優化的支持。我們基於LLVM的編譯器將提供對SYCL、C++20、OpenMP 5.1和OpenMP GPU目標設備的支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們鼓勵用戶現在就轉向基於LLVM的C\/C++編譯器,享用更快的構建時間、更高級別的優化和新功能等收益。英特爾會長期堅持使用LLVM,在這條道路上不斷創新、持續追求業界一流的優化成果。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"Parallel Studio XE編譯器發生了什麼變化?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"2007年,我們開始使用“Parallel Studio”這個新名字,強調這款工具對並行性的支持。彼時世界正在發生變革,並行編程註定要伴隨多核處理器的普及而得到全面推廣。一開始是單核處理器被雙核處理器取代。如今,處理器核心數量已經達到了幾十個的水平,且仍在持續增長。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"就像針對同構系統的並行編程廣泛普及一樣,我們看到針對異構系統的並行編程也走上了類似的道路。與多核並行性不同的是,異構編程會利用來自多個供應商的計算能力。這帶來了讓編程碎片化的風險,除非我們共同努力來支持開放的多源方法,爲軟件開發人員提供編譯器、庫、框架和整套工具鏈。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們給這款流行工具的下一代版本取的新名字是爲了強調針對異構並行的單一API開放方法。這些工具依舊具備獲得行業數十年信賴的產品品質,並通過擁抱oneAPI"},{"type":"link","attrs":{"href":"https:\/\/www.oneapi.com\/","title":null,"type":null},"content":[{"type":"text","text":"規範"}]},{"type":"text","text":"和SYCL"},{"type":"link","attrs":{"href":"https:\/\/www.khronos.org\/sycl\/","title":null,"type":null},"content":[{"type":"text","text":"標準"}]},{"type":"text","text":"提供了對異構編程的支持。現在你就可以免費下載並開始使用這些工具了!英特爾社區"},{"type":"link","attrs":{"href":"https:\/\/community.intel.com\/t5\/Software-Development-Tools\/ct-p\/software-dev-tools","title":null,"type":null},"content":[{"type":"text","text":"論壇"}]},{"type":"text","text":"提供了社區支持。英特爾將繼續爲提交的問題,疑難和其他技術支持問題提供"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/support\/priority-support.html","title":null,"type":null},"content":[{"type":"text","text":"優先支持"}]},{"type":"text","text":"。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"C\/C++已就緒"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們建議所有的新項目直接使用基於LLVM的英特爾C\/C++編譯器,而所有現有項目應該制定一個計劃,在今年遷移到新的編譯器。在未來的某個時候,經典C\/C++編譯器將進入“舊版產品支持”模式,意味着對經典編譯器代碼庫的更新終結,且它們不會再出現在oneAPI工具包中。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/7a\/1d\/7a11359f2f4d05df8cce919ca507471d.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"新的基於LLVM的英特爾C\/C++編譯器已經取得了與經典版本相當的表現,前者也提供了我們已有的最佳優化技術。我們建議所有用戶都應該立即嘗試新的C\/C++編譯器,享受它帶來的好處,並提供反饋。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"這裏有一份很棒的"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/porting-guide-for-icc-users-to-dpcpp-or-icx.html","title":null,"type":null},"content":[{"type":"text","text":"指南"}]},{"type":"text","text":"來幫助你從經典的C\/C++編譯器轉向基於LLVM的編譯器。你會注意到的第一件事是新編譯器改了名字(icx)。這可以讓你同時安裝經典版本和新版本,並在它們之間自由切換。許多用戶已經決定在未來產品中只使用基於LLVM的英特爾C\/C++編譯器。最新的發行"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/intel-oneapi-dpc-c-compiler-release-notes.html","title":null,"type":null},"content":[{"type":"text","text":"說明"}]},{"type":"text","text":"提供了更多關於已知問題和限制的細節(這裏則是針對經典C\/C++編譯器版本的"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/oneapi-c-compiler-release-notes.html","title":null,"type":null},"content":[{"type":"text","text":"說明"}]},{"type":"text","text":")。你還可以觀看我們的網絡研討會(“"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/blogs\/adoption-of-llvm-complete-icx.html#TalkToExperts","title":null,"type":null},"content":[{"type":"text","text":"與專家對話"}]},{"type":"text","text":"”),觀看專家直播或通過點播觀看先前錄製的會議。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"基於LLVM的英特爾Fortran編譯器正在開發中"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"衆所周知,英特爾Fortran編譯器一直都在提供廣泛的標準支持和優越的性能表現。當我們完成基於LLVM的英特爾Fortran編譯器測試計劃時,這一傳統也會得到延續。我們歡迎大家提供反饋。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於LLVM的Fortran編譯器測試版提供了對Fortran語言的廣泛支持,但有些功能仍在開發中。你可以查看具體特性的開發狀態,看它是否已準備就緒:在我們的"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/fortran-language-and-openmp-features-in-ifx.html","title":null,"type":null},"content":[{"type":"text","text":"Fortran和OpenMP特性狀態表"}]},{"type":"text","text":"中可以找到基於LLVM的Fortan編譯器中各個特性的發佈狀態。這裏是Fortran編譯器發行"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/articles\/intel-fortran-compiler-release-notes.html","title":null,"type":null},"content":[{"type":"text","text":"說明"}]},{"type":"text","text":",同時提供了經典版本和基於LLVM測試版本的說明。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"今年晚些時候我會發布一篇博文,更新我們基於LLVM的Fortran編譯器的開發進度。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"英特爾編譯器開啓全新篇章"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英特爾C\/C++和Fortran編譯器產品的歷史源遠流長,它們始於20世紀90年代早期的Unix System V編譯器,並在90年代中期加入了來自Multiflow的編譯器技術。我們在2000年代獲得了來自DEC\/康柏的Fortran團隊,和Kuck and Associates Inc.(KAI)的OpenMP和並行性專業知識。隨着英特爾編譯器進入第四個十年,它們會在LLVM編譯器技術的幫助下繼續這一旅程。英特爾編譯器的用戶將繼續看到強大的標準支持、可靠的代碼優化和滿足用戶需求的積極態度。我們還會提供對異構編程的一流支持。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我們會繼續努力將英特爾C\/C++和Fortran編譯器打造成爲重要和有用的工具,幫助你構建改變世界的應用程序。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"英特爾編譯器下載方式"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英特爾編譯器的用戶現在可以充分利用英特爾數十年來針對英特爾架構和OpenMP的專業優化成果與LLVM的優勢。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"請從oneAPI工具包"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/tools\/oneapi\/all-toolkits.html","title":null,"type":null},"content":[{"type":"text","text":"網站"}]},{"type":"text","text":"下載新版。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"有任何思考、反饋和建議,請在英特爾社區James-Reinders博客"},{"type":"link","attrs":{"href":"https:\/\/community.intel.com\/t5\/James-Reinders-Blog\/Intel-C-C-compilers-complete-adoption-of-LLVM\/ba-p\/1305373","title":null,"type":null},"content":[{"type":"text","text":"發表評論"}]},{"type":"text","text":"。"}]},{"type":"heading","attrs":{"align":null,"level":2},"content":[{"type":"text","text":"更多基準測試結果和配置細節"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"總的來說,這些基準測試顯示已經達到了一個臨界點,標誌着基於LLVM的編譯器已準備好成爲所有用戶的首選編譯器。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"更快的編譯速度"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/08\/a3\/08fa90513066d86e746cc898dac69da3.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/8c\/a1\/8c69e77ac4186c5fd07bfb445ab232a1.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SPEC CPU 2017基準測試包中包含了一系列行業標準的CPU密集型測試套件,用於測試和對比計算密集型性能表現,考驗系統的處理器、內存子系統和編譯器。關於SPEC基準測試的更多信息可以在"},{"type":"link","attrs":{"href":"http:\/\/www.spec.org\/","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"找到。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月10日完成。Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz, 16G x2 DDR4 2666. Red Hat Enterprise Linux release 8.0 (Ootpa), 4.18.0-80.el8.x86_64. 軟件:Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604_000000. Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604. 編譯器開關:Intel(R) 64 Compiler Classic: -O2 -xCORE-AVX512, Intel(R) oneAPI DPC++\/C++ Compiler: -O2 -xCORE-AVX512"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"優化的性能表現"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"SPECrate 2017(Estimated)"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/60\/23\/607649bc76b65bd6be34d3e505bc6023.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/8c\/80\/8c323b9167e5330b23cc5cf95702fa80.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SPEC CPU 2017基準測試包中包含了一系列行業標準的CPU密集型測試套件,用於測試和對比計算密集型性能,考驗系統的處理器,內存子系統和編譯器。關於SPEC基準測試的更多信息可以在"},{"type":"link","attrs":{"href":"http:\/\/www.spec.org\/","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"找到。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月10日完成。Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz, 2 socket, Hyper Thread on, Turbo on, 32G x16 DDR4 3200 (1DPC). Red Hat Enterprise Linux release 8.2 (Ootpa), 4.18.0-193.el8.x86_64. 軟件:Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604. Intel(R) C++ Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604_000000, GCC 11.1, Clang\/LLVM 12.0.0. SPECint®_rate_base_2017 編譯器開關:Intel(R) oneAPI DPC++\/C++ Compiler: -xCORE-AVX512 -O3 -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4. Intel(R) C++ Intel(R) 64 Compiler Classic: -xCORE-AVX512 -ipo -O3 -no-prec-div -qopt-mem-layout-trans=4 -qopt-multiple-gather-scatter-by-shuffles. GCC: -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto -mprefer-vector-width=128. LLVM: -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto. qkmalloc used for intel compiler. jemalloc 5.0.1 used for gcc and llvm. SPECfp®_rate_base_2017 編譯器開關:Intel(R) oneAPI DPC++\/C++ Compiler: -xCORE-AVX512 -Ofast -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4. Intel(R) C++ Intel(R) 64 Compiler Classic: -xCORE-AVX512 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles -qopt-mem-layout-trans=4. GCC: -march=skylake-avx512 -mfpmath=sse -Ofast -fno-associative-math -funroll-loops -flto. LLVM: -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto. "}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"SPECspeed 2017(Estimated)"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/9f\/4e\/9f33494a05ec0cb6c2de4aed9333434e.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/08\/2f\/081c487e1460e3d2yy851b480d91f02f.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"SPEC CPU 2017基準測試包中包含了一系列行業標準的CPU密集型測試套件,用於測試和對比計算密集型性能,考驗系統的處理器,內存子系統和編譯器。關於SPEC基準測試的更多信息可以在"},{"type":"link","attrs":{"href":"http:\/\/www.spec.org\/","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"找到。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月10日完成。Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz, 2 socket, Hyper Thread on, Turbo on, 32G x16 DDR4 3200 (1DPC). Red Hat Enterprise Linux release 8.2 (Ootpa), 4.18.0-193.el8.x86_64. 軟件:Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604. Intel(R) C++ Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604_000000, GCC 11.1, Clang\/LLVM 12.0.0. SPECint®_speed_base_2017 編譯器開關:Intel(R) oneAPI DPC++\/C++ Compiler: -xCORE-AVX512 -O3 -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4 -fiopenmp. Intel(R) C++ Intel(R) 64 Compiler Classic: -xCORE-AVX512 -ipo -O3 -no-prec-div -qopt-mem-layout-trans=4 -qopt-GCC: -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto –fopenmp. LLVM: -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto -fopenmp=libomp. multiple-gather-scatter-by-shuffles -qopenmp. jemalloc 5.0.1 used for intel compiler, gcc and llvm. SPECfp®_speed_base_2017 編譯器開關:Intel(R) oneAPI DPC++\/C++ Compiler: -xCORE-AVX512 -Ofast -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4 -fiopenmp. Intel(R) C++ Intel(R) 64 Compiler Classic: -xCORE-AVX512 -ipo -O3 -no-prec-div -qopt-prefetch -ffinite-math-only -qopt-multiple-gather-scatter-by-shuffles -qopenmp. GCC: -march=skylake-avx512 -mfpmath=sse -Ofast -fno-associative-math -funroll-loops -flto –fopenmp. LLVM: -march=skylake-avx512 -mfpmath=sse -Ofast -funroll-loops -flto -fopenmp=libomp. jemalloc 5.0.1 used for intel compiler, gcc and llvm."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"CoreMark-Pro,基於英特爾®酷睿i7-8700K處理器測試"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/a1\/07\/a11995963eba12b3be433fc6c9965907.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/1a\/9c\/1a9b801092dac602103bcd2d782d9a9c.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"CoreMark-Pro旨在測試處理器整體表現,其充分支持多核技術,提供了整數和浮點負載組合,併爲內存子系統壓力測試提供了測試數據集。CoreMark-Pro來自嵌入式微處理器基準測試集(EEMBC),更多信息可訪問"},{"type":"link","attrs":{"href":"https:\/\/www.eembc.org\/coremark-pro\/","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這些基準測試結果中,英特爾編譯器選項都已關閉,但成績顯示基於LLVM的英特爾編譯器與經典版本還有一些差距。我希望你也能認同這點差距並不算大,畢竟其他結果顯示我們的基於LLVM的編譯器有着優異的表現。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月10日完成。Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz, 16G x2 DDR4 2666. 軟件:Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210604_000000, GCC 11.1, Clang\/LLVM 12.0.0. Red Hat Enterprise Linux release 8.0 (Ootpa), 4.18.0-80.el8.x86_64. 編譯器開關: Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.1 Build 20201112_000000: icc -xCORE-AVX2 -mtune=skylake -ipo -O3 -no-prec-div -qopt-prefetch. GCC 11.1: gcc -march=native -mfpmath=sse -Ofast -funroll-loops -flto. LLVM 12.0.0: clang -Ofast -funroll-loops -flto -static -mfpmath=sse -march=native."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"CoreMark-Pro,基於英特爾®Atom C3850處理器測試"}]},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/97\/54\/972d1bc694a445c858c59be82cf28d54.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.infoq.cn\/resource\/image\/e2\/7b\/e26yy0a549f2c801f40b3903a4fyy27b.jpg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"CoreMark-Pro旨在測試處理器整體表現,其充分支持多核技術,提供了整數和浮點負載組合,併爲內存子系統壓力測試提供了測試數據集。CoreMark-Pro來自嵌入式微處理器基準測試集(EEMBC),更多信息可訪問"},{"type":"link","attrs":{"href":"https:\/\/www.eembc.org\/coremark-pro\/","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在這些基準測試結果中,英特爾編譯器選項都已關閉,但成績顯示基於LLVM的英特爾編譯器與經典版本還有一些差距。我希望你也能認同這點差距並不算大,畢竟其他結果顯示我們的基於LLVM的編譯器有着優異的表現。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月10日完成。Intel(R) Atom(TM) CPU C3850 @ 2.10GHz, 16G x2 DDR4 2400. 軟件:Intel(R) C Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.1 Build 20201112_000000, GCC 11.1, Clang\/LLVM 12.0.0. Red Hat Enterprise Linux release 8.0 (Ootpa), 4.18.0-80.el8.x86_64. 編譯器開關: Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.1 Build 20201112_000000: icc -xATOM_SSE4.2 -mtune=goldmont -ipo -O3 -no-prec-div -qopt-prefetch. GCC 11.1: gcc -march=native -mfpmath=sse -Ofast -funroll-loops -flto. LLVM 12.0.0: clang -Ofast -funroll-loops -flto -static -mfpmath=sse -march=native."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"Lore:用於評估編譯器基準測試的循環存儲庫"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/74\/74fb2ea74481adc93ec4ade1ce314ce9.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"LORE從流行的基準測試、庫和真實應用中提取的循環嵌套來測試C語言的性能表現。循環涵蓋了各種可以由編譯器社區被用來評估循環優化的屬性。測試包含了65個基準測試和負載。欲瞭解更多信息,請參見"},{"type":"link","attrs":{"href":"https:\/\/vectorization.computer\/","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月9日完成。Intel(R) Xeon(R) Platinum 8180CPU @ 2.50GHz, 2 socket, 28 cores, HT enabled, Turbo enabled, 384GB RAM. 軟件:Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.2.0 Build 20210607, Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210607. Ubuntu 18.04.1 with GCC 10.2.0. 編譯器開關: Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210607: ICC OPT - OPT=\"-Ofast -qopt-prefetch -unroll-aggressive -restrict -xHost -w\". ICC OPT512 - OPT=\"-Ofast -qopt-prefetch -unroll-aggressive -restrict -xHost -w -qopt-zmm-usage=high”. Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.2.0 Build 20210607: ICX OPT - OPT=\"-Ofast -qopt-prefetch -unroll-aggressive -restrict -xHost -w\". ICX OPT512 - OPT=\"-Ofast -qopt-prefetch -unroll-aggressive -restrict -xHost -w -mprefer-vector-width=512\". ICX OPTm - OPT=\"-Ofast -qopt-prefetch -unroll-aggressive -restrict -march=skylake-avx512 -w\". ICX OPT512m - OPT=\"-Ofast -qopt-prefetch -unroll-aggressive -restrict -march=skylake-avx512 -w -mprefer-vector-width=512."}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"RAJA性能套件(RAJAPerf)"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/4b\/4b8865949cd3cdc3aef894aee051b590.png","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"RAJA性能套件旨在探索HPC應用中基於循環的計算內核的性能。"},{"type":"link","attrs":{"href":"https:\/\/github.com\/LLNL\/RAJAPerf","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"有更多關於RAJA性能套件的信息。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"你可能會注意到,這一高壓力基準測試中基於LLVM的編譯器表現與我們的經典版本相當。這樣的結果依舊稱得上穩健和出色。我之所以毫不猶豫把它加了進來,是因爲我們要證明新版本已經完全值得大家選擇了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"配置:測試由英特爾在2021年6月9日完成。Intel(R) Xeon(R) Platinum 8180CPU @ 2.50GHz, 2 socket, 28 cores, HT enabled, Turbo enabled, 384GB RAM. 軟件:Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.2.0 Build 20210607, Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210607. Ubuntu 18.04.1 with GCC 10.2.0. 編譯器開關: Intel(R) C++ Compiler Classic for applications running on Intel(R) 64, Version 2021.3.0 Build 20210607: ICC OPT OPT=\"-Ofast -ansi-alias -xCORE-AVX512\", ICC OPT512 OPT=\"-Ofast -ansi-alias -xCORE-AVX512 -qopt-zmm-usage=high\", setenv KMP_AFFINITY compact,granularity=fine. Intel(R) oneAPI DPC++\/C++ Compiler for applications running on Intel(R) 64, Version 2021.2.0 Build 20210607: ICX OPT OPT=\"-Ofast -ansi-alias -xCORE-AVX512\", ICX OPT512 OPT=\"-Ofast -ansi-alias -xCORE-AVX512 -qopt-zmm-usage=high\", setenv KMP_AFFINITY compact,granularity=fine"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"性能表現會受使用情況、配置和其它因素的影響。如需瞭解更多信息,請訪問"},{"type":"link","attrs":{"href":"https:\/\/www.intel.com\/PerformanceIndex","title":null,"type":null},"content":[{"type":"text","text":"這裏"}]},{"type":"text","text":"。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"原文鏈接:"},{"type":"link","attrs":{"href":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/blogs\/adoption-of-llvm-complete-icx.html","title":null,"type":null},"content":[{"type":"text","text":"https:\/\/software.intel.com\/content\/www\/us\/en\/develop\/blogs\/adoption-of-llvm-complete-icx.html"}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章