我在 CentOS 6.4 上使用了自编译的 R 2.15
所有 CUDA 环境均正确(我已经编写了 CUDA C 程序)
我已经用 yum 安装了 R-devel
我仍然无法为 R 安装 gputools
为什么?
*
config.status: creating src/Makefile
config.status: creating R/gpuSvm.R
config.status: creating R/gpuFastICA.R
config.status: creating R/gpuSvd.R
** libs
** arch -
/usr/local/cuda-5.0/bin/nvcc -gencode arch=compute_10,code=sm_10 -gencode arch=compute_11,code=sm_11 -gencode arch=compute_12,code=sm_12 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -c -I. -I/usr/local/cuda-5.0/include -Xcompiler -fpic kendall.cu -o kendall.o
ptxas /tmp/tmpxft_00002846_00000000-17_kendall.compute_10.ptx, line 285; warning : Double is not supported. Demoting to float
ptxas /tmp/tmpxft_00002846_00000000-14_kendall.compute_11.ptx, line 285; warning : Double is not supported. Demoting to float
ptxas /tmp/tmpxft_00002846_00000000-11_kendall.compute_12.ptx, line 285; warning : Double is not supported. Demoting to float
/usr/local/cuda-5.0/bin/nvcc -gencode arch=compute_10,code=sm_10 -gencode arch=compute_11,code=sm_11 -gencode arch=compute_12,code=sm_12 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -c -I. -I/usr/local/cuda-5.0/include -Xcompiler -fpic classification.cu -o classification.o
classification.cu:24:14: error: R.h: No such file or directory
make: *** [classification.o] Error 1
ERROR: compilation failed for package ‘gputools’
* removing ‘/usr/local/lib64/R/library/gputools’
The downloaded source packages are in
‘/tmp/RtmpD9AnXS/downloaded_packages’
Updating HTML index of packages in '.Library'
Making packages.html ... done
Warning message:
In install.packages("gputools") :
installation of package ‘gputools’ had non-zero exit status
答案1
我为这个问题开始了悬赏,但过了一段时间我终于找到了解决办法,所以我还不如把它发布在这里作为答案。
看起来 nvcc 正在请求 /usr/lib/R/include,但在 ubuntu 12.04 上不存在。以下是解决方案(在 ubuntu 12.04 上测试)
sudo aptitude install r-base-dev
cd /usr/lib/R
sudo ln -s /usr/share/R/include .
现在启动 R 并像往常一样安装 gputools。它应该可以工作。您应该能够在 centOS 上完成类似的事情。
答案2
我有 Debian Wheezy,并尽可能遵循 Nvidia 的 Ubuntu CUDA 说明。当我安装完所有东西后,我无法将 gputools 安装到 R3.01 中。这篇文章是解决问题的门票。一旦我在终端中使用以下两行创建链接,我就可以成功安装 gputools。
cd /usr/lib/R sudo ln -s /usr/share/R/include 。
不要忘记尾随的空格和点!!
如果您使用的是 Debian Wheezy,请确保您还在 PATH 和 LD_LIBRARY_PATH 中包含了 include cuda,如 Nvidia cuda 说明中所述。要使这些永久生效,请在 /etc/profile 中的 PATH 语句后添加以下两行。这些 PATH 语句位于 if ... fi 结构内,因此请将这些行放在 fi 语句后。将其放入 /etc/profile 将确保所有用户都可以使用更新。
导出 PATH=$PATH:/usr/local/cuda-5.5/bin 导出 LD_LIBRARY_PATH="/usr/local/cuda-5.5/lib64"
注意,如果你已经有了 LD_LIBRARY_PATH,你应该替换
导出 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.5/lib64
为了
导出 LD_LIBRARY_PATH="/usr/local/cuda-5.5/lib64"
干杯!