在Intel架構(gòu)上優(yōu)化軟件的一種方法_第1頁(yè)
在Intel架構(gòu)上優(yōu)化軟件的一種方法_第2頁(yè)
在Intel架構(gòu)上優(yōu)化軟件的一種方法_第3頁(yè)
在Intel架構(gòu)上優(yōu)化軟件的一種方法_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、在Intel架構(gòu)上優(yōu)化軟件的一種方法摘 要:隨著科學(xué)技術(shù)的不斷發(fā)展,如何提高軟件的使用性能逐漸成為研究人員較為關(guān)注的問(wèn)題,同時(shí)也是軟建設(shè)計(jì)中的難點(diǎn)所在。因此,文章在問(wèn)題分析的基礎(chǔ)上,通過(guò)對(duì)Intel平臺(tái)軟件性能的優(yōu)化,以Microsoft Visual C+的開(kāi)發(fā)及例,對(duì)Intel處理器進(jìn)行了分析,并對(duì)怎樣編寫(xiě)適用特定Intel的處理器函數(shù)進(jìn)行了編輯。關(guān)鍵詞:Intel平臺(tái) Visual C+ 編譯器中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)10(c)-0143-02在系統(tǒng)軟件性能優(yōu)化處理的過(guò)程中,其項(xiàng)目的設(shè)計(jì)相對(duì)費(fèi)時(shí)、而且工作的難度較大,是軟件開(kāi)發(fā)高手的

2、集聚地,使很多軟件公司中的員工望而卻步。但是,軟件性能在產(chǎn)品市場(chǎng)中的競(jìng)爭(zhēng)力是否可以確定成功,都占據(jù)著十分重要的作用。由于現(xiàn)階段軟件開(kāi)發(fā)的技術(shù)相對(duì)復(fù)雜,怎樣提高軟件的使用性能成為軟件工程是急需解決的問(wèn)題。Intel的軟件技術(shù)中可以為開(kāi)發(fā)技術(shù)提供一定的便利性,在提高操作技能的同時(shí)為程序的編輯提供科學(xué)化的依據(jù)。1 Intel編譯器優(yōu)化程序的性能分析對(duì)于Intel編譯器而言,優(yōu)化程序的過(guò)程中,必須在性能的分析上深入進(jìn)行,否則將影響后續(xù)的應(yīng)用和開(kāi)發(fā)工作。在目前,編輯器是一種非常重要的工具類型,其主要是服務(wù)于軟件技術(shù)的開(kāi)發(fā)階段。一般而言,編輯器針對(duì)程序的基本性能,具有決定性的影響,其在具體的應(yīng)用過(guò)程中,能

3、夠以最快的速度和最簡(jiǎn)單的方法,針對(duì)程序做出有效的改變,從而更好的構(gòu)建出理想的編譯器。隨著科學(xué)技術(shù)的不斷優(yōu)化,其功能性得到了一定的提升,對(duì)于一個(gè)性能好的編譯器可以根據(jù)其基本的特點(diǎn),進(jìn)行功能的自動(dòng)優(yōu)化,技術(shù)開(kāi)發(fā)人員也不用翻閱處理手冊(cè),就可以得到軟件系統(tǒng)的有效開(kāi)發(fā)。而Intel編譯器可以作為整個(gè)領(lǐng)域中的領(lǐng)導(dǎo)者,在現(xiàn)階段的開(kāi)發(fā)和研究當(dāng)中,通過(guò)選擇和應(yīng)用Intel 32位處理器,選擇應(yīng)用Intel64位處理器,在本質(zhì)上提高了編譯代碼的應(yīng)用效果,創(chuàng)造的經(jīng)濟(jì)效益和社會(huì)效益均有所提升。2 使用Intel C+編譯器在Intel架構(gòu)上實(shí)施軟件優(yōu)化,必須有效的使用Intel C+編譯器來(lái)完成。Intel C+編譯

