1. 程式人生 > >Intel C++編譯器和VTune的免費版本

Intel C++編譯器和VTune的免費版本

Intel的C++和Fotran編譯器被廣泛認為是IA-32平臺上最好的編譯器。我最早試用Intel C++編譯器是在2001年初,當時Intel剛剛收購Kai C++,Intel C++編譯器的的版本號是5.0。那個時候我不太清楚Intel做編譯器用意何在,也不知道他們會不會堅持下去,所以沒太在意。結果證明,Intel對這個領域是很認真的,在不到7年時間裡從5.0做到10.0,這樣的力度在整個業界可以說是絕無僅有。Intel為啥要玩命地做優化編譯器呢?今年4月Intel的高階副總裁Renee James來訪時,提到這個問題,她沒說得很詳細,但是大意是說,要對Intel自己的CPU提供有力的支援。

這些年來Intel在CPU的設計上花費了大量的心血,增加了很多新的功能,多核且不必說,向量化操作也是很值得一提的。當初P4 NetBurst架構主要是對訪存密集性應用比較有效,比如網路檔案伺服器之類,在CPU密集型計算任務中,P4表現很一般。所以到了Pentium M和 Core Duo,比較重視計算密集型任務的支援,主要改進集中在向量化操作上。由於採用了SIMD,對於某些型別的應用(比如矩陣運算、圖形影象、訊號處理之類),效能可以獲得大幅度提升。但是主要的編譯器軟體提供商們對於支援這些最新CPU技術的熱情並不高,現有的IA-32編譯器基本上還是產生古典的i386程式碼。長期積累下來,使用者花大價錢買的先進CPU有很多能力都被閒置。這種情況損害了使用者的利益,最終也會損害Intel等晶片廠商的利益。也難怪Intel實在按捺不住,擼袖子親自上陣做compiler了。不過這件事情對我們使用者來說絕對是好事。Intel在這上頭真是做了不少好東西,C/C++和Fortran編譯器,VTune程式效能分析器,高效能數學庫MKL,主要用於訊號處理的IPP庫,簡化多執行緒開發的TBB(Threading Building Blocks)和ThreadChecker等,對於效能要求比較高的開發工作來說,都是很好的工具。

Intel的編譯器是收費的,雖然價格並不算太高,也就幾百美刀,不過對於學習和自由軟體的開發者來說,還是一個負擔。前兩天去Intel軟體的網站上看到了他們的一個新的program,提供Linux平臺上非商業軟體開發者免費的軟體工具,包括全套C/C++/Fortran編譯器、VTune、MKL、IPP、ThreadChecker和TBB。我下載了C++ compiler。儘管我的Ubuntu 7.04不在直接支援的OS之列,但是執行install.sh還是很順利地安裝了。Linux版的icc與gcc命令列格式基本相容,我編譯了幾個C程式,對比了一下產生出來的彙編程式碼。因為對icc產生的彙編格式和風格不熟悉,現在還沒法給出一個客觀的對比評價。不過icc的彙編輸出顯然是比gcc多不少內容。ICC有一些很有意思的功能,比如自動並行化、自動向量化等,很值得玩味一把。

遺憾的是,VTune的安裝不順利,安裝指令碼報錯,說發現一個非法替換(bad substitution)。不知道是怎麼回事。我對bash不熟,網上也找不到有關的解決方案。希望不久這個問題能被解決。

這套非商業軟體開發版工具的
下載登記入口地址在這裡
。有興趣的可以自己去了解一下。如果你解決了VTune安裝的問題,煩勞告知。