Vx is a systems programming language designed to make heterogeneous computing - CPU, GPU, NPU and other accelerators - an explicit part of program semantics by encoding memory location and topology into the type system. Data pinned to different memories (host DRAM, HBM, NPU-local) are distinct types and crossing them requires an explicit transfer(), so illegal host dereferences of device pointers, capacity overcommit, missing transfer visibility, or transfers across unreachable topology paths are compile-time errors rather than runtime crashes. The compiler enforces linear ownership, region-aware borrowing, SMT-checked “seam contracts” for asynchronous visibility, autodiff safety across regions, and capacity admission against a declared machine description; machine files precisely record memory hierarchies, bandwidths and interconnects (with exact integer units) for real parts like H100, M4, MI300X, etc.
Compilation uses a data-oriented parallel frontend where every symbol is a flat 256-bit identifier and monomorphized units emit deterministic MLIR; the pipeline is designed to scale without lock contention and to produce bit-identical IR across parallel builds. Backends target native CPU (x86-64, ARM64), NVIDIA GPUs (NVVM→PTX→SASS), Apple AMX/ANE via CoreML dispatch, and distributed manifests; vendors extend via MLIR pass plugins. Vx favors ahead-of-time, statically regioned programs that must be correct and fast across diverse silicon, and is deliberately unsuited to highly dynamic, exploratory workflows that mutate shapes or control flow at runtime.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.