CUDAプログラミングガイドのwrt-use-fast-math最適化をざっと見ました。付録Cでは、除算を組み込みに変換する方法について言及していますが、乗算については言及していません。私がこの質問をする理由は、私のカーネルにはたくさんの乗算があるからです。NVCCが乗算と加算を融合しようとすることを認識しています(通常の「*」および「+」演算子が使用されている場合、および組み込み関数がFMAD演算にマージされることはありません)。しかし、私のコードが乗算が重い場合、SP組み込み関数のような四捨五入を__fmul_rn
使用すると利点がありますか?
したがって、2つの質問があります。
-use-fast-mathオプションは、「*」演算子を使用した乗算を__fmul_rnのようなSP本能に変換しますか?
__fmul_rnを明示的に使用するために乗算を手動でコーディングすることでパフォーマンス上の利点がありますか?例またはいくつかの数字は私が理解するのに役立ちます。