dopt icon indicating copy to clipboard operation
dopt copied to clipboard

Dcompute based backend

Open 9il opened this issue 7 years ago • 5 comments

@WebFreak001

Have you maybe considered using opencl (or the DCompute thing there on ldc)? And maybe also mir instead of blas

DCompute would be a good option.

9il avatar Feb 02 '18 11:02 9il

ping @thewilsonator

9il avatar Feb 02 '18 11:02 9il

Awesome. I still need to fix a couple of things in dcompute (https://github.com/libmir/dcompute/issues/32 waiting on an ldc fix) to be fit for use.

thewilsonator avatar Feb 02 '18 11:02 thewilsonator

any update on this? (@thewilsonator) would be really cool being able to use this library on a server but I don't really have a lot of understanding how this entire thing works (especially because of CUDA, but also not a lot of knowledge about dcompute, plus also because of machine learning itself)

WebFreak001 avatar Feb 10 '18 23:02 WebFreak001

I'm in two minds about a dcompute backend. On one hand, it would be very useful to be able to write high performance kernels in D, but on the other hand maintaining compatibility with DMD is a high priority from my point of view. Of course, it is possible to have a dcompute backend implemented as an entirely different dub package---this library has been designed with that in mind. Once the CPU backend has more operations implemented I may end up refactoring the CUDA backend into a separate package.

henrygouk avatar Feb 11 '18 05:02 henrygouk

@WebFreak001 libmir/dcompute#32 is still waiting on ldc-developers/ldc#2508 ( hopefully goes in soon) however will need to wait for dmd 2.079 for DMD compatibility because it relies on fix for 17899 module scope initialised delegates.

Of course, it is possible to have a dcompute backend implemented as an entirely different dub package

@henrygouk it should be possible to have a precompiled set of kernels for DMD/GDC compatibility as a separate package.

thewilsonator avatar Feb 11 '18 08:02 thewilsonator