
High-level overview focusing on graph structure, search-based compilation, and visualization:
Luminal is built around a directed acyclic graph (DAG) representation where:
The Nova driver is a two-tier GPU driver architecture written in Rust for NVIDIA GPUs. It consists of two main components that work together:
This is the low-level hardware abstraction layer that directly interfaces with the GPU hardware.
Entry Point:
rustc
that compiles native rust code
(albeit a sub-set of it) to spir-v
Stuff that happens at each stage in the front-end
Rust is a relatively young, but increasingly popular, systems programming language that emphasizes safety, performance, and concurrency. Developed by Mozilla, its stable version 1.0 was released in 2015.
Here's why Rust is gaining traction, especially in areas like AI:
#mlir #llvm #compiler
Plan for Building a Backend in Cranelift
/cranelift/codegen/src/isa
, where each backend resides.TargetIsa
: Specifies the target architecture’s interface.LowerBackend
: Manages instruction lowering for the architecture.KernelDefinition { inputs: [Binding { location: Storage, visibility: Read, item: Item { elem: Float(F32), vectorization: Some(1) | |
}, size: None | |
} | |
], outputs: [Binding { location: Storage, visibility: ReadWrite, item: Item { elem: Float(F32), vectorization: Some(1) | |
}, size: None | |
} | |
], named: [("info", Binding { location: Storage, visibility: Read, item: Item { elem: UInt, vectorization: None | |
}, size: None | |
}) | |
], cube_dim: CubeDim { x: 4, y: 1, z: 1 |