
Matrix Computations on the GPU in Clojure - dragandj
http://neanderthal.uncomplicate.org/articles/tutorial_opencl.html
======
savodj
Finally! This looks awesome. But then, now i have to find an AMD graphics
card. Any chance that this works on NVIDIA?

~~~
dragandj
In principle, it works on Nvidia, but Nvidia still does not support 1.2...
But, new pluggable engine for OpenCL 1.2 is in plan, and it will have
optimizations for Nvidia, so, it is not something that is out of reach.

~~~
silja1
So the library does not depend on OpenCL version or does?

~~~
dragandj
The library does NOT depend on the version, since it supports pluggable
engines. Currently the only available engine is focused on AMD GCN GPUs and
uses OpenCL 2.0 features in its kernels. Other engines are possible and
planned, notably one that would work with older versions of OpenCL and support
tuning for Nvidia.

------
hellofunk
This is really exciting, thanks for sharing. OpenCL is probably the future of
everything. AMD is going to be an important part of it for sure. Fantastic to
see this explained in the Clojure context; it feels right at home!

~~~
dragandj
If you are interested in programming your own GPU algorithms in clojure and
opencl, also look at
[http://clojurecl.uncomplicate.org](http://clojurecl.uncomplicate.org)

------
Mikera
This is great stuff, but it should really be designed as a core.matrix
implementation rather than providing it's own API.

The last thing the Clojure community needs is fragmentation with more
incompatible libraries.

------
rfeague
What are a few good practical examples of the kinds of problems I'd solve with
this?

~~~
tomjen3
I wrote my master thesis on General purpose GPU programming. The only two
reasons you want to code for the GPU is that it can be much faster for some
workloads (basically identical computation which can be trivially parralized)
and (in some cases) because it can use much less power.

In the particular case of matrix multiplications, lots of problems can be
described as matrices (say googles website ranking) and doing calculations on
huge matrices is a thing the GPU is great at. That said it is unlikely to be
something most people want.

------
dzhiurgis
So what is the most practical language currently for GPU processing?

~~~
hendzen
C++.

~~~
dragandj
Or, hopefully, Clojure ;)