4、器主要是將高級(jí)語(yǔ)言,有效的翻譯為機(jī)器語(yǔ)言的有效程序類型。在目前的研究和應(yīng)用中,Intel C+編譯器是一個(gè)具有標(biāo)準(zhǔn)化特點(diǎn),能夠與C+高度兼容的編譯環(huán)境,獲得了用戶的廣泛歡迎。同時(shí),在使用Intel C+編譯器的過(guò)程中,可針對(duì)不同的CPU進(jìn)行優(yōu)化處理,實(shí)現(xiàn)理想的效果。在目前的Intel C+編譯器應(yīng)用當(dāng)中,完全可根據(jù)用戶的需求和軟件優(yōu)化的目的,通過(guò)采取不同的手段來(lái)完成工作。例如,在操作過(guò)程中,VectorC就是比較常見(jiàn)的Intel C+編譯器形式,其在應(yīng)用過(guò)程中,僅僅支持純C。但是,其號(hào)稱是最快的編譯器,在很多情況下,都要強(qiáng)于其他的編譯器。VectorC在使用的過(guò)程中,本身具備交互式的優(yōu)化器,能

5、夠幫助用戶,直接的觀察到C代碼對(duì)映的匯編代碼,在Intel架構(gòu)上優(yōu)化軟件時(shí),效率和質(zhì)量均獲得了較大的保障。Intel C+編譯器在應(yīng)用的過(guò)程中擁有很多的優(yōu)化特征,合理運(yùn)用了處理器的特性以及先進(jìn)性的特點(diǎn),為整個(gè)技術(shù)的優(yōu)化及開(kāi)發(fā)奠定了良好基礎(chǔ),在與其他軟件協(xié)調(diào)工作的同時(shí)提高了軟件的運(yùn)用效率。以Microsoft Visual C+中Intel C+編譯器的應(yīng)用為例,對(duì)其開(kāi)發(fā)的流程進(jìn)行分析。當(dāng)Intel C+編譯器在安裝結(jié)束之后,整個(gè)系統(tǒng)會(huì)自動(dòng)集成到Microsoft Visual C+的環(huán)境之中,其中的Intel C+編輯器在運(yùn)行的過(guò)程中可以支持Linux平臺(tái),它的性質(zhì)與Windows的軟件功能基

6、本相同。3 針對(duì)于特定處理器的優(yōu)化軟件體統(tǒng)開(kāi)發(fā)及應(yīng)用的過(guò)程中,軟件技術(shù)人員系統(tǒng)通過(guò)處理器中的所有性能,就可以將程序更好的運(yùn)用,逐漸提高軟件的應(yīng)用效率、編輯器在應(yīng)用的過(guò)程中是否可以支持新的處理指令以及代碼調(diào)度的基本規(guī)則,與其程序的特征有著緊密的聯(lián)系。Intel C+在應(yīng)用 的過(guò)程中可以支持行的處理指令,同時(shí)也可以充分尊重代碼調(diào)度指令,而且一些軟件在應(yīng)用的過(guò)程中只會(huì)應(yīng)用特殊的指令,例如,Pentium4處理器在后續(xù)技術(shù)操作的過(guò)程中,其單指令更多的會(huì)根據(jù)其數(shù)據(jù)流進(jìn)行擴(kuò)展,其中的編譯器可以在老式處理器的基礎(chǔ)上執(zhí)行相關(guān)的代碼。對(duì)于這些編譯器所輸出的程序而言,在其處理的過(guò)程中可以獲得更好的性能,為整個(gè)軟件

