top | item 18503591

CUDA 10 in Clojure

157 points| dragandj | 7 years ago |dragan.rocks | reply

19 comments

order
[+] gleenn|7 years ago|reply
Neanderthal and ClojureCUDA seem like such awesome projects, makes me wish I had more time to get into linear algebra. Is anyone doing anything fun with it they could share?
[+] cat199|7 years ago|reply
non-ANN ML is essentially a subset of linear algebra applied to statistics.

also, if you do anything involving physics simulations, (actual physics, mechanical engineering, other engineering, etc) you will likely use it.

also finance. also also also.

[+] thetricia|7 years ago|reply
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
[+] dragandj|7 years ago|reply
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.
[+] Hupriene|7 years ago|reply
I really wish clojure would adopt a heredoc syntax to make embed language snippets and docstrings nicer.
[+] OliverM|7 years ago|reply
Some codebases have adopted markdown for their docstrings, and other nice formats are only a macro away.
[+] Jach|7 years ago|reply
Clojure could just adopt user-defined reader macros instead. As expected there's an open source heredoc lib[0] for Common Lisp; the feature is so easy to add though it's probably been independently added several different ways (this uses ring buffers) to who knows how many projects.

[0] https://github.com/e-user/cl-heredoc alas gpl3, but no matter, easy to write your own

[+] didibus|7 years ago|reply
Ya, it could be a good addition. But I dunno. For docstring I'd rather it just adopted a markup which everyone used. Heredoc would create too many kind of markups for doc I feel.

And for language embeds, I'm also torned. Because in a way, it is way nicer to use EDN and create a conversion layer from it to the underlying language.

Basically, I feel like there's a lot to gain from sticking to standard Clojure syntax. Like is the case for core.logic, hiccup, garden, etc.

The benefits being, they become first class this way. And then you can build macros on top, create them through functions, etc.

[+] Zekio|7 years ago|reply
Been searching for a while trying to see if there are only CUDA libraries for Clojure and as far I can tell that is sadly the truth, no signs of any ROCm libraries available https://rocm.github.io/
[+] dragandj|7 years ago|reply
Neanderthal has an OpenCL backend, and ClojureCL can be used for programming your own stuff, and they both work fine with ROCm's OpenCL support.