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.