Wonder if there'd be any lisp or clojure dsl that compiles down to fairly minimal c/cpp, so that you wouldn't have to have the cuda program be a string
Cuda program doesn't have to be a string. I keep them in regular .cu files, and just load them with slurp into clojure repl.
yes but wouldn't it be nice to be able to emit CUDA/OpenCL code from an AST so that you could use your Clojure functions on the GPU without duplication ?
It wouldn't since most of Clojure functions would be poor match for the GPU hardware.