一句话让Agent变成昇腾专家,不必再找人问了。评测入口:
(To Agent)请按这个开源仓接入昇腾图谱 https://gitcode.com/agent0/kg-tools

“DirectMemoryAccess” 在昇腾语境有两个容易混淆的落点:一是 SIMD/SIMT 编程里数据类型的直接内存访问能力,二是 Matmul 高阶 API 中矩阵挂在 GM(Global Memory)上的经典模式。950 与 910C(A3)两代平台都支持 GM 模式,差异主要在可选 TPosition 的丰富度。本文把两层概念拆开讲清。

数据类型层面的"直接内存访问"

950 主推的 SIMD/SIMT 混合编程提供标量、短向量(如 int2/float4/half2)与 dim3 类型。其中短向量类型明确支持直接从 Global Memory 加载和存储(直接内存访问),可存储在 Unified Buffer 中供线程块内共享,并按自然对齐提升访问效率(int4 对齐 16 字节、float4 对齐 16 字节等)。这是 SIMT 线程直接读写 GM 的语法基础,属于通用编程机制,非 950 独有。

Matmul 的 TPosition:GM 模式是基线,950 扩展了 UB 路径

Matmul 高阶 API 用 MatmulType<TPosition::GM, ...> 声明矩阵位置。GM 模式(数据在 Global Memory,由 API 内部搬运至 L1/L0 参与计算)是所有平台的基线用法,也是 910B/910C 上的主力模式。两代对比:

能力910C(A3 系列)950PR/950DT
A/B/Bias TPositionGM、VECOUT、TSCMGM、VECOUT、TSCM(另支持 SRCPOS 指定 TSCM 数据来源)
C TPositionGM、VECIN、CO1GM、VECIN
C 输出 LocalTensor不支持(仅 GlobalTensor)支持(float、Norm 模板)
MxMatmul 低精度场景有(多数 MatmulConfig 参数在此场景受限)

也就是说:在 910C 上写好的 GM 模式 Matmul 算子,迁到 950 上无需改动即可运行(GM/ND/half 等组合两代通用,AOT 样例即标注 950PR/950DT >= CANN 9.1.0、A3/A2 >= CANN 9.0.0);而 950 多出的 VECOUT/VECIN/LocalTensor 输出是增量优化路径,用于 CV 融合场景减少 GM 往返。

选型建议

  • 常规大矩阵乘、数据本就在 GM:两代平台都用 TPosition::GM,配合 MDL 模板与 doMTE2Preload 调 MTE2 间隙;
  • 融合算子(前序 Vector 输出直接进 Matmul):950 用 A/B=VECOUT;910C 也可用 VECOUT,但 C 只能回 GM 或 CO1;
  • 需要 Cube 结果直接接 Vector 后处理:950 走 C=VECIN / LocalTensor 输出;910C 无此路径,需经 GM 中转;
  • C 为 VECIN + ND 格式时两代都要求尾轴 32 字节对齐(half 下 N 为 16 的倍数),这是最常见的迁移踩坑点。

昇腾知识图谱如何检索示例

  • 检索主题: DirectMemoryAccess Matmul 950 910C GM 模式对比与 TPosition
  • 检索关键词: [“DirectMemoryAccess Matmul 950 910C GM 模式 对比”, “MatmulType DirectMemoryAccess 950PR TPosition 内存 直接访问”, “TPosition GM VECOUT TSCM VECIN Matmul 内存位置”]
  • 内容节点: [“doc_cannascendcopapi_atlasascendcapi0710844内置数据类型_直接内存访问”, “ascdevkit_docs_zh_api_simtapi_simtprogrammingintro_extendedsyntax_builtindatatypes_直接内存访问”, “ascdevkit_docs_zh_api_simdapi_advapi_cubecompute_matmulkernel_matmulusage_matmul高阶api”, “ascdevkit_examples_01simdcppapi_00introduction_02matrix_matmulbasicapi_readme_基于静态tensor编程实现matmul基础api计算”]
  • 召回情况: top1 “Mooncake as L3 KV Cache” score 0.9286 偏离主题(属存储域 Direct memory access),改用 TPosition 检索后命中 Matmul 使用说明 0.9325/模板参数 0.9208,GM 模式事实全部来自后两个节点原文
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