merge: TurboQuant KV cache types onto upstream master (MTP built-in)
This commit is contained in:
+15
-1
@@ -429,7 +429,10 @@ extern "C" {
|
||||
GGML_TYPE_MXFP4 = 39, // MXFP4 (1 block)
|
||||
GGML_TYPE_NVFP4 = 40, // NVFP4 (4 blocks, E4M3 scale)
|
||||
GGML_TYPE_Q1_0 = 41,
|
||||
GGML_TYPE_COUNT = 42,
|
||||
GGML_TYPE_TURBO3_0 = 42, // TurboQuant 3-bit KV cache: 2-bit PolarQuant + 1-bit QJL
|
||||
GGML_TYPE_TURBO4_0 = 43, // TurboQuant 4-bit KV cache: 3-bit PolarQuant + 1-bit QJL
|
||||
GGML_TYPE_TURBO2_0 = 44, // TurboQuant 2-bit KV cache: 2-bit PolarQuant (no QJL)
|
||||
GGML_TYPE_COUNT = 45,
|
||||
};
|
||||
|
||||
// precision
|
||||
@@ -567,6 +570,7 @@ extern "C" {
|
||||
GGML_OP_RWKV_WKV7,
|
||||
GGML_OP_SOLVE_TRI,
|
||||
GGML_OP_GATED_DELTA_NET,
|
||||
GGML_OP_TURBO_WHT,
|
||||
|
||||
GGML_OP_UNARY,
|
||||
|
||||
@@ -2555,6 +2559,16 @@ extern "C" {
|
||||
struct ggml_tensor * beta,
|
||||
struct ggml_tensor * state);
|
||||
|
||||
// TurboQuant Walsh-Hadamard Transform (O(d log d) rotation for KV cache compression)
|
||||
// Applies WHT rotation to 128-element groups along ne[0]: sign1 → butterfly → sign2 → normalize
|
||||
// direction: 0 = forward (signs1 → WHT → signs2), 1 = inverse (signs2 → WHT → signs1)
|
||||
GGML_API struct ggml_tensor * ggml_turbo_wht(
|
||||
struct ggml_context * ctx,
|
||||
struct ggml_tensor * a,
|
||||
int direction,
|
||||
int group_size, // 0 = auto (64 or 128 from ne[0])
|
||||
struct ggml_tensor * scale); // NULL = no InnerQ scaling
|
||||
|
||||
// custom operators
|
||||
|
||||
typedef void (*ggml_custom1_op_t)(struct ggml_tensor * dst , const struct ggml_tensor * a, int ith, int nth, void * userdata);
|
||||
|
||||
Reference in New Issue
Block a user