[PD-dev] CUDA discussion
Claude Heiland-Allen
claudiusmaximus at goto10.org
Mon Nov 2 16:12:25 CET 2009
Hey,
Some brief initial thoughts:
http://en.wikipedia.org/wiki/CUDA
pro: better than OpenGL GPGPU hackery
pro: API/ABI-stable for foreseeable future
con: only one hardware vendor
-vs-
http://en.wikipedia.org/wiki/OpenCL
pro: royalty free standard with several vendors
pro: works on cpus as well as gpus
con: newer, may be API/ABI-unstable
-vs-
http://faust.grame.fr/catalog.php
pro: dataflow language optimized for DSP
pro: has backend for Pd already
con: works by translation via C++
> Any project worth doing is worth doing right. So, I want to figure
> out if: a) it's worth doing
Sufficiently-parallel DSP on GPU is probably worth doing, but only
benchmarks will tell. Parallel DSP could either be multichannel or
blocky (no data dependencies between samples in the same block) or a
mixture of both at different parts of the graph.
> b) how to do it right.
I did have an idea that went something like this:
1. write ugens in Faust, compile them into dsp objects, link, load
2. write a transaction-based patcher environment (or dataflow language)
wherein transactions (such as multiple object creation deletion
connection etc) can be committed atomically (with OSC-style bundle time
tags etc)
3. translate the generated networks of dsp objects back to Faust code
4. compile that Faust code into a new dsp object, link, load, run
5. rinse, repeat
So, an OpenCL backend (instead of C++ backend) for Faust is the missing
link...
Claude
--
http://claudiusmaximus.goto10.org
More information about the Pd-dev
mailing list