我安装了Nvidia显卡(GeForce GT 640 M)和CUDA 5.0。然后我在R中安装了gputools软件包。软件包安装完美但是当我尝试在其中使用一个函数时,它会给我一个无效的设备函数错误。
require("gputools")
mat = matrix(runif(25),5,5)
gpuCor(mat)
Error in gpuCor(mat) : invalid device function
In addition: Warning message:
In gpuCor(mat) : PMCC function : kernel finish and memcpy
我确保cuda样本工作正常,我自己的cuda脚本也能正常工作。 gpuMatMult函数在包中工作(我检查了源文件并且它没有任何设备函数)但是带有设备函数的函数正在进行折腾。
以下是我的系统详细信息 操作系统 - Ubuntu 12.04 Cuda - CUDA - 5.0 显卡 - NVIDIA GEFORCE GT 640 M RAM - 12 GB
其他人遇到过这个问题?
答案 0 :(得分:2)
我找到了解决这个问题的方法。问题出在包的makefile中,编译体系结构使用(arch_compute = sm_10)传递给编译器,其中包的作者放入了应该处理大多数设备的体系结构列表。由于某种原因,GeForce 640 M不在该列表中。我删除了整个列表,没有传递任何架构参数,并且安装包正常。