v0.2.0
Breaking Changes
- Extensible coords / dataflow architecture - by @caelyreth (972a4)
- Align sparse stack with MLX-native execution - by @caelyreth (2590b)
- Route pooling through relation execution plan - by @caelyreth (d3d9e)
- Add relation views for fast sparse backward - by @caelyreth (dfff0)
- Pin to mlx 0.31.1 to resolve cuda deps issue - by @caelyreth (48607)
- Say goodbye to mlx cuda, night mare - by @caelyreth (b4726)
Features
- Coordinate primitive + baseline kernels - by @caelyreth (11b13)
- Feature execution primitive
spmm_edges- by @caelyreth (f0602) - MLX flavour lazy graph architecture - by @caelyreth (68ad8)
- Neighborhood relations baseline implementation - by @caelyreth (e90a7)
- Quantization and voxelization baseline implementation - by @caelyreth (b5e3f)
- Target convolution baseline support - by @caelyreth (1e23e)
- Fp16 baseline across current backends - by @caelyreth (cd262)
- Point-voxel utilities complement - by @caelyreth (d1f7f)
- Quantized convolution inference - by @caelyreth (c3865)
- conv:
- Add explicit submanifold relation path - by @caelyreth (d7f9f)
- coords:
- Add morton ordering primitive - by @caelyreth (d640f)
- Add occupancy expansion helpers - by @caelyreth (e4bb2)
- cuda:
- Baseline implementation of cuda operations - by @caelyreth (2bdf9)
- Baseline optim for relation + pool + conv specialist - by @caelyreth (ef623)
precompiled_cuda_kernel+ ptx for mlx - by @caelyreth (23c6c)
- entropy:
- Add native range codec - by @caelyreth (506e5)
- native:
- Edge pooling reductions - by @caelyreth (49dfd)
- Autograd for sparse SpMM and edge pooling - by @caelyreth (fc7f3)
- Re-introduce native conv3d Metal baseline - by @caelyreth (85908)
- py:
- Setup sparse tensor API stub - by @caelyreth (07a59)
- Canonical map layer with spec + view split - by @caelyreth (cdbe4)
- Convolution public API stubs - by @caelyreth (fbb14)
- Pooling public API - by @caelyreth (61532)
- Sparse feature ops - by @caelyreth (ab259)
- Sparse nn wrappers - by @caelyreth (9d19b)
- relations:
- Add neighbor feature gather helper - by @caelyreth (0b680)
- tensor:
- Add mask pruning helper - by @caelyreth (a78c9)
- Add value-aligned sparse algebra - by @caelyreth (61f28)
Bug Fixes
- cuda:
- Native build gate - by @caelyreth (888a8)
- Add compatible layer for cuda encoder co-mlx - by @caelyreth (62d44)
- Binding + linking issue - by @caelyreth (ab8f9)
- Route relations through precompiled runtime - by @caelyreth (883ea)
- Correct jvp call site - by @caelyreth (46096)
- Correct jvp metadata related processing - by @caelyreth (e142a)
Performance
- Csr style relation operation + hash path - by @caelyreth (f2a28)
- Use input-row relation views for backward - by @caelyreth (4bb20)
- cpu:
- Unify coord hash to fnv-1a - by @caelyreth (04ff2)
- Align relation building, transposed direct path, and hash - by @caelyreth (9b651)
- Specialist conv impls for cpu - by @caelyreth (3f468)
- entropy:
- Add direct probability rans codec - by @caelyreth (03347)
- exec:
- Add relation-backed sparse conv feature primitive - by @caelyreth (1725d)
- metal:
- Native implementation of coords operations - by @caelyreth (b0ad0)
- Add native fast paths for sparse conv and pool - by @caelyreth (a1c2f)
- Parallelize sparse conv relation planning - by @caelyreth (6b886)
- Native hash table for convolution - by @caelyreth (45a92)
- Accelerate cold kernel relation construction - by @caelyreth (71403)
- Parallel neighbor relation path - by @caelyreth (e01e0)
- Non-overlapping pooling hash based downsample - by @caelyreth (5e2b6)
- Parallel autodiff on pooling - by @caelyreth (e49d4)
- Parallel downsample + stabel compaction - by @caelyreth (35a0b)
- Unified coordinate pipeline optimize for union, intersection, downsample, quantize, voxelization - by @caelyreth (0f53d)
- Edge-wise vjp kernels for avg/sum pool - by @caelyreth (5c2ea)
- Reuse voxel quantization maps in fixed workloads - by @caelyreth (39f3c)
- Vectorize sparse conv feature paths - by @caelyreth (41e40)
- Compact kernel relations without regressing pool hot paths - by @caelyreth (d1c23)
- Implicit gemm style conv path on large N - by @caelyreth (5324a)
- Global dweight optim by sharing edge traversal, etc. - by @caelyreth (f5967)
- Parallelize stable coordinate compaction - by @caelyreth (f4684)
- Tile large sparse conv weight gradients - by @caelyreth (85b88)
- Defer and specialize relation execution views - by @caelyreth (0de63)
- Accelerate neighbor relation construction - by @caelyreth (997a7)
- Skip unused small-kernel dweight views - by @caelyreth (45f1a)
- Target convolution coordinate + relation optimized - by @caelyreth (81de7)
- First vertical slice of tensor ops, conv/conv3d_generic_dweight - by @caelyreth (3dbb6)
- Layout specific optimization for
Cin=Cout=16- by @caelyreth (367c3) - Macro generated layout specialist for 32/64 conv - by @caelyreth (2e8d4)
- Tensor-ops accelerated weight grad for backward - by @caelyreth (c25a2)
- Switching dense forward from co4 to co16 - by @caelyreth (f9f25)
- Half4 vector load store for fp16 accumulation - by @caelyreth (ebc31)
- Clamp dense conv row edge ranges before traversal - by @caelyreth (e75d6)
- Input-grad grouping optimization - by @caelyreth (b5f12)
- Non-square forward specialization - by @caelyreth (7db76)
- Asymmetric backward specialist for conv - by @caelyreth (c8bf0)
- Fp32 C64->C64 forward specialist - by @caelyreth (9aedf)
- Shared parallel quantization/voxelization optim - by @caelyreth (957ed)
- Add large-row contiguous C64 fp16 forward kernel - by @caelyreth (cae9c)
- Tensor-ops accelerated cin=cout=64 forward path - by @caelyreth (9db5b)
- Gate forward tensor-ops experiments - by @caelyreth (083a5)
- Fp32 CI4/dot-product dense forward variant - by @caelyreth (0d98d)
- Generalized fp32 CI4 subm forward route - by @caelyreth (58dfd)
- Tensor ops implicit GEMM for conv forward - by @caelyreth (776da)
- Kernel major relation tensor ops + true iGEMM - by @caelyreth (d5bae)
- Accelerate non-square convolution weight gradients - by @caelyreth (4c834)
- Implicit GEMM for quantized operation - by @caelyreth (36b57)
- native:
- Native map view constructor - by @caelyreth (7250b)