A virtual machine designed to automatically vectorize and parallelize high-level programs for execution on various GPU architectures.
As CPU frequencies hit physical limits, processors are becoming increasingly parallel with multiple cores, similar to GPUs. GVM addresses this convergence by providing:
- Auto-vectorization: Automatically convert sequential code to vector operations
- Auto-parallelization: Automatically distribute work across multiple cores/threads
- Cross-platform execution: Run on different GPU architectures through a unified intermediate language
- Functional programming paradigm: Leverage functional programming concepts for easier parallelization
High-Level Languages (C, Python, Rust, etc.)
↓
GVML (GPU Virtual Machine Language) - Intermediate Representation
↓
Auto-Vectorization & Parallelization Engine
↓
Target-Specific Code Generation
↓
GPU Backends (RISC-V RVV, MIAOW, Nyuzi, Libre-SOC, etc.)
- GVML Compiler: Translates high-level languages to GVML
- GVML Runtime: Executes GVML bytecode with auto-vectorization
- Backend Adapters: Target-specific code generators for different GPU ISAs
- Optimization Engine: Analyzes and optimizes parallel execution patterns
[Documentation will be added as the project develops]
See docs/foss-gpu-isa/overview.md for supported open source GPU architectures.