news 2026/6/24 18:36:59

CANN/pypto设置立方体切片形状

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pypto设置立方体切片形状

pypto.set_cube_tile_shapes

【免费下载链接】pyptoPyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas A3 训练系列产品/Atlas A3 推理系列产品

功能说明

在调用pypto.matmulpypto.scaled_mm前必须调用本接口设置矩阵运算的切分大小,具体切分配置可参考Matmul高性能编程。

函数原型

set_cube_tile_shapes(m: List[int], k: List[int], n: List[int], enable_split_k: bool = False) -> None

参数说明

参数名输入/输出说明
m输入m维度在L0和L1上的TileShape(切片形状)的切分大小,分别对应mL0和mL1的切分大小
k输入k维度在L0和L1上的TileShape(切片形状)的切分大小,分别对应kL0和kL1的切分大小
n输入n维度在L0和L1上的TileShape(切片形状)的切分大小,分别对应nL0和nL1的切分大小
enable_split_k输入设置True表示使能matmul的多核切K功能,False表示未使能多核切K,默认为False

返回值说明

void

约束说明

  • 对齐约束

    • 通用对齐约束

    要求mL0、mL1、kL0、kL1、nL0、nL1均满足32字节对齐(DT_FP32输入场景要求满足16元素对齐)。例如:输入矩阵的数据类型为DT_FP16时,kL0 * sizeof(DT_FP16) % 32 == 0。

    • 基础关系约束
    约束项要求
    mL0 与 mL1mL0 > 0mL0 ≤ mL1mL1 % mL0 == 0
    kL0 与 kL1kL0 > 0kL0 ≤ kL1kL1 % kL0 == 0
    nL0 与 nL1nL0 > 0nL0 ≤ nL1nL1 % nL0 == 0
    • ND格式特有约束

    当A矩阵在format为ND且转置场景时(即数据排布为[K, M]),要求mL0满足32字节对齐。

    • NZ格式特有约束

    A、B矩阵在format为NZ场景时,要求外轴切分大小满足16元素对齐,内轴切分大小满足32字节对齐。例如,在A矩阵非转置场景,外轴为M、内轴为K,要求mL0、mL1满足16元素对齐,kL0、kL1满足32字节对齐。

  • 空间约束

    • 输入dtype为DT_FP16或DT_BF16或DT_FP32:
    CeilAlign(mL0, 16) × CeilAlign(kL0, 16) × sizeof(aDtype) ≤ L0A_size CeilAlign(nL0, 16) × CeilAlign(kL0, 16) × sizeof(bDtype) ≤ L0B_size CeilAlign(mL0, 16) × CeilAlign(nL0, 16) × sizeof(cDtype) ≤ L0C_size CeilAlign(mL1, 16) × CeilAlign(kL1, 16) × sizeof(aDtype) + CeilAlign(nL1, 16) × CeilAlign(kL1, 16) × sizeof(bDtype) ≤ L1_size
    • 输入dtype为DT_INT8或DT_FP8E5M2或DT_FP8E4M3或DT_HF8:
    CeilAlign(mL0, 32) × CeilAlign(kL0, 32) × sizeof(aDtype) ≤ L0A_size CeilAlign(nL0, 32) × CeilAlign(kL0, 32) × sizeof(bDtype) ≤ L0B_size CeilAlign(mL0, 32) × CeilAlign(nL0, 32) × sizeof(cDtype) ≤ L0C_size CeilAlign(mL1, 32) × CeilAlign(kL1, 32) × sizeof(aDtype) + CeilAlign(nL1, 32) × CeilAlign(kL1, 32) × sizeof(bDtype) ≤ L1_size
    • Bias空间约束:

    bias数据到达BTBuffer全部转为fp32,需满足以下约束:

    nL0 × 4 ≤ BTBuffer_size
    • FixPipe空间约束:

    scaleTensor数据为uint64_t,需满足以下约束:

    nL0 × 8 ≤ FixBuffer_size

    其中:

    • aDtype、bDtype为输入矩阵数据类型
    • cDtype为输出矩阵数据类型,当输入为DT_INT8时cDtype为DT_INT32,其余场景cDtype为DT_FP32
    • CeilAlign(value, align)元素对齐实现为:(value + align - 1) / align * align
  • 多核切K约束

    • 仅支持2维矩阵,3维/4维矩阵不支持多核切K
    • 多核切K场景只支持out_dtype数据类型为DT_FP32或DT_INT32。
    • Bias、FixPipe反量化场景不支持叠加多核切K功能。

调用示例

# 基本配置 pypto.set_cube_tile_shapes([128, 128], [128, 128], [128, 128]) # 启用多核切K pypto.set_cube_tile_shapes([128, 128], [64, 256], [128, 128], enable_split_k=True)

【免费下载链接】pyptoPyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 23:51:24

CANN/GE运行时执行系统——从OM文件到硅片计算的桥梁

运行时执行系统——从 OM 文件到硅片计算的桥梁 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。…

作者头像 李华
网站建设 2026/6/24 18:36:36

大语言模型越狱提示词原理与实战:从安全机制博弈到提示工程进阶

1. 项目概述:当GPT遇上“越狱”如果你深度使用过ChatGPT、Claude这类大语言模型,一定遇到过这样的时刻:你希望它帮你写一段更具批判性的分析,或者模拟一个它通常“不愿”扮演的角色,但得到的回复往往是“作为一个人工智…

作者头像 李华
网站建设 2026/5/9 23:47:34

【收藏级】2026版Agentic AI从原理到实战完整指南,小白程序员必看!

本文深入浅出拆解Agentic AI的核心逻辑、底层原理与实战落地,从传统AI的核心局限切入,详细阐述Agentic AI如何凭借感知、推理、行动、记忆四大核心能力,实现自主代理并高效完成复杂任务。文章同步更新2026年最新技术细节,拆解Sens…

作者头像 李华
网站建设 2026/5/9 23:44:31

开源项目新焦虑:当用户不再搜索引擎,而是直接问 AI

最近和几个做开源项目的朋友聊天,发现大家有一个困惑:明明 GitHub 上的 Star 数在涨,技术文档也写得很用心,但来自AI(deepseek,豆包, 千问等)的实际引用却好像遇到了瓶颈。 大家探讨…

作者头像 李华
网站建设 2026/5/9 23:44:30

VNet模型在胎儿脑fMRI分割中的优势与实践

1. 项目概述:为什么胎儿脑fMRI分割是个“硬骨头”?在医学影像分析领域,胎儿脑功能磁共振成像(fMRI)分割,绝对算得上是一个让研究员和工程师们既兴奋又头疼的课题。兴奋在于,它能让我们无创地窥探…

作者头像 李华