如何创建及谐调支持多核的LabVIEW x86客户DLL
The Challenge:
本文引用地址:http://www.amcfsurvey.com/article/94541.htm对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.应用中的函数
评论