Associate Professor Jonathan Ragan-Kelley at the MIT Department of Electrical Engineering and Computer Science is a creator behind many innovative technologies used in photographic image processing and editing. Ragan-Kelley has contributed to the visual effects industry and was instrumental in designing the Halide programming language, a tool widely used in the photo editing sector.
Ragan-Kelley, who also collaborates with the MIT-IBM Watson AI Lab and the Computer Science and Artificial Intelligence Laboratory, specializes in the improved performance of domain-specific programming languages and machine learning that cater to complex 2D and 3D graphics, visual effects, and computational photography. A significant objective of his research involves the development of novel programming languages capable of running efficiently on increasingly intricate hardware devices. To continue advancing the computational power for real-world applications, from graphics to artificial intelligence, programming methods need to evolve.
In recent years, a slow-down in Moore’s law and a movement from general-purpose computing on CPUs to varied and specialized computing units such as GPUs and accelerators have been observed in the industry. This transition brings a trade-off – faster, more efficient hardware that necessitates code modifications and adaptations with tailor-fitted programs and compilers. By improving programming and leveraging newer hardware, applications like high-bandwidth cellular radio interfaces, video streaming, and power-constrained cellphone cameras can be better supported.
Ragan-Kelley’s work aims to unlock the power of the most advanced hardware to offer superior computational efficiency and performance. His strategy involves sacrificing generality to extract the structure of critical computational problems, enhancing computing efficiency. This approach manifests in the Halide language, which has revolutionized the image editing industry.
Additionally, automation is another focal point, targeting how compilers map programs to hardware. A shared project with the MIT-IBM Watson AI Lab involved the use of Exo, a language developed by Ragan-Kelley’s group. While programmers can opt for low-level code, which could introduce bugs, or higher-level programming interfaces, which provide safer contexts but significantly reduce performance, Ragan-Kelley’s team tries to strike a balance by granting greater control over compiler optimization.
To achieve enhanced compiler performance, Ragan-Kelley and his team apply machine learning and cutting-edge AI techniques to automatically produce optimized schedules. This process involves exocompilation, which transforms the compiler to allow for human guidance and customization, a feature that can help target specialized hardware like a machine-learning accelerator from IBM Research.
New computational and programming architectures are being tested in a significant project, with the aim of enhancing the running efficiency of transformer-based models on AI hardware without compromising accuracy. Ragan-Kelley emphasizes the importance of pursuing unconventional research areas because of their potential to make a practical impact. There is great value in focusing on computation efficiency and hardware because these aspects of technology are being underserved compared to their potential.
Ragan-Kelley teaches 6.106 (Software Performance Engineering), a course that addresses the importance of students understanding parallelism, optimizing memory, and using specialized hardware to achieve the best performance possible. This approach will allow for the exploitation of the computational potential of new machinery, thereby promoting the rapid development of new applications and ideas.