2012 · 72 citations · 5 references
ComputingComputer EngineeringComputer ScienceComputer GraphicsParallel ComputingProgramming LanguagesGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingKernel DesignKernel ProgrammingDynamic Memory AllocationGpu Runtime SystemsMemory AllocationObjectsReference Types
When converting a serial program to a parallel program that can run on a Graphics Processing Unit (GPU) the developer must choose what functions will run on the GPU. For each function the developer chooses, he or she needs to manually write code to: 1) serialize state to GPU memory, 2) define the kernel code that the GPU will execute, 3) control the kernel launch and 4) deserialize state back to CPU memory. Rootbeer is a project that allows developers to simply write code in Java and the (de)serialization, kernel code generation and kernel launch is done automatically. This is in contrast to Java language bindings for CUDA or OpenCL where the developer still has to do these things manually. Rootbeer supports all features of the Java Programming Language except dynamic method invocation, reflection and native methods. The features that are supported are: 1) single and multi-dimensional arrays of primitive and reference types, 2) composite objects, 3) instance and static fields, 4) dynamic memory allocation, 5) inner classes, 6) synchronized methods and monitors, 7) strings and 8) exceptions that are thrown or caught on the GPU. Rootbeer is the most full-featured tool to enable GPU computing from within Java to date. Rootbeer is highly tested. We have 21k lines of product code and 6.5k lines of test cases that all pass on both Windows and Linux. We have created 3 performance example applications with results ranging from 3X slow-downs to 100X speed-ups. Rootbeer is free and open-source software licensed under the GNU General Public License version 3 (GPLv3).
5
Scalable parallel programming with CUDA
John Nickolls, Ian Buck, Michael Garland et al. · 2008 · 1.6K citations
Scalable Parallel Programming with CUDA
John Nickolls, Ian Buck, Michael Garland et al. · Queue · 2008 · 1.6K citations · Full text
Seyong Lee, Seung-Jai Min, Rudolf Eigenmann · 2009 · 413 citations
Implementing the PGI Accelerator model
Michael Wolfe · 2010 · 172 citations
PyCUDA: GPU Run-Time Code Generation for High-Performance Computing
Andreas Klöckner, Nicolas Pinto, Yunsup Lee et al. · 2009 · 81 citations