【AscendC】ReduceSum中指定workLocal大小时如何计算

参考官方文档,但其中对于workLocal大小的计算只是以代码注释的方式给出,不具有直观性,现在结合两个官方例子进行推导。

首先注意到api的调用,分为高维切分模式和指定数量模式,两种模式的计算是不同的,主要在于repeattimes这个变量的大小。

高维切分的例子见上图,可以看到结果是80.

结合图1进行分析,首先数据类型为half类型,所以elementsPerBlock为16,而repeatTime的计算是通过srcDataSize / mask, 也即8320 / 128 = 65。

进行上取整得到的结果是65 + 15 / 16 = 5, 5 * 16 = 80。所以最终结果为80。

对于指定数量n的模式,见下图:

此处指定的srcDataSize是288,由图1的注释,

// 此处需要注意:对于tensor高维切分计算接口,firstMaxRepeat就是repeatTimes;对于tensor前n个数据计算接口,firstMaxRepeat为count/elementsPerRepeat,比如在half类型下firstMaxRepeat就是count/128,在float类型下为count/64,按需填入,对于count<elementsPerRepeat的场景,firstMaxRepeat就是1

可以看到 firstMaxRepeated = 288 / 128 = 1。

因此得到的结果就是(1+ 15) / 16 * 16 = 16.

相关推荐
styshoo6 分钟前
[NVSentinel] gpu-health-monitor模块之dcgm_watcher
人工智能
Cosolar14 分钟前
从 ChatGPT 到 Astra:四年走完的路,AGI 真的来了吗?
人工智能·aigc·openai
ting945200017 分钟前
Dograh 深度技术解析:开源自托管语音智能体平台架构、流水线与工程实践
人工智能·架构
思考着亮17 分钟前
13.GraphRAG
人工智能
HappyEnding21 分钟前
OpenSpec + Superpowers 搭建 SDD+TDD 工作流教学文档
人工智能
思考着亮28 分钟前
12.Agentic RAG
人工智能
zed_2332 分钟前
让答案有出处:citations 引用溯源
人工智能
长江后浪博客40 分钟前
Python + YOLOv8 疲劳驾驶 AI 视觉检测入门:从模型训练到 ONNX 实时摄像头检测完整实战
人工智能·python·yolo·疲劳驾驶检测·onnx·yolov8
聪明蛋子哟1 小时前
告别API“翻译”之苦:从OpenAPI到MCP,统一AI与工具集成的桥梁
人工智能
海上小飞龙1 小时前
大模型推理的两阶段:一次 Prefill,加上多次 Decode
人工智能·深度学习·语言模型