陳紅艷
摘 要:隨著科學技術的不斷發(fā)展,如何提高軟件的使用性能逐漸成為研究人員較為關注的問題,同時也是軟建設計中的難點所在。因此,文章在問題分析的基礎上,通過對Intel平臺軟件性能的優(yōu)化,以Microsoft Visual C++的開發(fā)及例,對Intel處理器進行了分析,并對怎樣編寫適用特定Intel的處理器函數進行了編輯。
關鍵詞:Intel平臺 ?Visual C++ ?編譯器
中圖分類號:TP311 ? ?文獻標識碼:A 文章編號:1674-098X(2015)10(c)-0143-02
在系統(tǒng)軟件性能優(yōu)化處理的過程中,其項目的設計相對費時、而且工作的難度較大,是軟件開發(fā)高手的集聚地,使很多軟件公司中的員工望而卻步。但是,軟件性能在產品市場中的競爭力是否可以確定成功,都占據著十分重要的作用。由于現(xiàn)階段軟件開發(fā)的技術相對復雜,怎樣提高軟件的使用性能成為軟件工程是急需解決的問題。Intel的軟件技術中可以為開發(fā)技術提供一定的便利性,在提高操作技能的同時為程序的編輯提供科學化的依據。
1 Intel編譯器優(yōu)化程序的性能分析
對于Intel編譯器而言,優(yōu)化程序的過程中,必須在性能的分析上深入進行,否則將影響后續(xù)的應用和開發(fā)工作。在目前,編輯器是一種非常重要的工具類型,其主要是服務于軟件技術的開發(fā)階段。一般而言,編輯器針對程序的基本性能,具有決定性的影響,其在具體的應用過程中,能夠以最快的速度和最簡單的方法,針對程序做出有效的改變,從而更好的構建出理想的編譯器。
隨著科學技術的不斷優(yōu)化,其功能性得到了一定的提升,對于一個性能好的編譯器可以根據其基本的特點,進行功能的自動優(yōu)化,技術開發(fā)人員也不用翻閱處理手冊,就可以得到軟件系統(tǒng)的有效開發(fā)。而Intel編譯器可以作為整個領域中的領導者,在現(xiàn)階段的開發(fā)和研究當中,通過選擇和應用Intel 32位處理器,選擇應用Intel64位處理器,在本質上提高了編譯代碼的應用效果,創(chuàng)造的經濟效益和社會效益均有所提升。
2 使用Intel C++編譯器
在Intel架構上實施軟件優(yōu)化,必須有效的使用Intel C++編譯器來完成。Intel C++編譯器主要是將高級語言,有效的翻譯為機器語言的有效程序類型。在目前的研究和應用中,Intel C++編譯器是一個具有標準化特點,能夠與C++高度兼容的編譯環(huán)境,獲得了用戶的廣泛歡迎。同時,在使用Intel C++編譯器的過程中,可針對不同的CPU進行優(yōu)化處理,實現(xiàn)理想的效果。
在目前的Intel C++編譯器應用當中,完全可根據用戶的需求和軟件優(yōu)化的目的,通過采取不同的手段來完成工作。例如,在操作過程中,VectorC就是比較常見的Intel C++編譯器形式,其在應用過程中,僅僅支持純C。但是,其號稱是最快的編譯器,在很多情況下,都要強于其他的編譯器。VectorC在使用的過程中,本身具備交互式的優(yōu)化器,能夠幫助用戶,直接的觀察到C代碼對映的匯編代碼,在Intel架構上優(yōu)化軟件時,效率和質量均獲得了較大的保障。
Intel C++編譯器在應用的過程中擁有很多的優(yōu)化特征,合理運用了處理器的特性以及先進性的特點,為整個技術的優(yōu)化及開發(fā)奠定了良好基礎,在與其他軟件協(xié)調工作的同時提高了軟件的運用效率。以Microsoft Visual C++中Intel C++編譯器的應用為例,對其開發(fā)的流程進行分析。當Intel C++編譯器在安裝結束之后,整個系統(tǒng)會自動集成到Microsoft Visual C++的環(huán)境之中,其中的Intel C++編輯器在運行的過程中可以支持Linux平臺,它的性質與Windows的軟件功能基本相同。
3 針對于特定處理器的優(yōu)化
軟件體統(tǒng)開發(fā)及應用的過程中,軟件技術人員系統(tǒng)通過處理器中的所有性能,就可以將程序更好的運用,逐漸提高軟件的應用效率、編輯器在應用的過程中是否可以支持新的處理指令以及代碼調度的基本規(guī)則,與其程序的特征有著緊密的聯(lián)系。Intel C++在應用 的過程中可以支持行的處理指令,同時也可以充分尊重代碼調度指令,而且一些軟件在應用的過程中只會應用特殊的指令,例如,Pentium4處理器在后續(xù)技術操作的過程中,其單指令更多的會根據其數據流進行擴展,其中的編譯器可以在老式處理器的基礎上執(zhí)行相關的代碼。對于這些編譯器所輸出的程序而言,在其處理的過程中可以獲得更好的性能,為整個軟件的開發(fā)及應用提供了系統(tǒng)性的依據。在Microsoft Visual C++ 6.0 中,這些選項可以從Microsoft Visual C++的Project Settings對話框中進行設置。
4 針對特定處理器函數的編寫分析
在Intel架構上針對軟件進行優(yōu)化處理,需在特定處理函數的編寫上做出足夠的努力。在以往的工作中,雖然該方面有所研究,但總體上的深度不夠,促使軟件的優(yōu)化并沒有取得理想的成績。因此,在今后的工作中,必須針對特定處理器函數的編寫,做出深入的討論,需結合以往的工作成果和當下的需求來有效的完成,實現(xiàn)長久的發(fā)展。
該文認為,針對特定處理器函數的編寫工作,應在以下幾個方面努力:首先,Intel技術的應用過程中,為了能夠針對不同處理器本身所具有的基本性能,予以較強的滿足,建議在特定的環(huán)境下,編寫相應的指令、函數。例如,在MMX指令內容的編寫過程中,必須在特定的環(huán)境下才能完成,同時還要得到系統(tǒng)的支持,需要在CPU的監(jiān)測代碼下來進行指導,否則很難得到理想的結果。其次,在調用該條指令的過程中,應做出有效的處理,將EAX寄存器置1。最后,在指令執(zhí)行并且有效的完成后,處理器本身的信息,以及一些其他的信息,都可以在這個程序的支持下,通過利用不同的函數來選擇并完成。值得注意的是,Intel軟件的應用過程中,比較簡單的方法是采用Intel C++的環(huán)境來進行相關的處理,有效的展現(xiàn)dispatch的具體特征,而編譯器則是在信息處理的過程中,直接生成具有高效性質的檢測代碼,以此為處理器的具體執(zhí)行提供較多的幫助,促使函數在執(zhí)行的過程中,表現(xiàn)出簡單的特點。
5 使用SIMD指令
Intel軟件在具體的應用過程中,SIMD指令的應用,是非常重要的技術手段。從客觀的角度來分析,通過應用SIMD指令,能夠促使程序的一些基本性能,獲得較大的提升,為用戶提供更加方便的操作和更好的應用效果。但對于C語言或者是C++語言來講,其本身并沒有對方法進行系統(tǒng)性的應用,總體上還是有待提升的。
在以往技術操作的過程中,知識通過手繪語言的編寫方式執(zhí)行SIMD的指令,這種技術主要是額外的技術開發(fā)形式,知識對整個程序起到了調試及維護的作用。相對而言,在指令的具體處理過程當中,Intel架構的基礎上,有效利用C++編譯器,能夠較好的在C語言或者是C++語言當中,針對SIMD指令,給予較大的支持,促使整體的程序在應用過程中,充分達到簡便的特點,創(chuàng)造出更大的價值。其指令可以分析以下幾點。
5.1 Automatic Vectorzation
對于Automatic Vectorzation而言,其主要是一種自動向量化的技術,該技術在執(zhí)行過程中,主要的目的是自動使用SIMD指示的功能。從已經掌握的方法和技術來看,Automatic Vectorzation主要是通過三種方法來完成操作的。首先,傳統(tǒng)方法。以往針對Intel架構和軟件優(yōu)化的研究并不是特別深入,因此,Automatic Vectorzation的傳統(tǒng)方法受到了高度的重視。傳統(tǒng)方法,主要是針對語句的依賴關系進行分析,之后會結合循環(huán)分布技術、結合循環(huán)交換技術,促使內層循環(huán)的語句完成向量的有效執(zhí)行。其次,指令級并行。Automatic Vectorzation在獲得優(yōu)化后,指令級并行是應用比較廣泛的超字并行,通過系列的操作,有效生成向量化的代碼。最后,模式匹配。Automatic Vectorzation為了進一步滿足用戶的需求,研究了模式匹配的引用方法,其在操作過程中,會按照既定的多種模式,在語句生成樹的模式匹配方法上,產生有效的操作擴展命令,進而完成相關的操作和處理。
在Intel架構當中,Automatic Vectorzation是一種比較常見的處理方式,該處理方式在應用過程中表現(xiàn)出了較大的積極意義。相對于其他的處理方式而言,利用Automatic Vectorzation以后,能夠促使Intel C++編譯器可以更好的應用,尤其是在合理分析程序、合理執(zhí)行循環(huán)指令等方面,均具有突出的表現(xiàn)。另外,在實際的操作和應用當中,Automatic Vectorzation能夠指導一些相關的選項,將具體的內容,有效的通知給編譯器,以此來確保SIMD指令在應用過程中,表現(xiàn)為安全的狀態(tài)。
5.2 支持SIMD 的C++類庫
Intel架構的基礎上,軟件優(yōu)化是必須要執(zhí)行的措施和手段,只有將軟件不斷的進行優(yōu)化處理,才能確保日后的軟件使用獲得較大的價值提升。為此,在具體的研究過程中發(fā)現(xiàn),倘若在SIMD指令的使用過程中,能夠有效的支持C++類庫,勢必能夠對日常的工作做出更大的貢獻。就目前的研究而言,Intel C++編譯器的使用,其本身就包含了SIMD的數據類型,通過相關技術的應用,能夠針對數據進行相應的代碼控制。例如,在數據類型的變量分析過程中,通過增加適量的數據處理元素,能夠在本質上,更好的減少程序循環(huán)的次數,實現(xiàn)高效的運作,為日后的發(fā)展和工作提供較強的基礎。
5.3 Intrinsics
在Intel架構上,開展軟件優(yōu)化的研究,Intrinsics是一項不可或缺的重要內容。從客觀的工作來分析,Intel C++編譯器在應用的過程中,針對Intrinsics函數,會予以有效的支持。另外,通過對SIMD指令的有效執(zhí)行,實現(xiàn)更好的程序匯編效果。
6 結語
總而言之,文章通過對Intel C++編譯器使用程序的優(yōu)化分析,為其技術的優(yōu)化以及編程的優(yōu)化進行了系統(tǒng)性的分析,對于上述項目可以幫助程序開發(fā),及時發(fā)現(xiàn)程序出現(xiàn)的問題并對其進行修補。只有在程序需要調控的情況下,才可以為編譯器的優(yōu)化提供科學化的依據,為其技術的應用及優(yōu)化奠定良好的基礎。
參考文獻
[1] 深入理解C++11:C++ 11新特性解析與應用[M].機械工業(yè)出版社,2013.
[2] (美)費希爾.編譯器構造:C語言描述:英文版[Z].2005.