Thread overview
How feasible to wrap Nvidia Toolkit for CUDA Programming
Aug 16, 2012
TJB
Aug 16, 2012
David
Aug 16, 2012
Nick Sabalausky
Aug 17, 2012
Jens Mueller
Aug 17, 2012
Jacob Carlborg
August 16, 2012
D Masters,

I'm not a hardware guy at all, but I find myself needing to process a lot of data through some Monte Carlo statistical algorithms.  I am considering general purpose GPU computing for this task.  My question is how feasible will it be to wrap the Nvidia cuBLAS and cuRAND libraries for this purpose?  They are written in C, so is it pretty straight forward?

I do not have in mind running D code directly on the GPU cores, but having D call out to C code to do so.  Is it possible?  Feasible?  Are there already codes to do this somewhere?

Thanks for your insights!

TJB
August 16, 2012
Am 17.08.2012 00:20, schrieb TJB:
> D Masters,
>
> I'm not a hardware guy at all, but I find myself needing to process a
> lot of data through some Monte Carlo statistical algorithms.  I am
> considering general purpose GPU computing for this task.  My question is
> how feasible will it be to wrap the Nvidia cuBLAS and cuRAND libraries
> for this purpose?  They are written in C, so is it pretty straight forward?
>
> I do not have in mind running D code directly on the GPU cores, but
> having D call out to C code to do so.  Is it possible? Feasible?  Are
> there already codes to do this somewhere?
>
> Thanks for your insights!
>
> TJB

There is a OpenCL Wrapper written in D: https://github.com/Trass3r/cl4d
August 16, 2012
On Fri, 17 Aug 2012 00:20:10 +0200
"TJB" <broughtj@gmail.com> wrote:

> D Masters,
> 
> I'm not a hardware guy at all, but I find myself needing to process a lot of data through some Monte Carlo statistical algorithms.  I am considering general purpose GPU computing for this task.  My question is how feasible will it be to wrap the Nvidia cuBLAS and cuRAND libraries for this purpose?  They are written in C, so is it pretty straight forward?
> 
> I do not have in mind running D code directly on the GPU cores, but having D call out to C code to do so.  Is it possible? Feasible?  Are there already codes to do this somewhere?
> 
> Thanks for your insights!
> 
> TJB

Accessing/wrapping C libs in general is pretty straightforward in D:

http://dlang.org/interfaceToC.html

There's a few things to be aware of (especially on Windows), but this series of articles covers them very well: http://www.gamedev.net/blog/1140/entry-2254003-binding-d-to-c/

August 17, 2012
Nick Sabalausky wrote:
> On Fri, 17 Aug 2012 00:20:10 +0200
> "TJB" <broughtj@gmail.com> wrote:
> 
> > D Masters,
> > 
> > I'm not a hardware guy at all, but I find myself needing to process a lot of data through some Monte Carlo statistical algorithms.  I am considering general purpose GPU computing for this task.  My question is how feasible will it be to wrap the Nvidia cuBLAS and cuRAND libraries for this purpose?  They are written in C, so is it pretty straight forward?
> > 
> > I do not have in mind running D code directly on the GPU cores, but having D call out to C code to do so.  Is it possible? Feasible?  Are there already codes to do this somewhere?
> > 
> > Thanks for your insights!
> > 
> > TJB
> 
> Accessing/wrapping C libs in general is pretty straightforward in D:
> 
> http://dlang.org/interfaceToC.html
> 
> There's a few things to be aware of (especially on Windows), but this series of articles covers them very well: http://www.gamedev.net/blog/1140/entry-2254003-binding-d-to-c/

And once you have converted the header files please consider creating a pull request for cuBLAS and cuRAND for Deimos (https://github.com/D-Programming-Deimos).

Jens
August 17, 2012
On 2012-08-17 01:27, Nick Sabalausky wrote:

> Accessing/wrapping C libs in general is pretty straightforward in D:
>
> http://dlang.org/interfaceToC.html
>
> There's a few things to be aware of (especially on Windows), but this
> series of articles covers them very well:
> http://www.gamedev.net/blog/1140/entry-2254003-binding-d-to-c/

Or just use DStep to automatically generate the bindings:

https://github.com/jacob-carlborg/dstep

-- 
/Jacob Carlborg