Expand description
§OptiRS GPU - GPU Acceleration for ML Optimization
Version: 0.1.0 Status: Framework Ready (GPU Kernels Coming Soon)
optirs-gpu provides GPU acceleration for OptiRS optimizers, built on
SciRS2’s GPU abstractions.
§Dependencies
scirs2-core0.1.1 - Required foundation
§Implementation Status (v0.1.0)
- ✅ GPU context management
- ✅ Multi-backend support framework (CUDA, Metal, OpenCL, WebGPU)
- ✅ Memory transfer utilities
- ✅ Configuration and initialization
- 🚧 GPU kernels (in development)
- 🚧 Tensor cores support (in development)
- 📝 Multi-GPU coordination (planned)
§Status: Coming Soon
This crate is under active development. GPU acceleration will leverage:
scirs2_core::gpufor GPU context and memory managementscirs2_core::tensor_coresfor mixed-precision trainingscirs2_core::array_protocol::GPUArrayfor zero-copy operations
§Planned Features
§Multi-Backend Support
- CUDA - NVIDIA GPUs with full tensor core support
- Metal - Apple Silicon M1/M2/M3 with unified memory
- OpenCL - Cross-platform GPU compute
- WebGPU - Browser and cross-platform support
§Performance Optimizations
- Tensor Cores - FP16/BF16 mixed-precision training
- Memory Pools - Advanced GPU memory management
- Kernel Fusion - Optimized kernel execution
- Multi-GPU - Distributed optimization across GPUs
§Expected Speedup
- 10-50x for large models (1M+ parameters)
- 100x+ for very large models (100M+ parameters)
- Near-linear scaling with multiple GPUs
§Example Usage (Future)
ⓘ
use optirs_gpu::GpuOptimizer;
use optirs::prelude::*;
use scirs2_core::ndarray::Array1;
// Create GPU-accelerated optimizer
let optimizer = Adam::new(0.001);
let mut gpu_opt = GpuOptimizer::new(optimizer)?;
// Use like any optimizer - GPU acceleration is automatic
let params = Array1::from_elem(1_000_000, 1.0);
let grads = Array1::from_elem(1_000_000, 0.01);
let updated = gpu_opt.step(¶ms, &grads)?;§Architecture
Built exclusively on SciRS2:
- GPU Context:
scirs2_core::gpu::GpuContext - GPU Memory:
scirs2_core::gpu::GpuBuffer - GPU Kernels:
scirs2_core::gpu::GpuKernel - Tensor Cores:
scirs2_core::tensor_cores - Zero-Copy:
scirs2_core::array_protocol::GPUArray
§Contributing
GPU acceleration development follows SciRS2 integration guidelines.
All GPU operations must use scirs2_core::gpu abstractions.
Re-exports§
pub use backends::GpuBackend;pub use memory::MemoryPool;
Modules§
- backends
- GPU Backend Abstraction Layer
- kernels
- GPU Kernel Management and Compilation
- memory
- multi_
gpu - tensor_
cores - utils
Enums§
- GpuOptim
Error - Error type for GPU optimizer operations
Traits§
- GpuOptimizer
- Trait for GPU-accelerated optimizers