《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 業(yè)界動態(tài) > 如何創(chuàng)建及諧調(diào)支持多核的LabVIEW x86客戶DLL

如何創(chuàng)建及諧調(diào)支持多核的LabVIEW x86客戶DLL

2009-05-20
作者:美國國家儀器有限公司

?

The Challenge:

??? 對NI LabVIEW軟件自動生成的外部代碼進行最優(yōu)化,在x86構(gòu)架下獲得最大性能,進而測量目標系統(tǒng)中DLL性能。

?

The Solution:

??? 在不修改源代碼的條件下,通過Intel C++ 編譯器在單核PC上實現(xiàn)2.5 倍提速,通過編譯器中的各類最優(yōu)化選項在雙核PC 上實現(xiàn)超過4.5 倍提速。

?

??? "VTune能夠監(jiān)測許多不同種類的構(gòu)架事件。VTune調(diào)諧助手能夠給出如何更好使用這些事件的建議。"

本應(yīng)用包括了兩個組件——用于計算Pi 值的DLL、調(diào)用DLL 庫函數(shù)的LabVIEW 應(yīng)用,可將結(jié)果顯示在圖形用戶界面中。

?

??? 為計算Pi 值,我們采用了近似綜合技術(shù),需要在單個循環(huán)中完成數(shù)百萬次浮點計算。選擇該范例是因為它是CPU 密集型的,并且是可優(yōu)化的應(yīng)用。如下所示為外部代碼的主循環(huán)結(jié)構(gòu),CPU的主要計算量是處理CalcSum 函數(shù)。

?

for(i=0; i
sum = CalcSum(i, sum, step);

?

??? 我們的目標是通過編譯器中的優(yōu)化選項以最快速度完成上述計算。

?

??? 應(yīng)用中有4 個函數(shù),均包含于獨立源文件中。我們采用不同優(yōu)化開關(guān)來編譯每個源文件。如圖1 所示。

?

表1.應(yīng)用中的函數(shù)

?

即插即用”的Intel C++ 編譯器

?

??? 我們采用即插即用的Intel C++ 來代替Microsoft 編譯器,它可以輕松地集成到現(xiàn)有Microsoft Visual Studio DLL 工程中。更多關(guān)于Intel 編譯器,請訪問intel.com/software。

?

默認設(shè)置

?

??? 測量首先以/O2選項創(chuàng)建應(yīng)用,許多優(yōu)化都是在這個層面上進行的。本文在此不討論其細節(jié)問題。表2顯示了/O2選項集成的各個優(yōu)化設(shè)置。

?

表2./O2 選項中集成的最優(yōu)化列表

?

自動向量化

?

??? 自動向量化得益于新一代CPU 中集成的復(fù)雜指令集。多數(shù)現(xiàn)代CPU構(gòu)架可擴展支持數(shù)據(jù)操作及多數(shù)據(jù)計算。擴展包括支持以單一指令實現(xiàn)多重計算(單指令多數(shù)據(jù)流,或稱SIMD)。Intel 編譯器能夠分析代碼,并通過SIMD 指令顯著提高代碼的效率。

?

??? 本范例中,編譯器通過\QT 選項生成適合Core 2 構(gòu)架的代碼,編譯器報告以下創(chuàng)建時間信息:

?

??? 注釋:循環(huán)未作向量化處理

?

??? 反匯編生成代碼后可看到編譯器插入了SIMD擴展指令集(SSE)。該指令集的使用直接提升了應(yīng)用的運行性能,代碼運行速度提高了2倍。

?

??? 這類優(yōu)化可應(yīng)用于目前大多數(shù)CPU 上,這里我們在Core 2 處理器上運行,當(dāng)然您也可以在單核或早期CPU 上應(yīng)用。

?

自動并行化

?

??? 因為采用多核PC,我們會更感興趣如何通過\QParallel 選項,讓代碼在兩核上同時運行,以獲得進一步提速。該選項在編譯目標中插入了庫調(diào)用。庫調(diào)用提供了運行時所需的控制,使應(yīng)用中的組件得以并行。

在首次運行中,編譯器并未顯著提高運行性能。通過開啟編譯器的報告功能,可以看到它并未進行優(yōu)化。

?

??? 注釋:循環(huán)未作并行化處理,循環(huán)無需并行化

?

??? Intel編譯器要對一段代碼進行自動并行化時,首先決定是否有值得進行并行化的代碼部分。在我們的代碼中由一個主循環(huán)完成所有工作。編譯器不能確定循環(huán)的重復(fù)次數(shù),循環(huán)計數(shù)值只有在運行時得到。于是編譯器采取謹慎選擇,不對循環(huán)進行并行化處理。

?

??? 我們可以通過在命令行輸入/Qpar-threshold:n 來進行試探優(yōu)化,這里n 是介于0(總是并行處理)到100(不進行并行處理)的數(shù),這個值決定了試探優(yōu)化的程度。

?

??? 輸入/Qpar-threshold:0 后,編譯器對代碼并行化,并輸出報告:

?

??? 注釋:循環(huán)已作自動并行化處理

?

??? 使用該優(yōu)化后,程序的運行速度比默認設(shè)置下提高了近2 倍。

?

其它優(yōu)化選項

?

??? 本范例中,我們關(guān)注自動向量化及自動并行化。Intel C++ 編譯器利用一系列其它優(yōu)化技術(shù),包括高層優(yōu)化、交叉過程優(yōu)化、配置向?qū)?yōu)化、速度優(yōu)化、代碼大小優(yōu)化、快速浮點處理等。

