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

ReduceSum 是全站检索量最高的单个算子(邀测期 393 次检索,其中单一查询词被搜 114 次)。高阶 ReduceSum 定义在 AscendC::Pattern::Reduce 命名空间,按模板参数 pattern 指定计算轴:

template <class T, class pattern, bool isReuseSource = false>
__aicore__ inline void ReduceSum(const LocalTensor<T>& dstTensor,
    const LocalTensor<T>& srcTensor, const LocalTensor<uint8_t>& sharedTmpBuffer,
    const uint32_t srcShape[], bool srcInnerPad)

pattern 由与维度数相同的 A、R 字母组成:A 表示 Normal 轴,R 表示 Reduce 轴。AR 即对二维向量的第二维(最内层)累加,当前只支持 AR 和 RA。对 shape (2,8) 输入用 AR,输出为 [13.0, 9.0]。

临时空间 work(sharedTmpBuffer):接口内部涉及复杂计算,需额外空间存中间变量。两种方式:开发者自管(传入 tensor,调用后可复用,不反复申请释放);或接口框架申请(需预留,大小用 GetReduceSumMaxMinTmpSize 获取)。基础 API WholeReduceSum 同样有 sharedTmpBuffer 形参,支持 count 前 n 个数据与 mask 切分两种原型。

对齐:srcInnerPad 表示最内层数据是否 32 字节对齐;A2/A3 上只支持 true。约束:源与目的操作数地址不可重叠,tmpBuf 亦不可与之重叠。

排查:结果异常但不报错时,先查 32 字节对齐——NPU 向量引擎要求输入对齐;tiling 时按"对齐主体 + 尾块"拆分,尾块可 pad 到 32 倍数后再算。


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

  • 检索主题: 昇腾 AscendC ReduceSum 算子实现:reducePattern 模板、isReduceLastDim 与 work 临时空间详解
  • 检索关键词: [“ReduceSum算子实现”, “AscendC ReduceSum reducePattern isReduceLastDim”, “WholeReduceSum tmpBuf”]
  • 内容节点: [“ascdevkit_docs_zh_api_simdapi_advapi_reductionoperations_reducesuminterface_reducesum_ascendc_pattern_reduce命名空间”, “ascdevkit_docs_zh_api_simdapi_basicapi_memoryvectorcompute_reductioncompute_reducesum_sharedtmpbuffer”, “atvc_examples_reducesum_readme_reducesum算子代码实现”, “faq20260615_a0958_reducesum算子”]
  • 召回情况: 3 组重放 query 均 top10 全相关命中(样例/官方文档/FAQ),最高 score 0.9689

Logo

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

更多推荐