Skip to content

v0.2.0-beta.1 — ML Beta

Pre-release
Pre-release

Choose a tag to compare

@ulises-jeremias ulises-jeremias released this 02 Jun 17:13
0622195

VSL v0.2.0-beta.1 — ML Beta: unified compute + GPU foundations for VTL

Paired release: VTL v0.2.0-beta.1 — install both tags together for the V ML beta stack.

Overview

This is the first ML beta release of VSL after v0.1.51 (Dec 2025). It introduces vsl.compute as the recommended integration point for downstream libraries, ships CUDA and Vulkan compute backends used by VTL training, and completes a large documentation/CI hardening pass for the beta milestone.

VSL provides the scientific + compute foundation; VTL provides tensors, autograd, NN layers, and training loops on top of this release.

Highlights

Unified compute dispatch (vsl.compute)

  • New ComputeBackend interface and backend-agnostic API: gemm, gemv, elementwise ops, softmax, layernorm, conv2d (backend-dependent).
  • ComputeContext with explicit backend selection (.cpu, .cuda, .vulkan, .vcl, .auto).
  • op_supported() capability checks aligned with per-backend support tables.
  • Portable CPU fallback is the default beta path.

CUDA backend (-d cuda)

  • cuBLAS/cuDNN integration: GEMM, GEMV, activations, softmax, LayerNorm, Conv2D.
  • GPU numerical validation tests (CPU vs GPU parity).
  • Optional cuDNN LayerNorm (-d cudnn_layernorm).
  • In-place optimizer GPU buffer helpers for Adam (used by VTL Phase 4).
  • vs NumPy benchmark harness for GEMM/GEMV/Conv2D.

Vulkan backend (-d vulkan)

  • GEMM/GEMV, elementwise ops, Conv2D (im2col + GEMM), Conv2D backward (d_weight layout fix).
  • Fused Adam step compute shader + vector_mul / vector_sqrt ops.
  • Test gating via VSL_TEST_VULKAN=1 (avoids surprising users without Vulkan runtime).
  • macOS: Vulkan dlopen path (headers only; no system libvulkan required for compile).

Scientific library (continued from 0.1.x)

  • Pure-V BLAS/LAPACK remains the portable default; optional CBLAS/LAPACKE via -d vsl_blas_cblas -d vsl_lapack_lapacke.
  • Plot module improvements (multi-line titles, ScatterGeo, BarPolar, OHLC, table traces).
  • Graph algorithms: Dijkstra, BFS.
  • LA/poly/func coverage and documentation expansions.

ML beta readiness

Stable vs experimental (beta contract)

Tier Modules / surface
Stable for beta vsl.compute (CPU path), vsl.la, vsl.lapack, vsl.metrics, vsl.preprocessing, selected vsl.ml utilities
Experimental vsl.cuda.compute, vsl.vulkan.compute, vsl.vulkan, vsl.vcl GPU paths, fused shaders, Conv2D on GPU
Internal / low-level Generated bindings, pipeline plumbing, dlopen shims

Note: CPU conv2d in ComputeBackend returns not-implemented; GPU backends implement Conv2D.

Backend matrix

Backend Flag Ops (summary) Beta role
Pure V CPU (none) gemm, gemv, elementwise, softmax, layernorm Default
C BLAS/LAPACK -d vsl_blas_cblas, -d vsl_lapack_lapacke Optimized CPU LA Production LA workloads
CUDA -d cuda + conv2d, layernorm (cuDNN) VTL CUDA training (opt-in)
Vulkan -d vulkan + conv2d, fused Adam VTL f32 Vulkan training (opt-in)
VCL/OpenCL module-specific GPU kernels Experimental; not a beta gate

Platform support (validated)

Platform Status Notes
Linux (ubuntu 22.04/24.04) Supported Primary CI target
Windows Smoke validated Compute smoke via setup-v@v1.6 + Vulkan SDK headers
macOS Known issue LAPACKE symbols in CBLAS/LAPACKE path (#91)
CUDA GPU Opt-in Dedicated GPU runner on main pushes

Installation

v install vsl@0.2.0-beta.1
v install vtl@0.2.0-beta.1

Or pin in v.mod:

Module {
    dependencies: ['vsl@0.2.0-beta.1']
}

Requires: recent V compiler (v up recommended).

Quick validation

v test vsl/blas vsl/la vsl/compute
cd vsl && ./bin/test --use-cblas

Upgrade from v0.1.51

  • ml/nn removed — use VTL for neural networks.
  • New integration point: prefer import vsl.compute.
  • QR note: pure-V QR still being aligned; use CBLAS/LAPACKE for QR correctness today.

Known issues (beta)

  1. macOS LAPACKE (#91)
  2. Pure-V QR — related test temporarily skipped
  3. CPU conv2d — not implemented on portable CPU backend
  4. Org CI runners may queue; fork CI used for timely validation

Downstream: VTL

Required foundation for VTL v0.2.0-beta.1.

Links