个人网站如何建立仓库出入库管理系统

张小明 2025/12/31 18:45:10
个人网站如何建立,仓库出入库管理系统,wordpress getcomments,北京工程建设交易平台训练营简介 2025年昇腾CANN训练营第二季#xff0c;基于CANN开源开放全场景#xff0c;推出0基础入门系列、码力全开特辑、开发者案例等专题课程#xff0c;助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证#xff0c;即可领取精美证书#xff0c;完成…训练营简介 2025年昇腾CANN训练营第二季基于CANN开源开放全场景推出0基础入门系列、码力全开特辑、开发者案例等专题课程助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证即可领取精美证书完成社区任务更有机会赢取华为手机平板、开发板等大奖。报名链接https://www.hiascend.com/developer/activities/cann20252#cann-camp-2502-intro前言在 Transformer 的军备竞赛中KV Cache一直是显存杀手。MHA (Multi-Head Attention)显存占用巨大性能好。GQA (Grouped-Query Attention)LLaMA 采用的方案显存减半但仍有瓶颈。MLA (Multi-Head Latent Attention)DeepSeek 提出的方案通过低秩投影将 KV 压缩为一个极小的Latent Vector。MLA 的神奇之处在于推理时它看起来像是 MHA算力强但显存占用比 GQA 还低。这是通过数学上的“矩阵吸收”技巧实现的。但在算子层面这意味着我们不能简单地套用 FlashAttention。我们需要处理两路 Query一路用于内容一路用于 RoPE和压缩的 KV。本期文章我们将深入 DeepSeek 的心脏用 Ascend C 复现这一精妙设计。一、 核心图解把大象装进火柴盒MLA 的核心思想是不要直接存储巨大的 $K$ 和 $V$ 矩阵而是存储它们“压缩”后的形态 $c_{KV}$。二、 算法原理解耦 RoPE 与 矩阵吸收2.1 压缩 (Compression)在 MLA 中Key 和 Value 共享一个压缩的隐向量 $c_{KV}$。$$c_{KV} X \cdot W_{DKV}$$这是我们在显存中实际存储的东西KV Cache。2.2 解耦 RoPE (Decoupled RoPE)由于 RoPE 对位置敏感不能直接压缩。DeepSeek 将 Query 和 Key 拆分为两部分Content Part (内容部分)携带语义信息参与压缩。RoPE Part (位置部分)携带位置信息不参与压缩单独计算。2.3 矩阵吸收 (The Magic)在推理阶段我们需要计算 $Q^T K$。 原始公式$q [q_{content}, q_{rope}], k [UP(c_{KV}), k_{rope}]$ 其中 $UP$ 是升维矩阵 $W_{UK}$。如果不优化我们需要先把 $c_{KV}$ 升维回 $k_{content}$这会浪费算力。 MLA 的技巧是将升维矩阵$W_{UK}$吸收到 Query 的投影矩阵中。$$Score (q_{content} W_{UQ}) \cdot c_{KV}^T (q_{rope} \cdot k_{rope}^T)$$结论在算子层面我们需要同时进行两个矩阵乘法一个针对 Latent一个针对 RoPE然后相加。三、 实战Ascend C 实现 Fused MLA Kernel我们需要实现一个融合算子输入是 Query 的两个部分和压缩后的 KV Cache。3.1 Kernel 类定义输入q_content_absorb: 吸收了 $W_{UK}$ 的 QueryShape[B, 1, H, LatentDim]。q_rope: 原始的 RoPE QueryShape[B, 1, H, RopeDim]。kv_latent: 压缩的 KV CacheShape[B, SeqLen, LatentDim]。k_rope: 缓存的 RoPE KeyShape[B, SeqLen, RopeDim]。class KernelMLA { public: __aicore__ inline void Init(...) { // Init... // Tiling 策略 // 由于 LatentDim 通常较小 (e.g. 512)而 SeqLen 很长 // 我们依然采用 FlashDecoding 的 Split-K 策略 } __aicore__ inline void Process() { // 并行处理 SeqLen 分块 } };3.2 Compute 核心逻辑双路 Attention这是 MLA 与标准 FlashAttention 最大的不同Score 是两部分之和。__aicore__ inline void Compute(int32_t i) { // 1. Load Data // Latent Stream DataCopy(qContentLoc, qContentGm, ...); DataCopy(kvLatentLoc, kvLatentGm[offset], blockSize * latentDim); // RoPE Stream DataCopy(qRopeLoc, qRopeGm, ...); DataCopy(kRopeLoc, kRopeGm[offset], blockSize * ropeDim); // 2. Compute Score Part 1: Content (Latent) // S_content Q_absorbed * C_kv^T // 这是一个 [1, Latent] * [Block, Latent]^T 的 GEMV Matmul(sContent, qContentLoc, kvLatentLoc); // 3. Compute Score Part 2: RoPE (Position) // S_rope Q_rope * K_rope^T // 这是一个 [1, Rope] * [Block, Rope]^T 的 GEMV // 注意kRopeLoc 需要在 Host 侧预先做过 RoPE 旋转或者在这里做 // DeepSeek 通常缓存的是旋转后的 K_rope Matmul(sRope, qRopeLoc, kRopeLoc); // 4. Fuse Scores // S S_content S_rope // Ascend C 向量加法 Add(scoresLoc, sContent, sRope, blockSize); // 5. Softmax Update // 后续逻辑与标准 FlashDecoding 一致 (Online Softmax) // ... Softmax ... // 6. Compute Output // O P * V // 注意这里的 V 也是压缩的 Latent Vector (c_KV) // 也就是说我们不需要读两遍内存c_KV 既充当 K 也充当 V (部分共享) // 或者 DeepSeek 可能有独立的 c_V视具体配置而定 // 假设 V c_KV (KV 解耦不完全时) 或者 V c_V Matmul(outputLoc, probsLoc, kvLatentLoc); // [1, Block] * [Block, Latent] // 7. Write Back // ... }四、 性能优化的“胜负手”MLA 算子的性能瓶颈在于Vector (Add) 与 Cube (Matmul) 的频繁切换。4.1 流水线掩盖我们有两路 MatmulContent 和 RoPE。优化策略启动Matmul(Content)。在等待 Content 结果时启动DataCopy(RoPE)。启动Matmul(RoPE)。 利用多级流水线掩盖小矩阵计算的 Latency。4.2 显存复用 (Cache Locality)MLA 的精髓在于 $c_{KV}$ 非常小。 在计算 $QK^T$ 和 $PV$ 时如果 $V$ 也是基于 $c_{KV}$ 投影的或者直接复用那么 $c_{KV}$ 只需要加载一次到 L1就可以被两个 Matmul 阶段复用Ascend C 实现确保kvLatentLoc在 UB/L1 中常驻直到 $QK^T$ 和 $PV$ 都算完再释放。这比标准 FlashAttention读 K 再读 V节省了一半的带宽。4.3 吸收矩阵的预计算虽然这不属于 Kernel 内部但作为算子开发者必须告诉算法同事 $W_{UQ}$和$W_{UK}$的合并必须在 Host 侧或模型初始化时完成。如果在 Kernel 里现场做 $Q \cdot W_{UK}$MLA 的性能优势将荡然无存。五、 总结DeepSeek 的 MLA 架构是算法与算子协同设计 (Co-design)的典范。算法层通过低秩分解减少存储。算子层通过矩阵吸收减少计算通过双路 Attention 保持精度。Ascend C利用高带宽的 UB 复用 Latent Vector完美契合 MLA 的“小数据、高计算”特性。掌握了 MLA 算子你不仅能看懂 DeepSeek 的论文更能亲手部署这个当前最强的开源模型。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎么创建网站快捷方式wordpress内存溢出