?

??? Intel 編譯器同時支持OpenMP 這個基于pragma 的標準,用于實現(xiàn)應(yīng)用代碼的并行化。

?

測量性能

?

??? 本范例中我們采用Win32 API 的定時函數(shù),并將定時計算嵌入外部代碼。計算時間在LabVIEW 應(yīng)用GUI 中顯示。

?

??? 作為備選,我們還可采用LabVIEW的定時工具,或采用外部工具,如Intel VTune 性能分析器。

?

??? VTune能夠監(jiān)測許多不同種類的構(gòu)架事件。VTune調(diào)諧助手能夠給出如何更好使用這些事件的建議。

?

結(jié)論

?

??? 不同開關(guān)的優(yōu)化結(jié)果在表3 中列出。我們在雙核PC 上運行,并通過默認優(yōu)化(/O2)作為基準來計算提速。

?

表3.不同優(yōu)化方式下的速度提高

?

??? 在應(yīng)用自動向量化時可達到2.5倍速,該優(yōu)化專用于非多核處理器,可用于目前多數(shù)CPU。

?

??? 在應(yīng)用自動并行化后可實現(xiàn)接近2 倍的提速。結(jié)合兩種優(yōu)化更可達到4.6 倍。

?

??? 以上結(jié)果是在不修改源代碼的前提下實現(xiàn)的。盡管我們選擇了模擬應(yīng)用(計算Pi值),但這類優(yōu)化技術(shù)能夠用于各類實際應(yīng)用。從Intel編譯器用戶反饋中了解到,使用這些優(yōu)化方式可顯著提高代碼執(zhí)行速度。

?

