如何创建及谐调支持多核的LabVIEW x86客户DLL

2014-11-12 14:50:32来源: ck365 关键字:LabVIEW  x86客户  DLL

Author(s):
Stephen Blair-Chappell,技术支持工程师 - Intel (英国), working in partnership with Hitex UK Ltd.

Industry:

Products:
Software

The Challenge:
对NI Labview软件自动生成的外部代码进行最优化,在x86构架下获得最大性能,进而测量目标系统中DLL性能。

The Solution:
在不修改源代码的条件下,通过Intel C++ 编译器在单核PC上实现2.5 倍提速,通过编译器中的各类最优化选项在双核PC 上实现超过4.5 倍提速。

"VTune能够监测许多不同种类的构架事件。VTune调谐助手能够给出如何更好使用这些事件的建议。"

本应用包括了两个组件——用于计算Pi 值的DLL、调用DLL 库函数的LabVIEW 应用,可将结果显示在图形用户界面中。

为计算Pi 值,我们采用了近似综合技术,需要在单个循环中完成数百万次浮点计算。选择该范例是因为它是CPU 密集型的,并且是可优化的应用。如下所示为外部代码的主循环结构,CPU的主要计算量是处理CalcSum 函数。

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

我们的目标是通过编译器中的优化选项以最快速度完成上述计算。

应用中有4 个函数,均包含于独立源文件中。我们采用不同优化开关来编译每个源文件。如图1 所示。

表1.应用中的函数

“即插即用”的Intel C++ 编译器

我们采用即插即用的Intel C++ 来代替Microsoft 编译器,它可以轻松地集成到现有Microsoft Visual Studio DLL 工程中。更多关于Intel 编译器,请访问intel.com/software。

默认设置

测量首先以/O2选项创建应用,许多优化都是在这个层面上进行的。本文在此不讨论其细节问题。表2显示了/O2选项集成的各个优化设置。

表2./O2 选项中集成的最优化列表

自动向量化

自动向量化得益于新一代CPU 中集成的复杂指令集。多数现代CPU构架可扩展支持数据操作及多数据计算。扩展包括支持以单一指令实现多重计算(单指令多数据流,或称SIMD)。Intel 编译器能够分析代码,并通过SIMD 指令显著提高代码的效率

[1] [2]

关键字:LabVIEW  x86客户  DLL

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2014/1112/article_10034.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:LM-STAR 基于NI 软件测试系统节省百万成本
下一篇:航空器增压舱功能性测试的新创意

论坛活动 E手掌握
关注eeworld公众号
快捷获取更多信息
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
LabVIEW
x86客户
DLL

小广播

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved