Computer graphics uses a range of techniques to create and manipulate both 2D and 3D images. Graphics users have to balance quality and timing when creating or adjusting images. This project addresses this tradeoff with both hardware and software techniques to accelerate ray tracing - a technique for computer graphic rendering that generates tremendously realistic images by simulating the physics of how light interacts with physical objects. While ray tracing is the gold standard for rendering realistic images where the time taken to do the rendering is less important than the quality of the final result, interactive rendering (games, data visualization, virtual reality, etc.) rely on a different technique, rasterization. Rasterization is well-supported by commercial graphics processing units (GPUs), but does not accurately represent realistic optical effects such as shadows, reflections, refraction, global illumination, glossy/specular materials. Improving the performance of ray tracing can bring its power to generate highly realistic images to bear on a whole new range of important problems that must run at interactive rates. Despite the clear advantages of ray tracing, virtually all GPUs are designed primarily to accelerate rasterization. The ray tracing cores included in some GPUs automate the ray traversal and intersection routines, but data movement remains a fundamental problem to improving performance. This project targets the data movement problem with ray tracing