OpenCL node

Node that loads OpenCL or CUDA text code, similar to loading shader shader toy node.

Would enable super fast maths for mesh generation, or any processor intensive maths, (particlesystem? Flocking? Physics?)

I’ve opened this feature request for community voting (however I removed CUDA from the title).

CUDA is NVIDIA-only; OpenCL is cross-vendor — so I’m thinking it would make more sense for Vuo to support OpenCL. Also, here are the GPUs in Apple’s current product line:

Product GPU
MacBook Intel HD Graphics 5300
MacBook Air Intel HD Graphics 6000
MacBook Pro Intel Iris Graphics 6100, Intel Iris Pro Graphics, AMD Radeon R9 M370X
iMac Intel HD Graphics 6000, Intel Iris Pro Graphics 6200
Mac Pro AMD FirePro D300, AMD FirePro D500
Mac Mini Intel HD Graphics 5000, Intel Iris Graphics

(That is, you can’t even buy a Mac that supports CUDA these days…)

Oh, also… Vuo already supports OpenGL vertex and geometry shaders, as well as transform feedback — so it’s already possible to implement fairly sophisticated GPU-accelerated particle/flocking/physics simulations.

OpenCL would however open doors for simulations of water or cloth etc. Not to mention if there there was an OpenCL version of “make parametric mesh”!

That would be fantastic for large meshes!

We could also use OpenCL for audio computations. Very useful for a FFT function.

OpenCL is perfectly suited for physically modeled synthesis and scanning synthesis. In both cases we are simply using OpenCL to do maths on data structures and pushing out a wavetable, so not processing audio samples directly.

OpenCL is also great for converting images into arrays, and vice-versa, on the GPU.


1 Like

Apple seems to be dropping further OpenCL and OpenGL development to focus on Metal. How will this affect Vuo?

There is a related discussion on Deprecation of OpenGL and OpenCL.

1 Like

@useful_design remember that one aspect of Metal, DX12 & Vulkan is to make compute shaders part of the standard and easier to load. So if Vuo were to be ported to Metal (or Vulkan with a Metal translation layer- which has no overhead- such as MoltenVK), it may mean getting Compute for free! :-)  

Sure, I haven’t graduated to OpenGL/OpenCL code so remains a bit moot for me. I guess just want to see Vuo thrive in Apple ecosystem.

Although, I’m pretty ambivalent at the hefty price of the iMacPro or spec’d up MBP when I went in the other day. And no MacPro to bother thinking about.

Both my Apple laptops 2012 and 2015 have had hardware issues, 2012 got motherboard replace under factory warranty (only b/c a class action against Apple forced them to do MB replacements). All kinds of WiFI and system freeze crap on 2015 and just when about to take in for lid replacement the 2012 just stops starting up, so dead, when I need it as full time replacement.

So I’m for the first time in nearly 40 years of using Apple (starting with Apple ][) thinking could my next purchase be a Windows/Linux desktop and run Adobe CC at 3 to 8 times the speed I am now on a MBP for up to half the price of a replacement new MBP and forget about FCP/Motion which I never learnt much good anyhow…

Decisions, decisions…  

I’m kind of moving towards wanting that Python or JS patch more than anything.

I like to play with math and geometry, and I guess OpenGL is a smart way to do that but above my comprehension ATM. Maybe I should look at Processing for a while as that’s it’s bread and butter, then bring what I learn back to Vuo/Touch Designer.

I’m attempting to learn Haskell out of academic interest, it’s very pure functional language that is lambda functions from go to woe. Now that could make an interesting Vuo node with lambda function outputs that some stock nodes could receive so long as the function argument datatype matched up.  

@useful_design if you need custom logic in Vuo, remember that one can already make custom nodes quite easily with a bit of C knowledge. The Vuo team also has a great tutorial series on this aspect of Vuo as well.

Obviously if one is learning Python and JS then learning C isn’t that much more of a jump. In fact its a not specifically an OOP language, so its much more direct in many cases. (however remember one could do OOP with C, but its much more complex - that is why C++ exists) :-)

In regard to future purchases, I’m still at a crossroads. I am a heavy user of Logic, so that isn’t on the PC (an never will be). However I have been using GNU/Linux for many programming tasks and loving the simplicity of installing anything how I want, and changing anything I like.

For video Blackmagic Resolve is really the only serious player on GNU/Linux (as Adobe CC only supports Linux for their creative cloud servers).

Personally for me this probably means the purchase of more computers in the short term. :-(  

Thanks Alex, I go in bursts of activity on Vuo. I haven’t bit the bullet on coding nodes, though I did download the Qt kit, which was a bit arduous to get going for me and start on “Learn C the Hard Way” (public criticisms of it not withstanding) when it was in Beta and free. I got distracted with trying to learn pointers etc then got distracted by something else. Will come back one day. I’m handy at JS and did complete one book on Python for Beginners from the library 7 years ago. Like all things without daily use it all gets forgotten to a large extent.

I do love the idea of building a set of 3D/4D Point and data list handling nodes to geometrical things like reflections/folding (rotation of a point set) in 3D space about an arbitrary axis. There’s heaps of things I like to make in Vuo, just need the time and focus. It frustrates me that I can’t just make stuff the way I can in QC, which is much more intuitive to me, I can just follow my nose in QC and not worry to much about code structure.