让R中的gputools和gmatrix在Linux上顺利运行

时间:2016-05-05 08:14:10

标签: r linux gpu opensuse

我无法让R识别出R的gmatrix,通过Rstudio运行。我的详细信息如下。

  • 完成并完成的事情:

    • 安装openSuse Tumbleweed x86_64
    • 安装NVIDIA显卡驱动程序361.42
    • 安装CUDA 7.5& / usr / local / cuda的符号链接
      • 设置LD_LIBRARY_PATH& PATH
    • R 3.2.5
    • RStudio 0.98.501-1.62
    • 修补/usr/local/cuda/include/host_config.h,第115行:将" 4"""" 5"' (这与gcc编译器有关)
    • 安装包gputools

    • 〜部分安装包gmatrix

*我必须编辑host_config.h文件,因为Tumbleweed附带的gcc编译器不支持cuda。我基本上打破了检查版本的评估,并将其设置为5.9而不是4.9。这是一件非常幼稚的事吗?

  • 未完成的事情,需要帮助:

- 我无法正确安装gmatrix。我通过手动添加LD& amp来安装R使用Sys.setenv()

的PATH目录
> Sys.setenv("LD_LIBRARY_PATH"="/usr/lib64/R/lib:/lib:/usr/local/lib64:/usr/local/cuda/lib64")

> Sys.setenv("PATH"="/home/eamergent/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/cuda/bin")

但是,我无法加载gmatrix包,但gputools工作正常:

> library(gputools) "no issues"

> library(gmatrix)

> Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared object '/home/eamergent/R/x86_64-suse-linux-gnu-library/3.2/gmatrix/libs/gmatrix.so':libcudart.so.7.5: cannot open shared object file: No such file or directory Error: package or namespace load failed for ‘gmatrix’

*错误使得libcudart.so.7.5似乎应该受到指责 然而, /usr/local/cuda/lib64/libcudart.so.7.5确实存在:

> eamergent@linux-pnx7: ls /usr/local/cuda/lib64/libcuda

libcudadevrt.a       libcudart.so         libcudart.so.7.5     libcudart.so.7.5.18  libcudart_static.a 

*我使用tab来获得更短的列表。 lib64还有更多内容

有关如何让R识别已安装的gmatrix包的任何想法?或者如何在不使用我上面使用的R环境路径修复的情况下正确地重新安装?

1 个答案:

答案 0 :(得分:1)

我在Ubuntu 14.04上遇到了同样的问题,其中系统和R(Sys.setenv())共享库路径设置正确,但是R无法加载CUDA共享库。有用的是使用ldconfig设置CUDA共享库路径。

使用sudo作为root或前缀命令:

# echo "/usr/local/cuda/lib64/libcuda" > /etc/ld.so.conf.d/cuda.conf
# ldconfig

然后

# R
> install.packages("gmatrix")

或者已经安装了gmatrix

# R
> library(gmatrix)
> gtest()