針對英特爾處理器量身訂做的最佳化編譯器
自力發展編譯器已行之有年的英特爾,在去年12月9日發表包括Windows及Linux兩種版本的C++及Fortran語言Intel Compiler 8.0,同時支援IA-64、IA-32兩種平臺。另外,英特爾有針對嵌入式應用的XScale處理器,發展Windows CE版本的C/C++編譯器。英特爾近期將發表Windows版本Fortran編譯器專業版,附帶Visual Numerics所公司開發的IMSL Fortran 5.0函式庫。Intel Compiler各版本均可在英特爾官方網站下載30天評估試用版,價格在臺幣20948元至78698元之間。更完善的發展環境
和前一版相同,Intel Compiler 8.0與微軟Visual Studio .NET 2002/2003有著高度的整合性。由於英特爾並未發展GUI化的整合型發展環境(IDE),附帶的函式庫及include檔案亦不充足,所以配合既有的發展環境乃為不得不為的選擇。除了前一版既有的Enhanced Debugger 7.1和Array Visualizer,Intel Compiler 8.0新增Intel Code Coverage以及Intel Test Prioritization Tools兩套程式試驗工具,前者可判斷分析程式碼的邏輯結構,後者則便利驗證模組化應用程式的改版。結合此兩套工具,可以有助於加速大型應用程式的發展速度以及提昇軟體品質的效率。
由於Digital/Compaq Fortran編譯器已被英特爾所併購,Windows版本的Intel Fortran Compiler 8.0相容於HP的Compaq Visual Fortran(CVF)編譯器功能語法、可便利透過CVF所發展的程式移植至執行Windows作業系統的IA-32及IA-64環境,Intel Fortran Compiler 8.0 Windows版本亦改名為Intel Visual Fortran(IVF)。在過去,由於CVF編譯器對於不嚴謹的Fortran程式語法(例如F77/F90混合的情況)有著最佳的相容性,所以吸引了不少數值運算領域工作者的青睞,也成為Windows平臺上佔有率最高的Fortran編譯器。不過,也基於此,CVF編譯器的效能一向並不突出。英特爾宣稱IVF編譯器將同時兼具CVF的相容度以及Intel Fortran的高效能,這對過去習慣於CVF的程式設計者將具有相當程度的吸引力。支援的語言規格
基本上,Intel C/C++ Compiler 8.0符合ANSI/ISO C++標準,但是並未實作備受爭議的export Keyword。另外,可透過/Qc99選項支援C99,但是並未做到完全相容。Intel Fortran Compiler 8.0完全支援Fortran 77、Fortran 90及Fortran 95,亦支援Fortran 95部分延伸規格及Fortran 2003中的部份特色。這些都是使用時所必須注意的地方。更強的程式碼最佳化能力
英特爾之所以大費周章自行發展編譯器,其目的不外乎希望可以把自己的新型處理器發揮到最大程度的效能,針對新型處理器的最佳化就是新版編譯器的重點。Intel Compiler 8.0最重要的改進,莫過於針對Pentium 4「Northwood」(QxN/QaxN)、Pentium M「Banias」(QxB/QaxB)以及Pentium 4E「Prescott」(QxP/QaxP)的最佳化參數(Qax代表向下相容模式),尤其可支援Prescott處理器所新增的SSE3指令集。另外,針對Itanium處理器進行更佳的IA-64指令排程最佳化,有效利用IA-64指令集諸多的先進特色。
除此之外,Intel Compiler 8.0在浮點運算輸出的效能上有所改進,可以針對經常被使用的函式進行跨程序的最佳化(Inter-Procedural Optimization),擁有利用Profile(如利用VTune等效能調整監測工具所產生)進行最佳化編譯的功能(Profile-Guided Optimization),而透過軟體達成的資料預先擷取機制(Data Prefetch)亦有所強化。為了改進多執行緒應用程式的效能,8.0版支援OpenMP 2.0應用程式介面,且提供Auto-Parallelism功能,可針對對共享記憶體的多處理器或多執行緒系統(如HyperThreading),發展高效能的程式碼。
我們透過SPEC CPU 2000測試編譯器的效能,編譯器的最佳化選項均針對Pentium 4及SSE2指令集調整,也將QxP選項應用於Prescott處理器。很明顯的,Intel Compiler 8.0效能相當優異,除了整體效能略勝7.1版,無論在C/C++及Fortran上均超過微軟VC7及CVF 6.6B一段距離。處理器廠商先天的「主場優勢」,在此昭然若現。處理器廠商自行發展編譯器的巨大利益與必要性
由於大多數的高階語言編譯器廠商並非處理器及硬體架構發展者,所以在程式碼編譯的最佳化工作上均不盡理想,而且往往改善進度慢如牛步,無法及時配合持續推陳出新的新型處理器。基於處理器廠商最了解自身產品的特性,如果希望發展出效能最佳的程式,採用由處理器廠商自行發展的編譯器,自然就是比較理想的選擇。
事實上,Intel Compiler的最佳化能力,在過去就已經備受肯定。以在處理器業界及學術界最具指標性的SPEC CPU為例,官方網站上由廠商所自行登錄的測試數據,只要是x86指令集處理器,幾乎都是採用Intel Compiler,而且表現都勝過其他廠商的編譯器。就算是英特爾在桌上型理器市場的最大對手AMD,也都是以Intel Compiler為主。另外,除了自行發展最佳化編譯器,英特爾在針對處理器硬體架構進行程式碼最佳化的說明文件完整性,亦遠非其他競爭對手所能企及,這些都大幅增強了英特爾處理器的效能競爭優勢。
目前AMD企圖透過將現有x86指令集進行64位元延伸的手段,切入被32位元記憶體平面定址所限制的中低階伺服器市場,進而累積軟體資源,爭奪未來桌上型64位元指令集的主導權。如果AMD希望藉由擴張指令集來搶佔市場,除了作業系統外,自然也需要完善的程式發展環境支援。但是,截至為止,支援AMD x86-64的編譯器依然寥寥可數,微軟未來預定支援x86-64的VS.NET 2004亦遙遙無期。更重要的是,英特爾已經正式承認其x86指令集64位元延伸架構的存在,其競爭對手就是AMD x86-64,如果AMD繼續缺乏完善的編譯器支援,將會相當的不利。畢竟,AMD總不能寄望英特爾替他們做這件事情吧?
最了解處理器特的還是處理器廠商自己,也只有處理器廠商才能做到最徹底的最佳化,所以編譯器絕對是處理器廠商值得投資下去的地方。在未來,AMD遲早都要面對自行發展編譯器的需求,否則推出再好的處理器產品,依然難以撼動英特爾的領先地位。文⊙劉人豪
熱門新聞
2025-02-26
2025-02-25
2025-02-26
2025-02-24
2025-02-24