5.5 KiB
RustyTorch++ Benchmark Report
Generated: December 9, 2025 Commit: 2250e35 Framework: RustyTorch++ - Production-Ready GPU-Accelerated ML Framework in Pure Rust
System Specifications
| Component | Details |
|---|---|
| OS | Ubuntu 24.04.3 LTS (Noble Numbat) |
| Kernel | Linux 6.8.0-88-generic |
| CPU | 12th Gen Intel Core i7-12650H |
| CPU Config | 10 cores / 16 threads @ 4.7 GHz max |
| GPU | NVIDIA GeForce RTX 3050 Ti Laptop |
| GPU Memory | 4096 MiB |
| Compute Capability | 8.6 |
| Driver Version | 580.105.08 |
| System Memory | 32 GB |
Executive Summary
| Metric | Value |
|---|---|
| Benchmarks Executed | 18 |
| Training Optimization | 6x speedup |
| Peak Throughput | 1.0 Melem/s |
| 100 Epochs (Optimized) | ~80 ms |
Benchmark Results
Forward Pass Performance
| Configuration | Points | Time | Throughput | Status |
|---|---|---|---|---|
| Standard (lffn_mlp) | 200 | 3.99 ms | 50.1 Kelem/s | Baseline |
| Standard (lffn_mlp) | 1,000 | 17.3 ms | 57.8 Kelem/s | -2.4% |
| Standard (lffn_mlp) | 10,000 | 167.0 ms | 59.9 Kelem/s | -3.8% |
| Optimized (workspace) | 200 | 261.6 µs | 764.4 Kelem/s | 15x faster |
| Optimized (workspace) | 1,000 | 282.0 µs | 3.55 Melem/s | 61x faster |
| Optimized (workspace) | 10,000 | 1.18 ms | 8.46 Melem/s | 141x faster |
| Optimized (workspace) | 100,000 | 10.4 ms | 9.66 Melem/s | Peak |
Training Step Performance
| Configuration | Points | Time | Throughput | Speedup |
|---|---|---|---|---|
| Standard (single_step) | 200 | 4.69 ms | 42.6 Kelem/s | Baseline |
| Standard (single_step) | 1,000 | 19.5 ms | 51.2 Kelem/s | Baseline |
| Workspace Optimized | 200 | 831.9 µs | 240.4 Kelem/s | 5.6x |
| Workspace Optimized | 1,000 | 1.06 ms | 945.8 Kelem/s | 18x |
| Cached Tensors | 200 | 4.72 ms | 42.4 Kelem/s | ~1x |
| Cached Tensors | 1,000 | 19.2 ms | 52.1 Kelem/s | ~1x |
| Fully Optimized | 200 | 792.8 µs | 252.3 Kelem/s | 5.9x |
| Fully Optimized | 1,000 | 997.8 µs | 1.0 Melem/s | 19.5x |
Full Training (100 Epochs)
| Configuration | Points | Total Time | Per Epoch | Speedup |
|---|---|---|---|---|
| Standard | 200 | 472.0 ms | 4.72 ms | Baseline |
| Cached | 200 | 473.4 ms | 4.73 ms | ~1x |
| Fully Optimized | 200 | 79.9 ms | 0.80 ms | 5.9x |
What Was Accomplished
December 9, 2025 - Key Developments
Commit 2250e35 - Apple Metal GPU Backend
Complete Metal support for Apple Silicon (M1/M2/M3/M4):
metal_backend.rs- Device discovery, buffer allocation, command encodingmetal_compute.rs- Shader compilation and pipeline managementmetal_blas/mod.rs- MPS GEMM wrapper (~7 TFLOPS on M1 Max)metal_ops.rs- High-level tensor operation dispatch
Commit 48d5b21 - CoW Storage Bug Fix
Fixed copy-on-write storage bug for CUDA in-place operations
Commit 6a6e85a - CUDA Compilation Fix
Unified cudarc to 0.18.1, fixed rtx-runtime CUDA compilation
Commit 75bf793 - Zero-Copy CUDA
Zero-copy CUDA storage access for cuBLAS matmul operations
Commit b59b98b - 9x Training Speedup
Cached PDE tensors + workspace optimization for PINN training
Metal Shading Language Kernels
| Kernel File | Operations | Status |
|---|---|---|
elementwise.metal |
add, sub, mul, div, neg, abs, sqrt, exp, log, fma | Complete |
activations.metal |
ReLU, sigmoid, tanh, GELU, SiLU (forward/backward) | Complete |
fourier.metal |
sin/cos for Fourier features, positional encoding | Complete |
reductions.metal |
sum, mean, max, min with threadgroup memory | Complete |
Performance Analysis
Key Insights
-
Workspace Optimization: Pre-allocated workspace tensors provide the largest performance gain (15-141x for forward pass)
-
Throughput Scaling: Throughput improves with batch size, reaching 9.66 Melem/s at 100K points
-
Caching Caveat: Simple tensor caching shows minimal benefit; workspace reuse is more impactful
-
Memory Bandwidth: RTX 3050 Ti (4GB VRAM) handles PINN workloads efficiently for research-scale problems
Optimization Recommendations
| Workload | Recommended Config | Expected Performance |
|---|---|---|
| Small batches (<1K) | Fully Optimized | ~800 µs/step, 250 Kelem/s |
| Medium batches (1K-10K) | Workspace Optimized | ~1 ms/step, 1.0 Melem/s |
| Large batches (>10K) | Workspace Optimized | ~10 ms/step, 9.6 Melem/s |
| Full training loop | Fully Optimized | 80 ms/100 epochs (5.9x faster) |
Recent Commits
2250e35 feat: Add Apple Metal GPU backend for Apple Silicon
b5ae923 dashboard updates
394e580 docs: Update README with honest benchmarks and performance roadmap
9617eea docs: Update README with performance benchmarks and CUDA improvements
48d5b21 fix: Fix CoW storage bug for CUDA in-place operations
6a6e85a fix: Unify cudarc to 0.18.1 and fix rtx-runtime CUDA compilation
75bf793 Add zero-copy CUDA storage access for cuBLAS matmul operations
3324a90 Add MKL feature flag to pinn_mre_helmholtz example
4c57370 Fix yanked ort dependency and add MKL BLAS backend support
b59b98b perf(pinn): 9x training speedup via cached PDE tensors + workspace optimization
RustyTorch++ | Production-Ready GPU-Accelerated ML Framework in Pure Rust Generated by benchmark automation | Commit: 2250e35