gputools 安装失败 - "Unknown option 'framework'"

gputools install failed - "Unknown option 'framework'"

我很难在我的机器上安装 r 软件包 gputools。我已经安装了 CUDA 并按照 here.

正确设置了相应的 PATH 文件

编译包时我最初遇到错误

/usr/local/cuda/bin/nvcc -gencode arch=compute_10,code=sm_10 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -c -I. -I"/usr/local/cuda/include" -I"/usr/local/Cellar/r/3.1.0/R.framework/Resources/include" -m64 -Xcompiler -fPIC rinterface.cu -o rinterface.o
nvcc fatal   : Unsupported gpu architecture 'compute_10'

我通过从 gputools makefile 中删除 -gencode arch=compute_10,code=sm_10 解决了这个问题(找到了这个简单的解决方案 here)。

现在它编译了一些东西大约 30 秒,然后以以下错误结束:

/usr/local/cuda/bin/nvcc -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -shared -m64 -Xlinker '-rpath /usr/local/cuda/lib -F/usr/local/Cellar/r/3.1.0/R.framework/Resources/.. -framework R' -L"/usr/local/Cellar/r/3.1.0/R.framework/Resources/lib" -L"/usr/local/cuda/lib" -lcublas -framework Accelerate rinterface.o mi.o sort.o granger.o qrdecomp.o correlation.o hcluster.o distance.o matmult.o lsfit.o kendall.o cuseful.o -o gputools.so
nvcc fatal   : Unknown option 'framework'
make: *** [gputools.so] Error 1
ERROR: compilation failed for package ‘gputools’
* removing ‘/usr/local/Cellar/r/3.1.0/R.framework/Versions/3.1/Resources/library/gputools’

可以找到完整的控制台输出 here。我迷失了这一点,config.mk 文件中只出现了一次 -framework,即 R_FRAMEWORK := -F$(R_HOME)/.. -framework R,即使删除 -framework R 也没有什么不同。

注意:我使用 R CMD build gputools && R CMD INSTALL gputools_0.28.tar.gz 从 repo 将其编译为 recommended here

有人知道我可以尝试什么吗?

对不起。我将此作为解决方案发布,但我没有足够的声誉来发表评论。保罗,你的解决方案对我有用。我的设备是具有 3.0 CUDA 功能的 GeForce GT 750M。

我下载了最后一个源gputools_0.28.tar.gz并解压了。然后我修改了src/Makefile中的第19行:

NVCC := $(CUDA_HOME)/bin/nvcc -gencode arch=compute_10,code=sm_10 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30

看起来像这样:

NVCC := $(CUDA_HOME)/bin/nvcc -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30

最后,安装

R CMD INSTALL gputools

其中gputools是解压源后创建的文件夹。

我的 R 版本是

platform       x86_64-apple-darwin13.4.0   
arch           x86_64                      
os             darwin13.4.0                
system         x86_64, darwin13.4.0        
status                                     
major          3                           
minor          2.2                         
year           2015                        
month          08                          
day            14                          
svn rev        69053                       
language       R                           
version.string R version 3.2.2 (2015-08-14)
nickname       Fire Safety     

我也遇到了同样的 "framework" 错误,最终能够解决问题。请允许我从头说起。如果您收到有关 Unsupported gpu architecture 的编译错误,您可以通过先解压包

来解决此问题
tar -xzvf gputools_0.28.tar.gz

然后编辑 Makefile

vi gputools/src/Makefile

到新的 nvidia 编译器的最新架构标志

-gencode arch=compute_20,code=sm_20
-gencode arch=compute_30,code=sm_30
-gencode arch=compute_35,code=sm_35
-gencode arch=compute_50,code=sm_50
-gencode arch=compute_52,code=sm_52
-gencode arch=compute_52,code=compute_52

您可以在 NVidia's website 上找到更多详细信息。删除任何继续出现编译错误的内容。

然后把tar.gz装回去试试安装

tar -czvf my_gputools_0.28.tar.gz gputools
R CMD build gputools && R CMD INSTALL gputools_0.28.tar.gz

不要忘记package documentation

中提到的环境变量
export CUDA_HOME=/usr/local/cuda/5.0
export LD_LIBRARY_PATH=/usr/local/cuda/5.0/lib64:$LD_LIBRARY_PATH`

此时如果得到Unknown option 'framework'异常,似乎是nvcc命令行参数发生了细微的变化。再次查看 makefile 并查找 ${shell R CMD config BLAS_LIBS}。这是为我插入 -framework <value> 参数的部分。您可以通过 运行 命令 R CMD config BLAS_LIBS 测试您的配置。包含框架的新命令是

-Xlinker -framework,<value>

这里有更多信息 Nvidia page

看来gputools 1.0解决了我的问题。我已经能够使用 R 3.2.2.

毫无问题地安装它
platform       x86_64-apple-darwin15.0.0   
arch           x86_64                      
os             darwin15.0.0                
system         x86_64, darwin15.0.0        
status                                     
major          3                           
minor          2.2                         
year           2015                        
month          08                          
day            14                          
svn rev        69053                       
language       R                           
version.string R version 3.2.2 (2015-08-14)
nickname       Fire Safety