我正在尝试开发一个R
package
(名为gpuUtils
),它会导入C++
代码,RViennaCL
用于{{1}利用率。
我安装了RViennaCL。然后,我跟着Hadley's guidelines for package development和usage of C++ code,并用这些行创建了一个C ++文件:
GPU
然后,在运行// [[Rcpp::depends(RcppArmadillo)]]
#include <RcppArmadillo.h>
#include "viennacl/ocl/backend.hpp"
using namespace Rcpp;
时出现此错误:
devtools::document
已安装 g++ -m64 -I/usr/include/R -DNDEBUG -I/usr/local/include -I"/home/ndr/R/x86_64-redhat-linux-gnu-library/3.3/Rcpp/include" -I"/home/ndr/R/x86_64-redhat-linux-gnu-library/3.3/RcppArmadillo/include" -I"/home/ndr/R/x86_64-redhat-linux-gnu-library/3.3/RViennaCL/include" -fpic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c gpuUtils.cpp -o gpuUtils.o
In file included from /home/ndr/R/x86_64-redhat-linux-gnu-library/3.3/RViennaCL/include/viennacl/ocl/backend.hpp:26:0,
from gpuUtils.cpp:3:
/home/ndr/R/x86_64-redhat-linux-gnu-library/3.3/RViennaCL/include/viennacl/ocl/context.hpp:28:19: fatal error: CL/cl.h: No such file or directory
#include <CL/cl.h>
^
compilation terminated.
make: *** [gpuUtils.o] Error 1
和OpenCL
,我确实在我的系统中看到了CUDA
:
CL/cl.h
和
$ ls -1 /usr/local/cuda-9.0/include/CL
cl_egl.h
cl_ext.h
cl_gl_ext.h
cl_gl.h
cl.h
cl.hpp
cl_platform.h
opencl.h
另外,在我的DESCRIPTION文件中,我有以下几行:
$ ls -1 /usr/include/CL/
cl2.hpp
cl_egl.h
cl_ext.h
cl_gl_ext.h
cl_gl.h
cl.h
cl.hpp
cl_platform.h
opencl.h
我想LinkingTo: Rcpp, RViennaCL (>= 1.7.1.7)
Imports: Rcpp
或-I/usr/include/
必须包含在-I/usr/local/cuda-9.0/include/
来电中,但我不确定如何让g++
这样做。< / p>
有什么想法吗?