Hello,

I'm trying to combine the parallel computing power available through NVIDIA
CUDA (www.nvidia.com/cuda) from within R. CUDA is an extension to the C
language, so I thought it would be possible to do this.

If I have a C file with an empty function which includes a needed CUDA
library (cutil.h) and compile this to an .so file using a NVIDIA compiler
(nvcc), called 'myFunc.so' I can load this fine from within R with
dyn.load("myFunc.so").
But, as soon as I want to call it's function I get:

> dyn.load("myFunc.so")
> .C("testFunc")
Error in .C("testFunc") : C symbol name "testFunc" not in load table

The myFunc.c file looks like this:

#include<cutil.h>
#include<stdio.h>
#include<stdlib.h>
#include<R.h>

void testFunc() {
        printf("Hello!\n");
}

The problem is that NVIDIA has their own C compiler (nvcc) which is needed
to compile code for their devices. This compiler calls 'gcc' (or Windows C
compiler) for all standard C code, so setting the 'CC = nvcc' might still
work when using 'R CMD SHLIB' to compile C files to shared libraries. But as
far as I know, if I use the same flags R CMD SHLIB uses (nvcc passes them to
gcc) it should work..

Can anyone point me in the right direction?

Thanks in advance.
-- 
View this message in context: 
http://www.nabble.com/Help-needed-using-3rd-party-C-library-functions-from-within-R-%28Nvidia-CUDA%29-tp20321716p20321716.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to