v0.2.0-beta.1 — ML Beta
Pre-release
Pre-release
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
ComputeBackendinterface and backend-agnostic API:gemm,gemv, elementwise ops,softmax,layernorm,conv2d(backend-dependent). ComputeContextwith 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_weightlayout fix). - Fused Adam step compute shader +
vector_mul/vector_sqrtops. - Test gating via
VSL_TEST_VULKAN=1(avoids surprising users without Vulkan runtime). - macOS: Vulkan dlopen path (headers only; no system
libvulkanrequired 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
- Public API doc audit:
missing_public_docs=0(tools/audit_public_docs.py). - ML release docs:
docs/ML_ROADMAP.md,docs/ML_BETA_API_REVIEW.md. - Removed legacy
ml/nn(NN lives in VTL).
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.1Or 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-cblasUpgrade from v0.1.51
ml/nnremoved — 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)
- macOS LAPACKE (#91)
- Pure-V QR — related test temporarily skipped
- CPU
conv2d— not implemented on portable CPU backend - Org CI runners may queue; fork CI used for timely validation
Downstream: VTL
Required foundation for VTL v0.2.0-beta.1.