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

使用 hipSYCL / llvm 在 nvidia 上注册使用情况

如何解决使用 hipSYCL / llvm 在 nvidia 上注册使用情况

我正在查看一些 HPC 代码的 sycl 端口的性能,我通过 hipSYCL 在 GV100 卡上运行这些代码

通过分析器运行代码告诉我,非常高的寄存器使用率可能是性能的限制因素。

有什么方法可以影响 hipSYCL/clang 生成的 gpu 代码的寄存器使用,类似于 nvcc 的 -maxregcount 选项?

解决方法

hipSYCL 调用 clang CUDA 工具链。据我所知,clang CUDA 和 LLVM nvptx 后端没有与 -maxregcount 的直接类似物,但也许 LLVM nvptx 后端选项 --nvptx-sched4reg 可以提供帮助。它告诉优化器调度最小的寄存器压力,而不是仅仅跟随源。

如果您使用访问器,您也可以尝试使用 SYCL 2020 USM 指针代替。在 hipSYCL[1] 中,访问器将始终使用更多寄存器,因为它们还需要存储有效的访问范围和偏移量。

[1] 以及任何其他严重依赖于仅库语义的 SYCL 实现

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