任何人都可以告诉我为什么我不能通过以下方式成功测试R中OpenBLAS的dgemm性能(在GFLOP 中)?
libblas.sommperf.c使用OpenBLAS库编译我的C程序libopenblas.sommperf.so到R中,调用R包装函数mmperf并dgemm在GFLOP中报告性能.第1点看起来很奇怪,但我别无选择,因为我在我想测试的机器上没有root访问权限,所以实际链接到OpenBLAS是不可能的.通过"未成功"我的意思是我的程序最终报告dgemm以供参考BLAS,而不是OpenBLAS性能.我希望有人可以向我解释一下:
main函数并在C程序中完成我的工作.)我已经调查了这个问题两天,在这里我将包括各种系统输出,以帮助您进行诊断.为了使事情可以重现,我还将包括代码,makefile以及shell命令.
第1部分:测试前的系统环境
调用R有两种方法,使用R或Rscript.调用它们时加载的内容有一些差异:
~/Desktop/dgemm$ readelf -d $(R RHOME)/bin/exec/R | grep "NEEDED"
0x00000001 (NEEDED) Shared library: [libR.so]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
~/Desktop/dgemm$ readelf -d $(R RHOME)/bin/Rscript | grep "NEEDED"
0x00000001 (NEEDED) Shared library: [libc.so.6]
Run Code Online (Sandbox Code Playgroud)
这里我们需要选择Rscript,因为R加载libR.so会自动加载参考BLAS libblas.so.3:
~/Desktop/dgemm$ …Run Code Online (Sandbox Code Playgroud)