Hi Emmanuel,
As Dirk mentioned, I am involved in making GPU computing as portable and
accessible as possible. Depending on your needs, most functionality may
already be implemented in my gpuR package (https://cran.r-project.org/
package=gpuR). It is an OpenCL backend so it can be installed
essentially anywhere for any hardware. It also has new functionality to
accept custom, user provided OpenCL kernels to extend to non-implemented
operations. That said, I am working on setting up the CUDA backend. I
have had some success with Linux systems but trouble with Windows. The
main problem with that, as you may have discovered, is that NVIDIA's nvcc
compiler requires the use of cl.exe on Windows systems. This prevents the
normal use of Rtools mingw functions. As such, I am still looking in to
how I can create a solid configure script for Windows systems so that
cl.exe can be used instead of g++. If I can be of help, feel free to reach
out. I need a bit more dedicated time to sort out Windows but I have been
quite busy as of late.
Regards,
Charles
On Sun, Jan 21, 2018 at 9:32 AM, Emmanuel Hamel <manu.hamel at gmail.com>
wrote:
Hi,
Thank you for your answer! I am already able to use the OpenMP-style
without RcppParallel, thanks to some examples given in the Rcpp community.
I will have a look at the RViennaCL.
For my problem, the compiler is not important. I just mentioned the one I
use as an example. However, I really have to use Windows.
Best regards,
Emmanuel
2018-01-21 10:26 GMT-05:00 Dirk Eddelbuettel <edd at debian.org>:
On 21 January 2018 at 09:55, Emmanuel Hamel wrote:
| Hope you are all feeling good. I have a question. First, I use windows
and
Never the easiest platform (in my very personal view).
| I want to use OpenACC. For the moment, I am able to compile GPU Cuda C
code
| with Microsoft visual studio and call it from a DLL in Windows. Also,
I am
| able to use OpenMP with the Rcpp package. Nevertheless, I want to
extend
| these possibilities for a project regarding dynamic hedging program for
| segregated funds. Hence, I would like to know if you have any tips
| regarding the use of OpenACC in Rcpp. In particular, what are the files
I am not aware of anyone using it now. That said, it would be nice to
have.
| that I need to modify in a RStudio project in order to be able to
compile
| pragma commands with the OpenACC compiler? For the moment, I use the
PGI
| compiler.
That puts a third constraint up. Which, in aggregate, makes it even less
likely that someone is doing this already.
A few people use Rcpp together with CUDA code. Charles has been working
on
RViennaCL which is another "portable" approach for multiple backends:
https://cran.r-project.org/package=RViennaCL
He may be following up here too in a day or two.
Other than that, RcppParallel exists, is fairly widely used, and gives
you
higher-level abstractions for OpenMP-style parallelism. No GPU though.
So in short if you need
- OpenACC
- on Windows
- with PGI
you may have to roll up your sleeves and build it. We will help as we
can.
If it were me, I'd relax as many constraints here as possible. So how
about
figuring out how to interface OpenACC on any suitable platform and
compiler
pair?
Dirk
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org