Skip to content

import1bones/GVM

Repository files navigation

GVM - GPU Virtual Machine

A virtual machine designed to automatically vectorize and parallelize high-level programs for execution on various GPU architectures.

Vision

As CPU frequencies hit physical limits, processors are becoming increasingly parallel with multiple cores, similar to GPUs. GVM addresses this convergence by providing:

  1. Auto-vectorization: Automatically convert sequential code to vector operations
  2. Auto-parallelization: Automatically distribute work across multiple cores/threads
  3. Cross-platform execution: Run on different GPU architectures through a unified intermediate language
  4. Functional programming paradigm: Leverage functional programming concepts for easier parallelization

Architecture

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.)

Components

  • 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

Getting Started

[Documentation will be added as the project develops]

Supported Backends

See docs/foss-gpu-isa/overview.md for supported open source GPU architectures.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages