D and Heterogeneous Computing

Robert Jacques sandford at jhu.edu
Mon Apr 9 17:54:42 PDT 2012


On Sun, 08 Apr 2012 21:49:48 -0500, Josh Klontz <josh.klontz at gmail.com> wrote:

> On Saturday, 7 April 2012 at 18:47:21 UTC, Robert Jacques wrote:
>> On Sat, 07 Apr 2012 11:38:15 -0500, Josh Klontz
>> <josh.klontz at gmail.com> wrote:
>>
>>> Greetings! As someone with a research interest in software
>>> abstractions for image processing, the D programming language
>>> appears to offer unsurpassed language features for constructing
>>> beautiful and efficient programs. With that said, what would
>>> really get me to abandon C++ is if D supported a heterogenous
>>> programming model.
>>>
>>> My personal inclination would be something closer to OpenACC
>>> than
>>> anything else I've seen available. Though only in the sense
>>> that
>>> I like the idea of writing code once and being able to
>>> compile/run/debug it with or without automatic
>>> vectorization/kernelization. Presumably we could achieve more
>>> elegant syntax with tighter integration into the language. Has
>>> anyone been working on anything like this? Is this something
>>> the
>>> community would be interested in seeing? What should the
>>> solution
>>> look like?
>>>
>>> One path forward could be a patch to the compiler to generate
>>> and
>>> execute OpenCL kernels for appropriately marked-up D code.
>>> While
>>> I'm new the the D language, I'd be happy to work on a proof of
>>> concept of this if it is something the community thinks would
>>> be
>>> valuable and I could get specific feedback about the right way
>>> to
>>> approach it.
>>>
>>
>> I've been using D with CUDA via a high-level wrapper around the
>> driver API. It works very nicely, but it doesn't address the
>> language integration issues. Might I recommend looking into
>> hooking up LDC to the PTX LLVM back-end. That would seem much
>> faster than writing your own back-end.
>
> Yes, I certainly don't want to be in the business of writing
> back-ends. Another idea that came to mind recently was
> implementing a keyword similar in spirit to "asm":
>
> opencl {
>   // Valid opencl code here
> }
>
> And have the compiler automatically handle memory copying of D
> variables referenced in the kernel code. Would be entirely
> back-end independent and perhaps pleasant to implement?
>

IIRC, doesn't OpenCL support jit-ing ASCII source files? Then, there wouldn't be a need for any language changes.


More information about the Digitalmars-d mailing list