7、的開(kāi)發(fā)及應(yīng)用提供了系統(tǒng)性的依據(jù)。在Microsoft Visual C+ 6.0 中,這些選項(xiàng)可以從Microsoft Visual C+的Project Settings對(duì)話框中進(jìn)行設(shè)置。4 針對(duì)特定處理器函數(shù)的編寫(xiě)分析在Intel架構(gòu)上針對(duì)軟件進(jìn)行優(yōu)化處理,需在特定處理函數(shù)的編寫(xiě)上做出足夠的努力。在以往的工作中,雖然該方面有所研究,但總體上的深度不夠,促使軟件的優(yōu)化并沒(méi)有取得理想的成績(jī)。因此,在今后的工作中,必須針對(duì)特定處理器函數(shù)的編寫(xiě),做出深入的討論,需結(jié)合以往的工作成果和當(dāng)下的需求來(lái)有效的完成,實(shí)現(xiàn)長(zhǎng)久的發(fā)展。該文認(rèn)為,針對(duì)特定處理器函數(shù)的編寫(xiě)工作,應(yīng)在以下幾個(gè)方面努力:首先,Inte

8、l技術(shù)的應(yīng)用過(guò)程中,為了能夠針對(duì)不同處理器本身所具有的基本性能,予以較強(qiáng)的滿足,建議在特定的環(huán)境下,編寫(xiě)相應(yīng)的指令、函數(shù)。例如,在MMX指令內(nèi)容的編寫(xiě)過(guò)程中,必須在特定的環(huán)境下才能完成,同時(shí)還要得到系統(tǒng)的支持,需要在CPU的監(jiān)測(cè)代碼下來(lái)進(jìn)行指導(dǎo),否則很難得到理想的結(jié)果。其次,在調(diào)用該條指令的過(guò)程中,應(yīng)做出有效的處理,將EAX寄存器置1。最后,在指令執(zhí)行并且有效的完成后,處理器本身的信息,以及一些其他的信息,都可以在這個(gè)程序的支持下,通過(guò)利用不同的函數(shù)來(lái)選擇并完成。值得注意的是,Intel軟件的應(yīng)用過(guò)程中,比較簡(jiǎn)單的方法是采用Intel C+的環(huán)境來(lái)進(jìn)行相關(guān)的處理,有效的展現(xiàn)dispatch的具

9、體特征,而編譯器則是在信息處理的過(guò)程中,直接生成具有高效性質(zhì)的檢測(cè)代碼,以此為處理器的具體執(zhí)行提供較多的幫助,促使函數(shù)在執(zhí)行的過(guò)程中,表現(xiàn)出簡(jiǎn)單的特點(diǎn)。5 使用SIMD指令I(lǐng)ntel軟件在具體的應(yīng)用過(guò)程中,SIMD指令的應(yīng)用,是非常重要的技術(shù)手段。從客觀的角度來(lái)分析,通過(guò)應(yīng)用SIMD指令,能夠促使程序的一些基本性能,獲得較大的提升,為用戶提供更加方便的操作和更好的應(yīng)用效果。但對(duì)于C語(yǔ)言或者是C+語(yǔ)言來(lái)講,其本身并沒(méi)有對(duì)方法進(jìn)行系統(tǒng)性的應(yīng)用,總體上還是有待提升的。在以往技術(shù)操作的過(guò)程中,知識(shí)通過(guò)手繪語(yǔ)言的編寫(xiě)方式執(zhí)行SIMD的指令,這種技術(shù)主要是額外的技術(shù)開(kāi)發(fā)形式,知識(shí)對(duì)整個(gè)程序起到了調(diào)試及維護(hù)

10、的作用。相對(duì)而言,在指令的具體處理過(guò)程當(dāng)中,Intel架構(gòu)的基礎(chǔ)上,有效利用C+編譯器,能夠較好的在C語(yǔ)言或者是C+語(yǔ)言當(dāng)中,針對(duì)SIMD指令,給予較大的支持,促使整體的程序在應(yīng)用過(guò)程中,充分達(dá)到簡(jiǎn)便的特點(diǎn),創(chuàng)造出更大的價(jià)值。其指令可以分析以下幾點(diǎn)。5.1 Automatic Vectorzation對(duì)于Automatic Vectorzation而言,其主要是一種自動(dòng)向量化的技術(shù),該技術(shù)在執(zhí)行過(guò)程中,主要的目的是自動(dòng)使用SIMD指示的功能。從已經(jīng)掌握的方法和技術(shù)來(lái)看,Automatic Vectorzation主要是通過(guò)三種方法來(lái)完成操作的。首先,傳統(tǒng)方法。以往針對(duì)Intel架構(gòu)和軟件優(yōu)化的

