代码拉取完成,页面将自动刷新
本样例介绍Matmul IBShare特性样例,实现MatmulABshare算子及其核函数直调方法。
├── 13_matmul_api_ibshare
│ └── MatmulABshareInvocation // 使用核函数直调的方式调用MatmulABshare自定义算子。
算子名中ABshare的含义为,Matmul计算的A矩阵与B矩阵同时使能类型信息MatmulType的参数IBShare;当A矩阵和B矩阵同时使能IBShare时,表示L1 Buffer上的A矩阵和B矩阵同时复用;IBShare的详细介绍请参考Ascend C算子开发接口>高阶API>Matmul>Matmul>使用说明 章节。
本样例中包含两个算子的核函数实现,分别为使能ABshare的MatmulABshare算子和未使能ABshare的MatmulNoABshare算子。MatmulNoABshare算子的A矩阵与B矩阵均未使能IBSHARE,数据按照K列进行切分计算。MatmulABshare算子的A矩阵与B矩阵均使能IBShare,不对k列进行切分计算,实现了算子性能提升。通过对比两个算子的运行时间,计算MatmulABshare算子的性能提升百分比。
对应的数学表达式为:
C = A * B
在核函数直调样例中,算子实现支持的shape为:M = 128, N = 256, K = 384。
算子类型(OpType) | Matmul | |||
算子输入 | name | shape | data type | format |
a | M * K | float16 | ND | |
b | K * N | float16 | ND | |
算子输出 | c | M * N | float | ND |
核函数名 | matmul_ABshare_custom |
本样例支持如下产品型号:
针对自定义算子工程,编译运行包含如下步骤:
详细操作如下所示。
编译运行此样例前,请参考准备:获取样例代码获取源码包。
时间 | 更新事项 |
---|---|
2024/11/28 | 挪动目录 |
2024/11/12 | 新增readme |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。