VSL is a V library to develop Artificial Intelligence and High-Performance Scientific Computations.
Important
The pure-V QR path (geqrf/orgqr) is still being aligned; the related test is
temporarily skipped. Other BLAS/LAPACK routines pass, and C backends
(-d vsl_blas_cblas -d vsl_lapack_lapacke) are recommended when you need QR
correctness today.
VSL now features 100% pure V implementations of BLAS and LAPACK that deliver excellent performance while requiring zero external dependencies. These implementations are production-ready and provide a compelling alternative to C backends.
- β Zero Dependencies: No need to install OpenBLAS or LAPACK system libraries
- β High Performance: Competitive performance with optimized C backends
- β Cross-Platform: Works consistently across all platforms supported by V
- β Production Ready: Stable implementations with comprehensive test coverage
Run comprehensive benchmarks to see performance characteristics:
# BLAS benchmarks
v run benchmarks/blas_bench.v
# LAPACK benchmarks
v run benchmarks/lapack_bench.v
# Compare backends
v run benchmarks/compare_backends.v| Backend | Description | Compilation Flag | Best For |
|---|---|---|---|
| Pure V | 100% V implementation | NONE (default) |
Zero-dependency deployment, cross-platform |
| OpenBLAS | Optimized C library | -d vsl_blas_cblas |
Maximum performance when C libraries available |
| LAPACKE | Standard LAPACK C interface | -d vsl_lapack_lapacke |
Maximum performance for LAPACK operations |
Recommendation: Start with the pure V backend for simplicity and zero dependencies. Use C backends when maximum performance is critical and system libraries are available.
See Pure V BLAS/LAPACK Release Notes for detailed information.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Visit VSL Documentation to explore all supported features and APIs.
VSL is a comprehensive Scientific Computing Library offering a rich ecosystem of mathematical and computational modules. The library provides both pure-V implementations and optional high-performance backends through established C and Fortran libraries.
- Linear Algebra: Complete matrix and vector operations, eigenvalue decomposition, linear solvers
- Machine Learning: Clustering algorithms (K-means), classification (KNN), regression, and NLP tools
- Numerical Methods: Differentiation, integration, root finding, polynomial operations
- Data Visualization: Advanced plotting with Plotly-style API supporting 2D/3D charts
- Scientific Computing: FFT, statistical analysis, probability distributions
- Parallel Computing: MPI support and OpenCL acceleration
- Data I/O: HDF5 integration for scientific data formats
VSL provides flexible performance options:
- Pure V Implementation: High-performance, dependency-free BLAS/LAPACK implementations
- Optimized Backends: Optional integration with OpenBLAS, LAPACK, and MPI for maximum performance
- GPU Acceleration: OpenCL support for computationally intensive operations
Pure V BLAS/LAPACK implementations deliver competitive performance while eliminating external dependencies. Benchmark results demonstrate excellent performance characteristics across a wide range of problem sizes.
Each module clearly documents compilation flags and backend requirements, allowing users to choose the optimal configuration for their specific use case.
VSL supports multiple installation methods and deployment options to fit different development workflows.
Via V's built-in package manager:
v install vslVia vpkg:
vpkg get https://github.com/vlang/vslFor the best development experience with all optional dependencies pre-configured:
-
Install Docker on your system
-
Clone the starter template:
git clone https://github.com/ulises-jeremias/hello-vsl cd hello-vsl -
Follow the setup instructions in the template's README
This approach provides:
- Pre-configured environment with V, VSL, and all optional dependencies
- Cross-platform compatibility (Windows, Linux, macOS)
- Isolated development environment
- Access to optimized BLAS/LAPACK libraries
For enhanced performance, you can install optional system libraries:
- OpenBLAS/LAPACK: Linear algebra acceleration
- OpenMPI: Parallel computing support
- OpenCL: GPU acceleration
- HDF5: Scientific data format support
Refer to individual module documentation for specific compilation flags.
To test the module, just type the following command:
v test .VSL includes comprehensive performance benchmarks using V's built-in benchmark module:
# Run all BLAS benchmarks
v run benchmarks/blas_bench.v
# Run all LAPACK benchmarks
v run benchmarks/lapack_bench.v
# Compare pure V vs C backends
v -d vsl_blas_cblas run benchmarks/compare_backends.vBenchmark results show performance characteristics for:
- BLAS Level 1: Vector operations (dot product, norms, scaling)
- BLAS Level 2: Matrix-vector operations (GEMV, GER)
- BLAS Level 3: Matrix-matrix operations (GEMM, SYRK)
- LAPACK: Linear system solvers, factorizations, eigenvalue problems
See benchmarks/README.md for detailed benchmark documentation.
Made with contributors-img.








