gpuRcore / gpuRcuda

CUDA GPU functions for R Objects
52 stars 7 forks source link

gpuRcuda doesn't compile on mac os x 10.12.5/ R 3.4.0 / CUDA 8.0 #3

Open andrewrech opened 7 years ago

andrewrech commented 7 years ago

@cdeterman I saw your note about development here vs. gpuR, but wanted to leave this compilation failure if it is helpful, as I am using the currently recommended versions for CUDA on macOS. Thank you!

/usr/local/lib/R/3.4/site-library/Rcpp/include/Rcpp/vector/proxy.h(99)
Darwin xxx 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64 i386 MacBookPro11,5 Darwin

ProductName:    Mac OS X
ProductVersion: 10.12.5
BuildVersion:   16F73

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:46_CST_2017
Cuda compilation tools, release 8.0, V8.0.61

R version 3.4.0 (2017-04-21) -- "You Stupid Darkness"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-apple-darwin16.5.0 (64-bit)

Apple LLVM version 8.0.0 (clang-800.0.42.1)
Target: x86_64-apple-darwin16.6.0
Thread model: posix
InstalledDir: /Applications/Xcode_8_2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

* installing *source* package ‘gpuRcuda’ ...
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
Checking for C++ Compiler
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking "Checking environment variable CUDA_HOME"... "using CUDA_HOME=/usr/local/cuda"
checking for /usr/local/cuda/bin/nvcc... yes
"NVCC found"
checking "whether this is the 64 bit linux version of CUDA"... checking for /usr/local/cuda/lib64/libcudart.so... no
"no -- using /usr/local/cuda/lib for CUDA libs"
checking for Rscript... yes
checking "building the nvcc command line"... configure: Building Makevars
configure: creating ./config.status
config.status: creating src/Makevars
** libs
/usr/local/cuda/bin/nvcc -arch=sm_30 -Xcompiler -fPIC -Xcudafe --diag_suppress=boolean_controlling_expr_is_constant -I/usr/local/Cellar/r/3.4.0_1/R.framework/Resources/include -I/usr/local/lib/R/3.4/site-library/Rcpp/include -I"/usr/local/lib/R/3.4/site-library/RcppEigen/include" -I/usr/local/lib/R/3.4/site-library/RViennaCL/include vcl_scolSums.cu -c
/usr/local/lib/R/3.4/site-library/RcppEigen/include/Eigen/src/Core/MathFunctions.h(1078): warning: calling a __host__ function from a __host__ __device__ function is not allowed

/usr/local/lib/R/3.4/site-library/RcppEigen/include/Eigen/src/Core/MathFunctions.h(1078): warning: calling a __host__ function from a __host__ __device__ function is not allowed

/usr/local/lib/R/3.4/site-library/RcppEigen/include/Eigen/src/Core/MathFunctions.h(1083): warning: calling a __host__ function from a __host__ __device__ function is not allowed

/usr/local/lib/R/3.4/site-library/RcppEigen/include/Eigen/src/Core/MathFunctions.h(1083): warning: calling a __host__ function from a __host__ __device__ function is not allowed

/usr/local/lib/R/3.4/site-library/Rcpp/include/Rcpp/vector/proxy.h(99): error: the object has type qualifiers that are not compatible with the member function "Rcpp::internal::string_name_proxy<RTYPE>::get"
            object type is: const Rcpp::internal::string_name_proxy<RTYPE>

1 error detected in the compilation of "/var/folders/cv/b7g24y7d3vb167gvnh_p694w0000gn/T//tmpxft_00015fb4_00000000-5_vcl_scolSums.cpp4.ii".
make: *** [Makevars:30: vcl_scolSums.o] Error 2
ERROR: compilation failed for package ‘gpuRcuda’
* removing ‘/usr/local/lib/R/3.4/site-library/gpuRcuda’
cdeterman commented 7 years ago

@andrewrech thanks for reporting the issue. Yes, this is an issue with the nvcc compiler not playing nicely with the Rcpp package. I have an idea for a workaround but it will require a lot of code changes. As you saw I continue to be busy keeping up with gpuR at the moment (I am balancing a new job as well). I really do want to work on this, I just simply don't have the time :(

andrewrech commented 7 years ago

@cdeterman No worries and thanks for the message