Who wouldn't like to program with CUDA dynamically, in an interactive, but compiled, environment? I present an interactive approach to accelerating dynamic functional programs with GPU kernels.
I developed ClojureCUDA an ClojureCL, libraries that integrate CUDA and OpenCL into a Clojure environment, which compiles to Java bytecode and integrates into ubiquitous Java enterprise ecosystem. They help programmers discover the solutions by growing GPU programs inside a live session, by constantly learning and experimenting with instant results, rather than having to specify the whole GPU program right away, compile it, and run it to see the result.
CUDA and parallel programming are complex and brittle. Interactive programming is indispensable when the details of the solution are not certain beforehand. For both the novice and the expert, the instant feedback is of great help. We aim at full CUDA power at a low level and offer a nice dynamic environment and the power of LISP to automate grudge work without hiding the important details of CUDA kernels.
ClojureCUDA demonstrates this in Bayadera and Neanderthal projects. The resulting programs are novel, require typically very little code (low thousands instead of hundreds of thousands), have little if any overhead, and, what is unusual, have equivalent functionality an similar performance on both Nvidia (CUDA) and AMD (OpenCL) hardware.
I developed ClojureCUDA an ClojureCL, libraries that integrate CUDA and OpenCL into a Clojure environment, which compiles to Java bytecode and integrates into ubiquitous Java enterprise ecosystem. They help programmers discover the solutions by growing GPU programs inside a live session, by constantly learning and experimenting with instant results, rather than having to specify the whole GPU program right away, compile it, and run it to see the result.
CUDA and parallel programming are complex and brittle. Interactive programming is indispensable when the details of the solution are not certain beforehand. For both the novice and the expert, the instant feedback is of great help. We aim at full CUDA power at a low level and offer a nice dynamic environment and the power of LISP to automate grudge work without hiding the important details of CUDA kernels.
ClojureCUDA demonstrates this in Bayadera and Neanderthal projects. The resulting programs are novel, require typically very little code (low thousands instead of hundreds of thousands), have little if any overhead, and, what is unusual, have equivalent functionality an similar performance on both Nvidia (CUDA) and AMD (OpenCL) hardware.
Interactive, Functional, GPU Accelerated Programming in Clojure – Dragan Djuric | |
18 Likes | 18 Dislikes |
818 views views | 1,162 followers |
Science & Technology | Upload TimePublished on 17 Sep 2018 |
Không có nhận xét nào:
Đăng nhận xét