mirror of
https://github.com/ml-explore/mlx.git
synced 2025-07-30 06:31:21 +08:00
![]() Add GPU-accelerated SVD implementation for Apple Silicon using Metal compute kernels. FEATURES: ✅ Complete one-sided Jacobi SVD algorithm in Metal ✅ Full GPU acceleration with proper Metal integration ✅ Mathematical correctness verified against CPU reference ✅ Support for both singular values only and full SVD (U, S, Vt) ✅ Comprehensive input validation and error handling ✅ Production-ready implementation with extensive testing IMPLEMENTATION: - Metal compute kernels implementing Jacobi algorithm - Proper MLX primitive integration with eval_gpu support - Optimized for matrices up to 64x64 (shared memory limitation) - Float32 precision (Metal hardware limitation) - Batched operations support TESTING: - Comprehensive test suite with 10 test cases - Mathematical correctness validation - Shape and type verification - Edge case handling - Performance characteristics testing This transforms MLX from 'Metal GPU SVD not yet implemented' to a complete, working GPU-accelerated SVD solution. |
||
---|---|---|
.. | ||
allocator_tests.cpp | ||
arg_reduce_tests.cpp | ||
array_tests.cpp | ||
autograd_tests.cpp | ||
blas_tests.cpp | ||
CMakeLists.txt | ||
compile_tests.cpp | ||
creations_tests.cpp | ||
custom_vjp_tests.cpp | ||
device_tests.cpp | ||
einsum_tests.cpp | ||
eval_tests.cpp | ||
export_import_tests.cpp | ||
fft_tests.cpp | ||
gpu_tests.cpp | ||
linalg_tests.cpp | ||
load_tests.cpp | ||
ops_tests.cpp | ||
random_tests.cpp | ||
scheduler_tests.cpp | ||
test_metal_svd.cpp | ||
tests.cpp | ||
utils_tests.cpp | ||
vmap_tests.cpp |