?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产经典视频| 亚洲伊人网站| 国产亚洲一区二区三区| 欧美小视频在线观看| 欧美国产激情| 欧美激情第9页| 欧美国产日韩二区| 欧美激情一区二区三区全黄 | 亚洲永久免费精品| 亚洲美女毛片| 99精品国产99久久久久久福利| 亚洲黄页视频免费观看| 亚洲国产精品免费| 亚洲国产经典视频| 亚洲国产婷婷综合在线精品| 亚洲高清在线播放| 亚洲欧洲日本专区| 日韩午夜免费视频| 一区二区三区精品久久久| 夜夜嗨av一区二区三区网页| av成人免费在线观看| 国产精品激情电影| 亚洲视频在线视频| 亚洲午夜精品一区二区| 亚洲一区二区免费在线| 亚洲综合精品| 午夜欧美大尺度福利影院在线看| 亚洲综合99| 久久成人18免费网站| 久久人人爽人人爽| 欧美chengren| 欧美日韩另类视频| 国产精品欧美一区喷水| 国产一区二区三区久久久| 伊人久久噜噜噜躁狠狠躁| 亚洲激情在线观看| 一区二区免费在线观看| 亚洲综合欧美日韩| 久久成人精品一区二区三区| 91久久久亚洲精品| 亚洲视频一区| 久久国产精品毛片| 欧美成人综合一区| 国产精品ⅴa在线观看h| 国产精品综合| 一区二区三区我不卡| 亚洲欧洲在线一区| 亚洲少妇自拍| 久久成人18免费网站| 亚洲精品色图| 欧美中文日韩| 欧美国产免费| 国产九九视频一区二区三区| 一区精品在线| 一区二区三欧美| 久久超碰97人人做人人爱| 亚洲精品美女在线观看播放| 亚洲欧美日韩另类| 狂野欧美一区| 国产精品v欧美精品v日韩精品| 国产亚洲欧美日韩美女| 亚洲肉体裸体xxxx137| 亚洲综合日本| 日韩亚洲在线| 久久精品2019中文字幕| 欧美日本亚洲| 国产一区二区三区在线观看免费视频 | 尹人成人综合网| 亚洲桃花岛网站| 亚洲高清免费| 午夜精品久久久久久99热软件| 久久久综合视频| 欧美三级视频| 亚洲国产成人精品久久久国产成人一区 | 国产精品久久毛片a| 在线观看视频一区| 亚洲一级特黄| 亚洲精品日产精品乱码不卡| 欧美在线观看视频一区二区| 欧美精品一区二区三区很污很色的| 国产精品一区在线观看你懂的| 亚洲黄页视频免费观看| 久久er精品视频| 亚洲欧美日韩中文视频| 欧美成在线观看| 国产一区二区久久久| 99精品国产99久久久久久福利| 亚洲黄页一区| 久久久精品2019中文字幕神马| 欧美日韩在线视频观看| 亚洲国产成人不卡| 欧美亚洲免费在线| 亚洲一级片在线观看| 欧美国内亚洲| 精品成人在线观看| 欧美在线播放| 午夜免费在线观看精品视频| 欧美日韩伊人| 亚洲乱码国产乱码精品精可以看| 亚洲高清在线播放| 久久久精品一区二区三区| 国产精品一区二区久久| 一二三四社区欧美黄| 日韩亚洲欧美综合| 欧美成人午夜77777| 狠狠色综合色综合网络| 午夜欧美大片免费观看| 性欧美精品高清| 国产精品久久久久一区二区三区| 99热在这里有精品免费| 99热精品在线| 欧美精品精品一区| 亚洲国产一区二区视频| 亚洲精品一区二区网址| 欧美黄色一区| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美日韩1区2区| 91久久香蕉国产日韩欧美9色| 亚洲国产国产亚洲一二三| 久久人人97超碰精品888| 国内精品久久久久影院色 | 亚洲黑丝一区二区| 另类尿喷潮videofree| 永久555www成人免费| 亚洲承认在线| 美女久久一区| 亚洲国产欧美国产综合一区 | 99精品欧美一区二区三区| 欧美精品日韩综合在线| 亚洲精品乱码视频| 在线午夜精品| 欧美日韩妖精视频| 亚洲性线免费观看视频成熟| 午夜久久tv| 国产日韩欧美一区在线| 久久国产精品黑丝| 免费看成人av| 99re8这里有精品热视频免费| 亚洲午夜成aⅴ人片| 国产精品视频福利| 午夜精品理论片| 久久免费黄色| 亚洲高清网站| 亚洲神马久久| 国产乱码精品一区二区三区不卡| 欧美一区激情视频在线观看| 久久中文字幕导航| 亚洲日本中文字幕| 亚洲一区二区三区久久| 国产美女精品人人做人人爽| 亚洲电影免费在线观看| 欧美福利专区| 一区二区三区高清不卡| 久久国产精品久久久久久久久久| 在线精品在线| 亚洲视频导航| 国产一区二区三区四区hd| 亚洲人午夜精品| 国产精品成人在线| 欧美一区二区三区电影在线观看| 美腿丝袜亚洲色图| 一本色道久久综合亚洲二区三区| 欧美尤物一区| 亚洲激情网址| 欧美一区二区三区婷婷月色| 伊人成人在线视频| 亚洲中字黄色| 精品成人国产在线观看男人呻吟| 一区二区三区四区国产| 国产噜噜噜噜噜久久久久久久久 | 国产欧美一区二区三区久久| 91久久精品国产91性色tv| 欧美三日本三级少妇三2023| 欧美一区二区精品久久911| 欧美伦理视频网站| 欧美在线高清视频| 欧美日韩在线精品一区二区三区| 欧美怡红院视频| 欧美三级韩国三级日本三斤| 久久国产精品久久国产精品| 欧美日韩亚洲一区二| 久久激情五月丁香伊人| 欧美视频免费在线| 亚洲国产精品成人va在线观看| 国产精品超碰97尤物18| 亚洲黑丝一区二区| 国产欧美一区二区精品性色| 一区二区三区产品免费精品久久75| 国产一区二区三区的电影 | 亚洲另类视频| 老司机凹凸av亚洲导航| 亚洲婷婷综合色高清在线| 六月婷婷久久| 亚洲欧洲av一区二区三区久久| 欧美喷水视频| 久久精品国产亚洲高清剧情介绍| 国产精品久久久久久久久久久久久久| 91久久综合亚洲鲁鲁五月天| 国产精品一级| 亚洲欧美激情一区|