GPU Ocelot is an open-source dynamic JIT compilation framework for GPU compute applications targeting a range of GPU and non-GPU execution targets. Ocelot supports CUDA applications and provides an implementation of the CUDA Runtime API enabling seamless integration with existing CUDA applications. Its JIT compiler supports four backend execution targets - (1) an emulator that implements NVIDIA’s Parallel Thread Execution (PTX) instruction set architecture, (2) NVIDIA, (3) earlier generation AMD GPUs, and (4) a translator to LLVM for efficient execution of GPU kernels on multicore CPUs. Existing CUDA applications are seamlessly supported. GPU Ocelot is intended to facilitate research into three primary areas: GPU computing, compiler research, heterogeneous architectures.

Ocelot facilitates research and development on several fronts. First, Ocelot improves developer productivity of GPU compute applications by providing an infrastructure for building event trace analyzers using the emulator. Second, as a JIT compiler infrastructure, Ocelot provides facilities for compiler research including interfaces to an internal representation of PTX programs in support of optimization passes for massively data parallel computer kernels. Third, with an open source re-implementation of the CUDA runtime, Ocelot enables research into scheduling, resource allocation, and operating systems. Finally, Ocelot enables research in heterogeneous architectures via trace generation interfaces, PTX emulation and support for detailed workload characterization on GPU and CPU devices.

The source distribution and additional information can be found at http://code.google.com/p/gpuocelot/

Ocelot related project information and publications can be found at http://gpuocelot.gatech.edu

Installation instructions on Keeneland: