如何創(chuàng)建及諧調支持多核的LabVIEW x86客戶DLL
The Challenge:
本文引用地址:http://cafeforensic.com/article/94541.htm對NI LabVIEW軟件自動生成的外部代碼進行最優(yōu)化,在x86構架下獲得最大性能,進而測量目標系統(tǒng)中DLL性能。
The Solution:
在不修改源代碼的條件下,通過Intel C++ 編譯器在單核PC上實現(xiàn)2.5 倍提速,通過編譯器中的各類最優(yōu)化選項在雙核PC 上實現(xiàn)超過4.5 倍提速。
"VTune能夠監(jiān)測許多不同種類的構架事件。VTune調諧助手能夠給出如何更好使用這些事件的建議。"
本應用包括了兩個組件——用于計算Pi 值的DLL、調用DLL 庫函數(shù)的LabVIEW 應用,可將結果顯示在圖形用戶界面中。
為計算Pi 值,我們采用了近似綜合技術,需要在單個循環(huán)中完成數(shù)百萬次浮點計算。選擇該范例是因為它是CPU 密集型的,并且是可優(yōu)化的應用。如下所示為外部代碼的主循環(huán)結構,CPU的主要計算量是處理CalcSum 函數(shù)。
for(i=0; i
{
sum = CalcSum(i, sum, step);
?。?/p>
我們的目標是通過編譯器中的優(yōu)化選項以最快速度完成上述計算。
應用中有4 個函數(shù),均包含于獨立源文件中。我們采用不同優(yōu)化開關來編譯每個源文件。如圖1 所示。
表1.應用中的函數(shù)
評論