我已经安装了 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 内存 - 12 GB
还有其他人遇到过这个问题吗?
最佳答案
我已经找到了解决这个问题的方法。问题出在包的 makefile 中,编译架构使用 (arch_compute = sm_10) 传递给编译器,其中包的作者已放入应处理大多数设备的架构列表。由于某种原因,GeForce 640 M 并未出现在该列表中。我删除了整个列表,并且没有传递任何体系结构参数,并且包安装得很好。
关于r - R 中的 gputools - 无效设备功能错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14626196/