这道题当然可以暴力求解,O(N^2),但是有时候并不会通过,因此要想一个时间复杂度为O(N)的方法。如果说用滑动窗口肯定会有人会有疑问,这怎么用?下面直接说解法:首先left与right分别指向数组的两边…

张小明 2025/12/31 18:44:07 网站建设

男生和女生做污的事情免费网站wordpress版本伪装

17个实战EA源码:海龟马丁趋势交易策略深度解析 【免费下载链接】EA源码集合海龟马丁趋势等17个源码 本仓库提供了一个包含17个EA(Expert Advisor)源码的压缩文件,文件名为“EA集源码海龟,马丁,趋势等源码共…

张小明 2025/12/31 18:43:34 网站建设

给网站做翻译外贸企业网站系统

探索CDF:网络频道订阅与管理全攻略 1. 网络订阅的优势与工具对比 在网络浏览中,用户希望具备以下能力: - 更好地跟踪所订阅的网站。 - 当频道或收藏夹更新时接收通知。 - 在线或离线查看系统上的内容。 曾经,Netscape仅提供原始的手动网站/书签检查工具。虽然它最近开…

张小明 2025/12/31 18:43:02 网站建设

wordpress 三栏怎么弄资阳aso优化招聘

Anthropic悄悄发布了可能是2025年最实用的AI功能。它不是更华丽的模型或更好的基准测试。它更简单:一种无需编写一行代码就能让Claude学习你特定工作流程的方法。他们称之为技能。这可能比去年让所有人都议论纷纷的模型上下文协议更重要。技能究竟是什么&#xff1f…

张小明 2025/12/31 18:42:30 网站建设

外国做爰网站长沙专业的建站按效果付费

10分钟精通MTKClient:小白也能上手的联发科设备调试全攻略 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient MTKClient是一款专为联发科芯片设备打造的开源调试工具,通…

张小明 2025/12/31 18:40:54 网站建设

建设网站以什么为导向如何在线实现手机版网站建设

负margin揭秘:Bootstrap布局中row与container-fluid的隐藏技巧 负margin揭秘:Bootstrap布局中row与container-fluid的隐藏技巧先别晕,负margin不是“黑魔法”Bootstrap栅格系统:三件套的分工八卦负margin到底背了什么锅&#xff1…

张小明 2025/12/31 18:40:22 网站建设