243243
244244#define GGML_MROPE_SECTIONS 4
245245
246+ #define GGML_DELTA_NET_CHUNK 64
247+
246248#define GGML_UNUSED (x ) (void )(x)
247249#ifdef __CUDACC__
248250template <typename ... Args>
@@ -472,6 +474,7 @@ extern "C" {
472474 GGML_OP_COS,
473475 GGML_OP_SUM,
474476 GGML_OP_SUM_ROWS,
477+ GGML_OP_CUMSUM,
475478 GGML_OP_MEAN,
476479 GGML_OP_ARGMAX,
477480 GGML_OP_COUNT_EQUAL,
@@ -527,6 +530,7 @@ extern "C" {
527530 GGML_OP_TIMESTEP_EMBEDDING,
528531 GGML_OP_ARGSORT,
529532 GGML_OP_LEAKY_RELU,
533+ GGML_OP_TRI,
530534
531535 GGML_OP_FLASH_ATTN_EXT,
532536 GGML_OP_FLASH_ATTN_BACK,
@@ -539,6 +543,7 @@ extern "C" {
539543 GGML_OP_RWKV_WKV6,
540544 GGML_OP_GATED_LINEAR_ATTN,
541545 GGML_OP_RWKV_WKV7,
546+ GGML_OP_DELTA_NET,
542547
543548 GGML_OP_UNARY,
544549
@@ -612,6 +617,13 @@ extern "C" {
612617 GGML_TENSOR_FLAG_LOSS = 8 , // ...defines loss for numerical optimization (multiple loss tensors add up)
613618 };
614619
620+ enum ggml_tri_type {
621+ GGML_TRI_TYPE_UPPER_DIAG = 0 ,
622+ GGML_TRI_TYPE_UPPER = 1 ,
623+ GGML_TRI_TYPE_LOWER_DIAG = 2 ,
624+ GGML_TRI_TYPE_LOWER = 3
625+ };
626+
615627 struct ggml_init_params {
616628 // memory pool
617629 size_t mem_size; // bytes
@@ -975,6 +987,10 @@ extern "C" {
975987 struct ggml_context * ctx,
976988 struct ggml_tensor * a);
977989
990+ GGML_API struct ggml_tensor * ggml_cumsum (
991+ struct ggml_context * ctx,
992+ struct ggml_tensor * a);
993+
978994 // mean along rows
979995 GGML_API struct ggml_tensor * ggml_mean (
980996 struct ggml_context * ctx,
@@ -2119,6 +2135,17 @@ extern "C" {
21192135 int shift2,
21202136 int shift3);
21212137
2138+ // Make matrix into a triangular one (upper, upper + diagonal, lower or lower + diagonal) with constant value
2139+ GGML_API struct ggml_tensor * ggml_tri (
2140+ struct ggml_context * ctx,
2141+ struct ggml_tensor * a,
2142+ float constant,
2143+ enum ggml_tri_type tritype);
2144+
2145+ GGML_API struct ggml_tensor * ggml_tri_keep (
2146+ struct ggml_context * ctx,
2147+ struct ggml_tensor * a,
2148+ enum ggml_tri_type tritype);
21222149
21232150 // Ref: https://github.com/CompVis/stable-diffusion/blob/main/ldm/modules/diffusionmodules/util.py#L151
21242151 // timesteps: [N,]
@@ -2289,6 +2316,18 @@ extern "C" {
22892316 struct ggml_tensor * b,
22902317 struct ggml_tensor * state);
22912318
2319+ GGML_API struct ggml_tensor * ggml_delta_net (
2320+ struct ggml_context * ctx,
2321+ struct ggml_tensor * q,
2322+ struct ggml_tensor * k,
2323+ struct ggml_tensor * v,
2324+ struct ggml_tensor * g,
2325+ struct ggml_tensor * beta,
2326+ struct ggml_tensor * state,
2327+ bool use_qk_l2norm,
2328+ float scale,
2329+ float eps_norm);
2330+
22922331 // custom operators
22932332
22942333 typedef void (*ggml_custom1_op_t )(struct ggml_tensor * dst , const struct ggml_tensor * a, int ith, int nth, void * userdata);
0 commit comments