LogoYet Another 何榜文's Blog

Yet Another 何榜文's Blog

Torch Chunked Gated Delta Rule 并行优化指南
发表于2026-03-19|AI 系统
引言在实现 Chunked Gated Delta Rule 时,原始代码中存在两个明显的性能瓶颈,阻碍了 GPU 并行计算的高效执行。本文将详细分析这两个问题,并提供针对性的优化方案。 原始代码分析以下是原始实现中的关键代码片段: 12345678910111213141516171819202122232425262728293031323334def torch_chunk_gated_delta_rule( query, key, value, g, beta, chunk_size=64, initial_state=None, output_final_state=False, use_qk_l2norm_in_kernel=False,): # ... 省略初始化和 reshape 代码 ... mask = torch.triu(torch.ones(chunk_size, chunk_size, dtype=torch.bool, device=query.device), diagonal=0) # chun...
SonicMoE - 加速 MoE 模型的 IO 与 Tile 感知优化
发表于2026-03-18|论文解读AI 系统
SonicMoE: 加速 MoE 模型的 IO 与 Tile 感知优化 论文地址: https://arxiv.org/abs/2512.14080代码开源: https://github.com/Dao-AILab/sonic-moe作者: Wentao Guo, Mayank Mishra, Xinle Cheng, Ion Stoica, Tri Dao 背景:MoE 模型的趋势与挑战近年来,混合专家模型 (Mixture of Experts, MoE) 已成为扩展大语言模型的主流架构。与 Dense 模型相比,MoE 可以在不显著增加计算成本的前提下大幅提升参数量。 MoE 的两个核心趋势从最新的开源模型(如 DeepSeek-V3、Qwen3 MoE、Kimi K2)可以看出两个明显的趋势: 细粒度 (Fine-grained): 专家的中间维度越来越小 Mixtral 8x22B: d/n = 0.38 DeepSeek-V3: d/n = 3.50 Qwen3-Next: d/n = 4.00 ...
ARM 架构深度学习推理指令集的演进与技术范式分析报告
发表于2026-03-13
ARM 架构深度学习推理指令集的演进与技术范式分析报告在现代计算架构的演进过程中,ARM 架构已从最初的嵌入式低功耗设计,逐步成长为覆盖移动端、数据中心、超级计算机以及边缘计算的全能型架构。这一转型的核心驱动力之一,便是为了应对深度学习(Deep Learning)和人工智能(AI)推理任务对计算效率、算力密度以及能效比的极致追求。从最初的通用向量扩展 NEON,到专为量化计算设计的 DotProd 和 I8MM,再到代表未来高性能计算范式的可伸缩矢量扩展(SVE)与可伸缩矩阵扩展(SME),ARM 指令集架构(ISA)的演变深刻地反映了计算范式从标量向向量,再由向量向矩阵的重大跃迁 。 第一章 ARM 深度学习指令集的历史演进脉络ARM 架构的深度学习推理能力并非一蹴而就,而是伴随着 ARMv7 到 ARMv9 的架构更迭,经历了数个关键的技术周期。 1.1 初期探索:NEON 与通用 SIMD 时代在深度学习爆发之前,多媒体处理、图形渲染和音频编解码是并行计算的主要需求。2011年,ARM 在 ARMv7-A 架构中正式引入了 Advanced SIMD 技术,即 NEON ...
软件工程中的 SOLID 原则
发表于2026-03-12
在软件工程中,SOLID原则就像是建筑工程中的力学规范。它们不是硬性的语法规定,而是为了解决软件开发中最为头疼的问题:代码的腐化(Code Rot)。当你的代码变得难以维护、改一处坏十处、或者无法测试时,通常是因为违背了这些原则。 下面我们就逐一拆解这五个核心原则。 单一职责原则和接口隔离原则:如何划分模块和接口,即保持简单精细 里式替换原则和依赖倒置原则:设计类与类之间的关系,面向抽象和多态 开闭原则:最终的设计目标,易于拓展的软件架构 S - 单一职责原则 (SRP) 出发点:一个类应该只有一个引起它变化的原因。 解决问题:高耦合。如果一个类承担了太多的功能(比如既处理数据逻辑,又处理文件保存),那么当保存格式变化时,可能会无意中破坏数据逻辑的代码。 核心痛点:如果你在 Employee 类里既写薪水计算,又写 HTML 报表生成,那么当财务规则改变或 UI 风格改变时,你都得去改同一个文件,这会大大增加回归测试的压力。 个人理解:SRP 告诉我们如果类写得太大的话,我们应该如何拆分这个类 / 函数。与之相关的一个实践是,函数最好能够被一个屏幕放下。 ...
Chunkwise 并行算法 —— 线性注意力
发表于2026-03-06
为了在现代硬件上实现高效训练,Mamba2 和 DeltaNet 都通过分块并行(Chunkwise Parallel)策略将 $O(L)$ 的线性递归改写为矩阵迭代形式。这种变换的核心思想是将长序列划分为大小为 $C$ 的块,利用矩阵乘法(Matmul)处理块内计算,通过隐藏状态传递块间信息。 1. Mamba2:状态空间二元性(SSD)的矩阵迭代推导Mamba2 的核心贡献在于证明了选择性 SSM 实际上等价于一种带有特殊掩码的线性注意力机制。 1.1 从递归到块内状态展开Mamba2 的状态更新公式(矩阵形式)为: $$S_t = \alpha_t S_{t-1} + v_t k_t^T \in \mathbb{R}^{d_v \times d_k}, \quad o_t = S_t q_t \in \mathbb{R}^{d_v}$$ 其中 $\alpha_t \in (0,1)$ 是数据相关的衰减因子。定义 $\gamma_j = \prod_{i=1}^j \alpha_i$ 为全局累积衰减,是一个标量因子。 如果只考虑端侧 C...
Gated Delta Net
发表于2026-03-05
门控增量网络(Gated Delta Network)的技术原理、性能优势与工业应用综述随着大语言模型(LLM)在长文本处理、多轮对话以及复杂指令遵循等任务中的广泛应用,传统 Transformer 架构所面临的计算挑战日益凸显。自注意力机制(Self-Attention)的计算复杂度与内存占用随序列长度 $L$ 呈二次方增长($O(L^2)$),这一“效率之墙”严重制约了模型处理超长上下文的能力 。为了突破这一瓶颈,研究界探索了多种亚线性复杂度的替代方案,其中门控增量网络(Gated Delta Network,简称 GDN 或 Gated DeltaNet)作为线性 Transformer 的演进版本,凭借其在记忆精确度与硬件效率之间的卓越平衡,正逐渐成为新一代长文本模型的核心技术 。 第一部分:Gated Delta Network 的核心原理与理论演进GDN 的设计灵感源于对现有线性递归模型局限性的深度审视。在线性 Transformer 的语境下,模型通常被视为一种基于外积的键值关联记忆(Outer-product-based key-value associative...
search-api-summary
发表于2026-03-04
搜索 API 价格汇总 API 免费额度 收费额度 其它 serpapi 250 次调用/月 高级版 1000 次调用/$25/月 API 汇总较多 grounding-bing ❌ $14/1000次调用 bing-search-api 已经停用,目前使用 grounding with bing 提供服务 百度智能云·千帆平台 100次调用/天 ¥36/1000次调用 优先扣除免费额度,每天最多调用 100’000 次(3600 元) 腾讯云 ❌ ¥30/1000次调用 高级版 ¥46/1000次调用,基于搜狗搜索引擎 智谱搜索API ❌ ¥10/1000次调用 pro 版 ¥30,pro_sougou 版 ¥50。支持意图分析,融合大模型分析选择到搜索结果中 夸克搜索 ❌ ≥ ¥25 似乎只有对公服务,而且页面有点奇葩,销售感很重 阿里云 IQS 搜索服务 试用 1000次 / 15天 ¥42/1000次调用 仅有试用版 博查搜索...
在 RKNN2 中将 ViT 的卷积层转换为矩阵乘法
发表于2025-07-03
背景在上一篇 将 ViT 的第一个卷积层转为 MatMul,要求步长和卷积核相等 中,我们介绍了如何将 ViT 的第一层卷积转换为矩阵乘法。在这篇文章中,我们将讨论这种变化在 RKNN2 工具链里带来的性能收益。 测试 模型 设备 输入尺寸 平均推理时间 (ms) 卷积层 Apple M4-CPU 1x3x384x384 3.32 ± 0.50 Cortex A57-CPU 1x3x384x384 TBD RKNN 1x3x384x384 TBD 将卷积层转为线性层 Apple M4-CPU 1x576x768 2.82 ± 0.43 Cortex A57-CPU 1x576x768 TBD RKNN 1x576x768 TBD 其他代码见 GitHub。
bfloat16 精度损失(II)
发表于2025-06-30
在上一篇 记一个关于 RMSNorm 实现上的细节 中,我们讨论了 LayerNorm 和 RMSNorm 使用 float16 格式会导致的数值溢出问题,而 bfloat16 由于数值范围较大,通常不会出现溢出问题。那么本文我们讨论 bfloat16 较之于 float16,由于数据舍入而带来的精度损失问题。 浮点数表示方式浮点数的表示方式是通过科学计数法来表示一个实数。float16 和 bfloat16 都是浮点数格式,但它们的精度和范围不同,具体比特划分如下。 比特位 float16 bfloat16 符号位 1 1 指数位 5 8 尾数位 10 7 max 65504 3.38953e+38 min 6.10351e-05 1.17549e-38 resolution 0.001 0.01 可以看到,bfloat16 在指数位上使用了 8 位,而 float16 只使用了 5 位,这使得 bfloat16 在表示更大范围的数值时更加灵活。但是 bfloat16 的尾数位更短,相比于 float16,它在进行数值运算时会引入更多的舍入...
记一个 Tokenizers 版本兼容性问题
发表于2025-06-23
表现当使用较低版本的 tokenizers 库加载版本较高的 tokenizer.json 时,会出现低版本不兼容高版本 tokenizer.json 的问题。代码如下: 12345678910111213141516171819202122232425262728import jsonfrom huggingface_hub import hf_hub_downloadimport tokenizersfrom tokenizers import Tokenizerprint(f"{tokenizers.__version__ = }")def load_tokenizer_and_transformers_version(model_id): tokenizer_filepath = hf_hub_download(repo_id=model_id, filename="tokenizer.json") try: tokenizer = Tokenizer.from_file(tokeniz...
12…5
avatar
何榜文
文章
42
标签
58
分类
4
Follow Me
公告
One week is 2% of a year
最新文章
Torch Chunked Gated Delta Rule 并行优化指南2026-03-19
SonicMoE - 加速 MoE 模型的 IO 与 Tile 感知优化2026-03-18
ARM 架构深度学习推理指令集的演进与技术范式分析报告2026-03-13
软件工程中的 SOLID 原则2026-03-12
Chunkwise 并行算法 —— 线性注意力2026-03-06
分类
  • AI 系统1
  • Effective STL6
  • 论文解读1
    • AI 系统1
标签
Qwen cosplay CUDA bfloat16 性能优化 transformer MoE STL llama.cpp String Whisper Vision Transformer Transformers deepseek GPU 多模态大模型 ONNX arm ViT PyTorch 并行计算 MHA std::threads MNN TTS Delta Rule Algorithms Python Vector 综述 Qwen2.5-VL 数值精度 GQA LayerNorm Effective STL LLaMa2 software engineer FlashAttention2 MQA Containers
归档
  • 三月 2026 7
  • 七月 2025 1
  • 六月 2025 5
  • 四月 2025 1
  • 三月 2025 2
  • 二月 2025 6
  • 十一月 2024 3
  • 十月 2024 1
网站信息
文章数目 :
42
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2025 - 2026 By 何榜文框架 Hexo 7.3.0|主题 Butterfly 5.5.4