arrayfire / arrayfire-r

R wrapper for ArrayFire
BSD 3-Clause "New" or "Revised" License
22 stars 5 forks source link

Will arrayfire-r be updated soon to allow Windows usage? #11

Open Despertaferro opened 5 years ago

Despertaferro commented 5 years ago

I see arrayfire-r has been dormant for a few years. In the ArrayFire page it says there is R support. In arrayfire-r, it says Linux is supported, but Windows will be supported "soon".

Is it expected a new arrayfire-r version, which will allow Windows usage?

Thank you for your work.

9prady9 commented 5 years ago

@Despertaferro Unfortunately, there isn't any active development going on the R wrapper support for quite some time. We haven't had that many requests for R wrapper, so updating/maintaining this language binding is currently not at the top of the priority list.

@pavanky Any chance that you are working on latest version but haven't published it yet ?

jeffkeller87 commented 5 years ago

You have my vote for an R wrapper. I was actually looking to contribute to a ViennaCL R wrapper when I came across ArrayFire, whose core appears to be much more actively maintained.

9prady9 commented 5 years ago

@jeffkeller87 At the moment, we don't have any active development going on for R bindings. You are welcome to contribute to R wrapper for ArrayFire. We are available on Slack for quick questions. We are also on Google groups for much detailed discussions.

rstub commented 5 years ago

Getting R and AF to work together on Windows is complicated. If you use the pre-build binaries you have to use MSVC for compiling the R package's library, while normally mingw (from Rtools) is used. Alternatively you could compile AF with the mingw tool chain, but that rules out CUDA. See https://github.com/daqana/rcpparrayfire/issues/3 for a similar discussion also without solution as of now.

9prady9 commented 5 years ago

@rstub Can you please explain what do you mean "mingw rules out CUDA".

As long as C-API from our website binaries is used, you wouldn't face any issues even if our binaries are built using MSVC and your target toolchain is mingw.

rstub commented 5 years ago

@rstub Can you please explain what do you mean "mingw rules out CUDA".

I meant "you cannot build the CUDA backend if you build AF using the mingw tool chain".

As long as C-API from our website binaries is used, you wouldn't face any issues even if our binaries are built using MSVC and your target toolchain is mingw.

I do not remember the details, but I think I had linking problems using the AF's C-API together with mingw. I have not investigated this in detail, though, since I need the C++-API for RcppArrayFire anyway. And that cannot work with mingw due to different C++ name mangling schema.

9prady9 commented 5 years ago

That is right, C++ will have the problem you mentioned. But C-API shouldn't be a problem. I believe I have once tried using ArrayFire binaries(website download) with rust mingw toolchain, if I remember correctly, it did work.

To compile AF, you need a C++ compiler. Now, I haven't tried CUDA backend with mingw toolchain, is it a well known issue ? or something you noticed only with ArrayFire ?

rstub commented 5 years ago

Interesting. I might give it another shot once I have a Windows dev machine running.

AFAIK CUDA on windows requires MSVC, c.f. https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html. I am not sure if it possible to compile the CUDA parts with nvcc, which uses MSVC, and the CPU parts in mingw.