11、研究并不是特別深入,因此,Automatic Vectorzation的傳統(tǒng)方法受到了高度的重視。傳統(tǒng)方法,主要是針對(duì)語(yǔ)句的依賴關(guān)系進(jìn)行分析,之后會(huì)結(jié)合循環(huán)分布技術(shù)、結(jié)合循環(huán)交換技術(shù),促使內(nèi)層循環(huán)的語(yǔ)句完成向量的有效執(zhí)行。其次,指令級(jí)并行。Automatic Vectorzation在獲得優(yōu)化后,指令級(jí)并行是應(yīng)用比較廣泛的超字并行,通過(guò)系列的操作,有效生成向量化的代碼。最后,模式匹配。Automatic Vectorzation為了進(jìn)一步滿足用戶的需求,研究了模式匹配的引用方法,其在操作過(guò)程中,會(huì)按照既定的多種模式,在語(yǔ)句生成樹(shù)的模式匹配方法上,產(chǎn)生有效的操作擴(kuò)展命令,進(jìn)而完成相關(guān)的操作和處理

12、。在Intel架構(gòu)當(dāng)中,Automatic Vectorzation是一種比較常見(jiàn)的處理方式,該處理方式在應(yīng)用過(guò)程中表現(xiàn)出了較大的積極意義。相對(duì)于其他的處理方式而言,利用Automatic Vectorzation以后,能夠促使Intel C+編譯器可以更好的應(yīng)用,尤其是在合理分析程序、合理執(zhí)行循環(huán)指令等方面,均具有突出的表現(xiàn)。另外,在實(shí)際的操作和應(yīng)用當(dāng)中,Automatic Vectorzation能夠指導(dǎo)一些相關(guān)的選項(xiàng),將具體的內(nèi)容,有效的通知給編譯器,以此來(lái)確保SIMD指令在應(yīng)用過(guò)程中,表現(xiàn)為安全的狀態(tài)。5.2 支持SIMD 的C+類庫(kù)Intel架構(gòu)的基礎(chǔ)上,軟件優(yōu)化是必須要執(zhí)行的措施和

13、手段,只有將軟件不斷的進(jìn)行優(yōu)化處理,才能確保日后的軟件使用獲得較大的價(jià)值提升。為此,在具體的研究過(guò)程中發(fā)現(xiàn),倘若在SIMD指令的使用過(guò)程中,能夠有效的支持C+類庫(kù),勢(shì)必能夠?qū)θ粘5墓ぷ髯龀龈蟮呢暙I(xiàn)。就目前的研究而言,Intel C+編譯器的使用,其本身就包含了SIMD的數(shù)據(jù)類型,通過(guò)相關(guān)技術(shù)的應(yīng)用,能夠針對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的代碼控制。例如,在數(shù)據(jù)類型的變量分析過(guò)程中,通過(guò)增加適量的數(shù)據(jù)處理元素,能夠在本質(zhì)上,更好的減少程序循環(huán)的次數(shù),實(shí)現(xiàn)高效的運(yùn)作,為日后的發(fā)展和工作提供較強(qiáng)的基礎(chǔ)。5.3 Intrinsics在Intel架構(gòu)上,開(kāi)展軟件優(yōu)化的研究,Intrinsics是一項(xiàng)不可或缺的重要內(nèi)容。從客觀的工作來(lái)分析,Intel C+編譯器在應(yīng)用的過(guò)程中,針對(duì)Intrinsics函數(shù),會(huì)予以有效的支持。另外,通過(guò)對(duì)SIMD指令的有效執(zhí)行,實(shí)現(xiàn)更好的程序匯編效果。6 結(jié)語(yǔ)總而言之,文

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論