我已成功安装CUDA和rpud。我能够编译并运行我的文件 vecAdd.cu,但我想在 R 中调用此函数。我使用以下指令创建 vecAdd.o 和 <分别是strong>vecAdd.so,我没有收到任何错误。
nvcc -m64 -I/usr/local/cuda-5.5/include -I/usr/include/R -
I/usr/local/include -g -O2 -c -o VecAdd.o VecAdd.cu --ptxas-options -v -Xcompiler -fPIC
g++ -m64 -std=gnu99 -shared -L/usr/local/lib64 -o VecAdd.so VecAdd.o -L/usr/lib64/R/lib -lR -L/usr/local/cuda-5.5/lib64 -lcuda -lcudart -lcurand -lm
当我尝试使用 R 加载它时:
> dyn.load("/home/CUDACodes/VecAdd.so")
dyn.load("/home/CUDACodes/VecAdd.so") 中出现错误:
无法加载共享对象'/home/CUDACodes/VecAdd.so':
libcudart.so.5.5:无法打开共享对象文件:没有这样的文件或目录
不知道它是否相关,但是当我尝试安装 gputools 包时,我收到此错误:
dyn.load(文件, DLLpath = DLLpath, ...) 中出现错误:
无法加载共享对象'/home/ac43/lib/R/gputools/libs/gputools.so':
libcublas.so.5.5:无法打开共享对象文件:没有这样的文件或目录
最佳答案
将以下行添加到 .csrc 文件修复了该问题:setenv R_INC_PATH/usr/lib64/R/include:$LD_LIBRARY_PATH
关于c++ - 在 R 中调用 GPU 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796727/