Zig
Read more about Implementing Autodiff: Static Dispatch and Compile Time Interfaces
Implementing Autodiff: Static Dispatch and Compile Time Interfaces
This follow-up article explores how Zig's compile-time features can enforce type safety while providing extensibility for autodiff frameworks like Zigrad. It introduces the Operation abstraction for uniform treatment of computation graph nodes and emphasizes balancing flexibility, performance, and maintainability in low-level design.
Marco Christiani


Marco Christiani
3
min read
Read more about Implementing Autodiff: First Attempts at Zig Abstractions
Implementing Autodiff: First Attempts at Zig Abstractions
This article documents some of the early design decisions made when creating Zigrad. It discusses implementing scalar-valued computation graphs, the trade-offs between simplicity and extensibility, and the challenges of designing abstractions in a language without native interface features. Key lessons learned inform the groundwork for future tensor-valued implementations.
Marco Christiani


Marco Christiani
5
min read