Exploring exocompilation in visual effects kernel libraries development
Most people don’t understand the need for exocompilation,
As the demands for more sophisticated and visually stunning 3D graphics and effects continue to rise, the need for faster High-performance kernel libraries that speed up matrix-matrix multiplication and convolutional neural network kernel operations rise as well,
Developers in visual effects usually make the libraries in low level programing languages like C or assembly which requires a manual approach to optimise the code and they may be complex and unintuitive to develop,
And the resulting hardware-software interfaces to accelerators are complex and including specialized memories, exposed configuration states,
Exocompilation frameworks externalise as much as possible accelerator-specific code-generation logic and optimization policy from the compiler,
A great example of it is Exo language, which is allowing affining loops and array indexing directly in the language the user is making the application into,
It represents a shift in the interaction between developers and hardware accelerators, streamlining the development process while unlocking new optimization possibilities.
Through its unique approach to exocompilation, Exo grants developers unprecedented control over hardware-specific programming, enabling maximum utilization of available hardware capabilities.
Consider the optimization of a critical VFX task—ray tracing:


This function is engineered to calculate each pixel's color by simulating the interaction of light with objects within a virtual 3D scene, a process ideally suited for Exo's optimization capabilities.
Enhancing Ray Tracing with Exo's Scheduling Capabilities:


By segmenting the image into manageable blocks and intelligently reordering the computation, this scheduling technique effectively harnesses GPU capabilities to process multiple segments concurrently, significantly accelerating rendering times.
Beyond ray tracing, exocompilation can enhance the development of other vital operations within 3D graphics and visual effects, including simulations of particle systems, fluid dynamics, and real-time shader computations. Each task stands to gain from adaptable programming framework, achieving unmatched performance enhancements.
To learn more about exo language check out their github page.
The future of exocompilation is promising,
Exocompilation will continues to equip the visual effects community with robust tools needed to address the most demanding rendering challenges,
Other languages like exo will be developed to break the bridge between ease of high-level programming and granular hardware control,
It will facilitates future innovations in 3D graphics and visual effects,
That’s it for today.
Enjoy the rest of your week.
Oriol