The goal of the RustGPU project is to make GPU computing available within the Mozilla Rust language, while following the common programmatic idioms of Rust and without sacrificing performance. The software is an addition to the Mozilla Rust compiler to support a small amount of extra language syntax, in the form of an embedded DSL, to allow Rust programmers to express GPU computations within Rust.
This effort started out as a course project by two PhD students in my B649 (Parallel Architectures and Programming). A paper on this work has already been accepted for publication in a workshop and was well received. In a short period of just two months, and after about 4,500 lines of mainly Rust code (that is possibly an integer factor more productive than C / C++), the code is available in open source. During the course of this development several updates related to the internal OpenCL bindings of the Rust compiler were submitted, and accepted, into the main Rust compiler code base.
- Eric Holk, Milinda Pathirage, Arun Chauhan, Andrew Lumsdaine and Nicholas D. Matsakis. GPU Programming in Rust: Implementing High-level Abstractions in a Systems-level Language. In 18th International Workshop on High-level Parallel Programming Models and Supporting Environments (HIPS), 2013. Held in conjunction with the 27th IEEE International Parallel and Distributed Processing Symposium (IPDPS).