新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 如何創(chuàng)建及諧調(diào)支持多核的LabVIEW x86客戶DLL

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

        作者: 時間:2009-05-20 來源:電子產(chǎn)品世界 收藏

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

        本文引用地址:http://www.104case.com/article/94541.htm

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

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

          自動并行化

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

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

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

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

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

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

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

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

          其它優(yōu)化選項

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



        關鍵詞: NI LabVIEW X86

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 日土县| 景泰县| 南阳市| 岳普湖县| 万州区| 肇源县| 周口市| 滕州市| 长沙市| 县级市| 凌云县| 双桥区| 延安市| 临桂县| 梧州市| 淮安市| 山阴县| 柞水县| 郯城县| 克东县| 甘泉县| 定远县| 康马县| 肇州县| 宁南县| 旅游| 梁山县| 永登县| 行唐县| 天长市| 赤水市| 志丹县| 视频| 阳新县| 洱源县| 阿坝| 延安市| 昌吉市| 三穗县| 云阳县| 革吉县|