27 lines
1.0 KiB
Plaintext
27 lines
1.0 KiB
Plaintext
// fast numerics: intermediate activations f16 (no FP8 re-quantisation), f32 accumulation through GEMM chains
|
|
#define SWIN_NO_Q8
|
|
#define SWIN_F32ACC
|
|
#ifndef SWIN_MAX_VGPR
|
|
#define SWIN_MAX_VGPR 192
|
|
#endif
|
|
#ifndef SWIN_MLP_R
|
|
#define SWIN_MLP_R(NW) 2
|
|
#endif
|
|
// NGX can recycle a weights address for another tube block after feature
|
|
// recreation. Address-only caching then serves stale packed weights, so
|
|
// d4r_prep_key_at stays 0 (ZLUDA prepares every launch). MicroCUDA instead keys
|
|
// preparation by allocation identity (d4r_prep_identity_at): one image per tube
|
|
// weight set (6 per evaluation), re-prepared on any free/reallocation or write.
|
|
#define SWIN_PREP_KEY_AT 0
|
|
#define SWIN_PREP_IDENTITY_AT 1
|
|
#define SWIN_PREP_SLOTS 8
|
|
// RDNA4 native FP8 builds use the token-lane block (swin_tok.h); -DSWIN_NO_TOKEN_LANES keeps swin_block.h
|
|
#ifndef SWIN_NO_TOKEN_LANES
|
|
#define SWIN_TOKEN_LANES
|
|
#endif
|
|
#include "swin_block.h"
|
|
#ifndef SWIN_NW
|
|
#define SWIN_NW 8
|
|
#endif
|
|
SWIN_MODULE_W(rrlite_enc3_tube_4x4, 128, 4, SWIN_NW, 0, true, TubeParams, 0)
|