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