GDN chunkwise P1.1: chunk C=64 refactor neutre, oracle 28/28+pp98 OK, squelette pret pour intra-chunk batch
This commit is contained in:
parent
837d9de766
commit
f638bdbd94
|
|
@ -21,3 +21,4 @@ Risque: HMX fp16 accum non bit-exact — OK prefill (decode CPU exact). Frontiè
|
|||
Récurrence/token: S(SxS)*=gate ; sum=S·k ; δ=(v-sum)·β ; S+=k⊗δ ; out=S·q. Helpers: gdn_mul_dot4_f32 (decay+S·k), gdn_add_scaled_dot4_f32 (rank1+S·q), kda=vecteur/scalar gate. Sériel sur n_tokens = ancre.
|
||||
Chunkwise C=64: A=tri(K K^T) corrigé β,gate → W=(I-A)^-1 ; intra: out += (Q K^T tri)·V ; inter: out += Q·S, S=gate·S+K^T(βV). 3 GEMM CxS au lieu de 3·S² rank1/tok. f32 d'abord, bit-exact oracle, gain cache. C=64 mappe tuile HMX. Gate: GGML_HEXAGON_GDN_CHUNK=1 opt-in tant que pas validé.
|
||||
Étapes: (1) refactor pp en boucle de chunks C=64 (1 chunk=ancien path) -> 28/28 inchangé. (2) intra-chunk parallèle f32. (3) bench. risque=δ inter-chunk gate, garder pp_thread comme fallback C=1.
|
||||
P1.1 FAIT: chunk loop C=64 in gated-delta-net-ops.c:626, calcul identique, oracle 28/28 + pp512=98 = neutre. ql=fork local (.git propre). Suite: intra-chunk GEMM. Build pp512 = ~30s ninja htp-v79.
|
||||
|
|
|
|||
Loading…
Reference in New Issue