Radeon GPU向けVulkanオープンソース実装であるRADVドライバーが、VK_KHR_shader_fma拡張のサポートを追加しました。この拡張により、正しい丸め処理を行うFMA(fused multiply-add)演算が可能になり、計算負荷を増やすことなく計算精度が向上します。これは、小数点以下の桁が重要となる機械学習や科学計算において重要な進歩です。
パフォーマンス低下なしの数学的精度 🎯
VK_KHR_shader_fma拡張は、乗算と加算を正確な丸め処理で1つの演算に融合するFMA命令を有効にします。これにより、個別の演算で発生する典型的な累積誤差を回避できます。RADVは既にRadeon向けにこれを実装しており、NVIDIA向けドライバーNVKもこれを有効にして、それらのGPUでのOpenCLのパフォーマンスを向上させています。これらの改善は両方ともMesa 26.2で提供され、AIや科学シミュレーションの開発者がハードウェアに手を加えることなく計算を微調整できるようになります。
これであなたの小数点以下の桁にも権利が 😄
ついに、浮動小数点数が差別されていると感じることはなくなるでしょう。FMAにより、乗算と加算はうまく調和し、量子物理学シミュレーションを台無しにする中途半端な丸め処理はなくなります。そして、NVKもこのパーティーに参加するということは、LinuxとNVIDIAが同じテーブルを共有しているのを見るようなものです。ただし、奇跡を期待してはいけません。あなたのコードが既にめちゃくちゃなら、FMAでも救えません。しかし少なくとも、エラーはドライバーのせいではなく、あなたの責任になります。