Files
foxhunt/docs/superpowers/plans/2026-03-18-gpu-dedup-consolidation.md
jgrusewski 6d8ba0708c fix(ml-supervised): resolve all 104 compile errors — clean build
- mamba/mod.rs: ~90 errors fixed — _candle suffixed functions replaced,
  operator overloads→free functions, autograd→pseudo-gradients,
  checkpoint→JSON serialization
- gpu_tensor.rs: added gpu_eye, gpu_cat_dim0, gpu_stack_tensors
- TFT/SSD: unused imports cleaned, type mismatches fixed
- ml-core: GpuTensor algebra methods (17 new), cuda_compat.rs deleted,
  GpuVarStore::vars/all_vars/linear_xavier added

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 07:26:56 +01:00

1.5 KiB

GPU Implementation Deduplication Plan

Post-candle-elimination cleanup. Consolidate duplicate GPU tensor, linear, activation, and optimizer implementations.

Goal: Single canonical implementation per GPU primitive in ml-core, with ml-ppo CudaLinear kept for its distinct ownership model.


Phase 1: Delete ml-supervised GpuTensor/GpuLinear (CRITICAL)

  • DELETE crates/ml-supervised/src/gpu_tensor.rs GpuTensor + GpuLinear definitions
  • Re-export ml_core::cuda_autograd::{GpuTensor, GpuLinear} in ml-supervised
  • Update all ml-supervised imports
  • ~200 LOC reduction

Phase 2: Consolidate activations into ml-core

  • MERGE crates/ml-ppo/src/cuda_nn/activations.rs CUDA kernels into ml-core
  • DELETE crates/ml-ppo/src/cuda_nn/activations.rs
  • Add thin wrapper in ml-ppo returning CudaVec for PPO compat
  • ~400 LOC reduction

Phase 3: Merge AdamW kernels

  • MERGE crates/ml-ppo/src/cuda_nn/adam.rs kernel source into ml-core GpuAdamW
  • Keep wrapper in ml-ppo for flat param group interface
  • ~200 LOC reduction

Phase 4: GPU-ify host-side workarounds

Priority order:

  1. gpu_clone() — cudaMemcpyDtoDAsync (trivial, HIGH frequency)
  2. add/sub/mul() — 3 element-wise CUDA kernels (~10 lines each)
  3. broadcast_mul/div() — strided CUDA kernel
  4. softmax — standard CUDA softmax kernel for attention
  5. narrow(dim>0) — 2D copy kernel
  6. argmax/mean_all — CUB reductions (LOW frequency)

Phase 5: Consolidate pointer helpers

  • Define raw_ptr()/raw_ptr_mut() once in ml-core, re-export
  • Delete 3 duplicate definitions