
Conv1D朴素.h// Conv1D朴素.h —— 一维深度卷积声明Gated DeltaNet 的输入处理// 用途对 qkv 向量与历史做深度卷积每通道独立核长 4再经 SiLU 激活// 说明这是 Mamba 系架构的标志性组件——把当前输入与最近历史混合产生局部上下文感知#pragmaonce// 引入基础类型浮点/向量#include公共/基础定义.h// Conv1D朴素一维深度卷积每通道独立// 参数历史 最近几个输入向量外层 历史位置[旧→新]内层 通道值缺位即历史不足补 0// 当前 当前输入向量长度 通道数// 核 卷积核权重长度 核长度×通道数核[k*通道数c] 第 k 个位置的通道 c 权重// 核长度 卷积核长度qwen35moe 为 4通道数 每通道维度8192// 输出 卷积结果长度 通道数// 公式每通道独立输出[c] Σ_{k0}^{核长度-1} 输入_{t-核长度1k}[c] × 核[k][c]// 说明输入序列按时间展开——「历史[0] 是最近的前一个输入」卷积从当前时间步向前回看voidConv1D朴素(const向量向量浮点历史,constfloat*当前,constfloat*核,size_t 核长度,size_t 通道数,float*输出);Conv1D朴素.cpp// Conv1D朴素.cpp —— 一维深度卷积实现Gated DeltaNet 的输入处理// 用途对 qkv 向量与历史做深度卷积每通道独立核长 4输出供 SiLU 激活// 说明深度卷积depthwise是 Mamba 系架构的标志——每个通道独立卷积// 把当前输入与最近 3 个历史输入混合产生局部上下文感知。#include内核/DeltaNet/Conv1D朴素.h// Conv1D朴素一维深度卷积每通道独立// 说明时间展开——当前时间步 t 的输入 当前向量历史[0] 是 t-1、历史[1] 是 t-2 ...// 卷积窗口覆盖 [t-核长度1 .. t]缺位首个 token补 0// 公式每通道独立输出[c] Σ_{k0}^{核长度-1} 输入_{t-核长度1k}[c] × 核[k][c]voidConv1D朴素(const向量向量浮点历史,constfloat*当前,constfloat*核,size_t 核长度,size_t 通道数,float*输出){// 逐通道独立卷积深度卷积for(size_t c0;c通道数;c){浮点 累加0.0f;// 卷积窗口从最早的可见位置到当前共 核长度 个时间步// 窗口内位置 j0最早 .. 核长度-1当前输入来源 历史 或 当前for(size_t j0;j核长度;j){// 从当前回看位置 j核长度-1 是当前输入j核长度-2 是历史[0]j核长度-3 是历史[1]...constsize_t 回看步数核长度-1-j;// 0当前, 1历史[0], 2历史[1]...constfloat输入值(回看步数0)?当前[c]:(回看步数-1历史.size())?历史[回看步数-1][c]:0.0f;// 历史不足补 0// 核存储布局GGUF ne0 连续核[k][c] 地址 核[c*核长度 k]// ne0核长度 是连续轴每通道的 核长度 个核值连续constfloat核权重核[c*核长度j];累加输入值*核权重;}输出[c]累加;}}