请教有关FP32和FP64相关问题

  • 2 replies
  • 613 views
请教有关FP32和FP64相关问题
« 于: 二月 08, 2023, 04:44:20 pm »
为什么我在代码中 所有的计算部分已经全都是用的float类型(可能一部分是FP64单元去计算了),如Nsight Compute分析所示,为什么还提示我让我用FP32,如何让FP64不去参加运算?在这种情况下请问怎么进行优化呢?

Re: 请教有关FP32和FP64相关问题
« 回复 #1 于: 二月 13, 2023, 04:08:56 pm »
为什么我在代码中 所有的计算部分已经全都是用的float类型(可能一部分是FP64单元去计算了),如Nsight Compute分析所示,为什么还提示我让我用FP32,如何让FP64不去参加运算?在这种情况下请问怎么进行优化呢?

关于你的两个问题:
(1)为何报告FP64 Pipe几乎用满了,但是却"所有的计算代码已经全部使用的是float类型"的问题,可能有这几个原因:
表达式中有无不小心引入的double变量?或者有无不小心引入的double<->int, double<->float之间的转换?以及,特别检查有无不含f结尾的常数,例如说1.23而不是1.23f,前者会引入自动的到double的promotion转换和计算代价。

(2)为何报告大比例的FP32不能融合成a * b + c的方式,而是单独的a * b, 和x + c?这个考虑到(1)问题的存在,而现在报告FP32 Pipe才3%的使用率,不妨先解决了(1)然后再看看本情况的新报告,和新变化。


Re: 请教有关FP32和FP64相关问题
« 回复 #2 于: 二月 13, 2023, 10:44:45 pm »
很感激您的回复,已找到问题所在,此问题有显著改善,多谢