微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

A100 上的 cublasGemmEx 与 cublasDgemm

如何解决A100 上的 cublasGemmEx 与 cublasDgemm

我试图通过比较 cublasGemmEx 和 cublasDgemm 在 A100 上的性能来找出张量核心的一些优势。正如文档所述,cuda11.2+A100 上的 cublasGemmEx 支持 FP64,我认为 cublasDgemm 适应旧算法(CUBLAS_Gemm_DEFAULT?),cublasGemmEx 应该比 cublasDgemm 快。但是我的实验表明两者具有相同的性能。 cublasDgemm 是否已经适应了张量核心?顺便说一句,对于 m=n=k=5440,两者都有大约 10 TFLOPS。

解决方法

  • 对于 cublas 使用的内核,using a profiler 您可以识别是否正在使用 tensorcore,一般来说,仅从内核名称即可。对于任意内核,链接的文章显示了可用于此目的的指标,在​​ nsight 计算中。

  • 在 A100 的情况下,published data 表示对于非 tensorcore 使用,峰值 FP64 速率为 9.7TF。如果您看到吞吐量高于 9.7TF(对于 FP64),则可以肯定正在使用 tensorcore。 (实际上,任何高于 9.7TF 的 90% 的吞吐量都应该足以满足此观察,因为引用的数字是理论峰值,而不是现实世界可实现的)。

  • CUBLAS 开发人员希望为图书馆用户提供最佳体验。我想不出一个合理的理由来为可以使用 tensorcore 完成的操作使用慢速路径。您应该期望此类库尽可能使用 tensorcore。

  • 在您的情况下,由于您看到两种操作的吞吐量相同,并且吞吐量超过 9.7TF,因此即使没有分析,tensorcore 也可以安全地用于两者。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。