如何在一台机器上使用多个版本IPP

如何在一台机器上使用多个版本IPP
作者: 丛杨 (Intel) (4 篇文章) 日期: 二月 4, 2010 在 4:38 下午
最近在用IPP实现AES的加密模块,为了对比几个版本IPP在加密模块上的性能,
要在同一台机器上装几个版本的IPP。
并在运行同一个执行文件的时候链接不同版本的IPP库。

为了实现这种做法,我们需要在编译的时候链接IPP的动态库。
在运行执行文件的时候,修改链接库的目录。

下面举一个例子,系统是linux,Windows应该同理。

假设源代码文件a.cpp,编译生成的执行文件为a_exec,另外IPP有两个版本:ipp版本A,ipp版本B。

1)如果版本A和版本B的大版本号一致,例如都是6.1.***,那么可以不用重新编译

编译的命令为:

g++ -o a_exec a.cpp -I /ipp版本A or B的安装目录/include, ipp_aes.cpp -L /ipp版本A or B的安装目录/sharedlib -

lpthread -lippcpem64t -lguide

生成的执行文件 a_exec 在执行的时候可以选择链接版本A的库或是版本B的库。

执行命令为:
# export export LD_LIBRARY_PATH=/ipp版本A/sharedlib
# ./a_exec
结果为使用IPP版本A的结果

# export export LD_LIBRARY_PATH=/ipp版本B/sharedlib
# ./a_exec
结果为使用IPP版本B的结果

2)如果版本A和版本B的大版本号不一样,比如A为6.1.***,B为5.*.**,文件需要分别编译:

使用版本A:
# g++ -o a_exec a.cpp -I /ipp版本A的安装目录/include, ipp_aes.cpp -L /ipp版本A的安装目录/sharedlib -lpthread -lippcpem64t -lguide

# export export LD_LIBRARY_PATH=/ipp版本A/sharedlib
# ./a_exec

使用版本B:
# g++ -o a_exec a.cpp -I /ipp版本B的安装目录/include, ipp_aes.cpp -L /ipp版本B的安装目录/sharedlib -lpthread -lippcpem64t -lguide

# export export LD_LIBRARY_PATH=/ipp版本B/sharedlib
# ./a_exec

这样就可以分别得到使用不同IPP库的性能数据了。

如果要在另外一台机器上运行这个执行文件,
只需把执行文件,以及相应IPP版本的动态库拷贝到这台机器上,并在执行前运行:
# export export LD_LIBRARY_PATH=ipp库所在的目录
就可以看到这个执行文件在这台机器上的性能数据了。

OK,就是这样。
P.S. 最新版的IPP性能还真是不错。
P.P.S.希望我也能跟duofeng同学一样把工作里遇到的方法记录下来,哪怕只是很小很小的一点。
P.P.P.S.这次测试的数据以及编写的代码应该会在不久后就可以发布。


相关文档
最新文档