src/pygpukit/ops/
└── nn.py (885 lines - all NN ops)
src/pygpukit/ops/nn/
├── __init__.py (exports)
├── activation.py (gelu, silu, relu, sigmoid, tanh)
├── norm.py (layernorm, rmsnorm)
├── attention.py (sdpa_causal, sdpa_causal_fixed_cache)
└── rope.py (rope_inplace, rope_inplace_f32table)
Problem
src/pygpukit/ops/nn.pyis 885 lines and should match the native nn/ structure from #133.Current State
Proposed Structure (aligned with #133)
Benefits
Related