Hi, I wondered, if it isn't about time to sit together and discuss the bindings between Julia, OpenGL and OpenCL and define APIs and a general structure. I'm always tending to ignore CUDA, as I don't like to support something that tries to enforce a monopoly, but I guess it can't be ignored it should be put into the mix as well...
When I read through the mailing-list, it seems that there are multiple people working on this, but without a lot of inter communication between the parties. I hope we can change this, as for example the OpenGL and OpenCL packages should be developed very congruently. A lot of things are very similar between OpenGL and OpenCL. For example, automatic kernel/shader generation, or Arrays, that need to be uploaded/downloaded to video memory. It would be a pity, if we develop completely different APIs for these operation, and even worse, have redundant code. I must admit, planning this all out goes a little bit over my expertise and time budget. But I would be very happy to participate in a discussion and redefine the OpenGL package accordingly. It would be incredibly awesome, if we can build an API with an unified and concise way of defining kernels, that can be run in parallel on any kind of back-end. The final transformations of the data for a nice visualization should also work hand in hand with this. Topics that need to be discussed (that I can think of, there are definitely more) - What is the right platform to discuss this? (a new mailing-list? Julia-dev? Github?) - Is it possible to create efficient kernel code from LLVM code for OpenGL, CUDA, OpenCL - What are the alternatives - How does an array/datatypes need to be designed, to work with Julia/OpenCL/OpenGL seamlessly - How to glue everything together - Syntax for choosing the device and operation - Make more hardware information available in Julia, to enable macros like @OpenGL3.3? I hope we can find a few people and work together on this! Best, Simon
