【Document Link】/【文档链接】
https://gitee.com/mindspore/akg/wikis/Documentation/Optimize%20Tensor%20Operators/How%20to%20optimize%20Gemm%20By%20using%20TensorCore
【Issues Section】/【问题文档片段】
对于 tensor core 实际是否启用存疑。
【Existing Issues】/【存在的问题】
设备:RTX 3080
Ubuntu 20.04
CUDA版本:11.7
cmake:3.24.0
clang: 10.0.0
问题一、使用 NVIDIA compute 测试,发现没有调用 tensor core。
问题详述:我根据上面的文档尝试配置 tensor_core=True 后启用 tensor core 来做 GEMM,但是我运行文档下面生成的 CUDA 代码(包括我自己实验的其他几个 bmm),最终在 NVIDIA compute 上发现并没有使用 tensor core。
我的判断依据是:一方面,使用 NVIDIA compute 测试 AKG 生成的 kernel,发现在汇编指令中并没有 HMMA;另一方面,和cublas的kernel对比(如下图,蓝色AKG kernel,绿色cublas kernel),发现 AKG 的 tensor 利用率为0。
问题二、我在 (256, 256, 96) 维度下,输入输出均为fp16, 开启 tensor_core=True,最终的实验结果比输入输出均为fp32,tensor_core=false 慢,想知道是为什么?
4. 【Expected Result】【预期结果】
期待你们的回复,如果我的方法有问题望指正,如果没问题,希望能告知如何实际调用 tensor core,谢谢。
Please assign maintainer to check this issue.
请为此issue分配处理人。
@fangwenyi @chengxiaoli
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Please add labels (comp or sig), also you can visit https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md to find more.
为了让代码尽快被审核,请您为Pull Request打上 组件(comp)或兴趣组(sig) 标签,打上标签的PR可直接推送给责任人进行审核。
更多的标签可以查看https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md
以组件相关代码提交为例,如果你提交的是data组件代码,你可以这样评论:
//comp/data
当然你也可以邀请data SIG组来审核代码,可以这样写:
//sig/data
另外你还可以给这个PR标记类型,例如是bugfix或者是特性需求:
//kind/bug or //kind/feature
恭喜你,你已经学会了使用命令来打标签,接下来就在下面的评论里打上标签吧!
你好,问题收到,我们已安排人员分析
你好,能否上传相关测试日志以及生成的IR?
你好,我这边有相关日志和 IR,想请教一下怎么在 issue 里上传文件呢?
我将 IR 和 ncu 日志上传到百度云了,请你们看一下,感谢。
https://pan.baidu.com/s/17h_fzirmiHJlouQlUXHZiA?pwd=y903
大佬们好,想请教一下 akg 的 wmma 是否还没有适配 ampere 架构呢?我在 readme 文档中看到适配了 V100/A100,其中 A100 是 ampere 架构,但是实际跑下来 A100 和 3080 一样都没有调用 tensor core,而 V100 调用了。阅读 akg_mma_lib/wmma.hpp 中 MMA 相关的 tensor core 指令的 fragment shape 均为 8x8x4。下图为 cuda 官方的文档,如第一二行所示,该 shape 的 mma 指令在 fp16 下只支持 Volta 和 Turing 架构,不支持 Ampere 架构,所以上述分析成立的话,该问题的核心原因可能是这个?
你好,mma.m8n8k4的指令在Ampere架构确实不是原生支持的,而是用其他指令模拟的,所以并没有真正的使能Tensor Core。后续我们会支持wmma指令以及mma.m16n8k8等,敬请期待。
大佬们好,想请教一下 akg 的 wmma 是否还没有适配 ampere 架构呢?我在 readme 文档中看到适配了 V100/A100,其中 A100 是 ampere 架构,但是实际跑下来 A100 和 3080 一样都没有调用 tensor core,而 V100 调用了。阅读 akg_mma_lib/wmma.hpp 中 MMA 相关的 tensor core 指令的 fragment shape 均为 8x8x4。下图为 cuda 官方的文档,如第一二行所示,该 shape 的 mma 指令在 fp16 下只支持 Volta 和 Turing 架构,不支持 Ampere 架构,所以上述分析成立的话,该问题的核心原因可能是这个?
登录 后才可以发表评论