1

私の(かなり高価な)Radeon 6970では、cl_amd_fp64拡張機能のみがサポートされていることがわかりました。を使用して実行すると、コードの一部で奇妙な結果が得られます(0.005実際にuses 1.99916e+37?の値にアクセスします)cl_amd_fp64cl_khr_fp64CPUでIntelSDKを使用すると、問題なく動作します。(入力バッファはまったく同じです)

拡張ページにはほとんど情報がありません。

両者の違いは何ですか?

4

1 に答える 1

2

cl_khr_fp64クロノスの公式倍精度浮動小数点精度拡張です。算術演算がIEEE754-2008に準拠している必要があり、OpenCLベクトルタイプと標準ライブラリ関数の全範囲がサポートされている必要があります。

cl_khr_fp64当初、AMDは拡張機能に必要なサブセットのみを実装していたためcl_amd_fp64、GPUハードウェアで倍精度をサポートするための独自のベンダー拡張機能を発行しました。最初に登場したとき、サポートの範囲は非常に限られていました(おそらく、非標準の丸め動作IIRCでは+、-、*のみ)が、SDKのリリースとハードウェアの新たな改訂によって徐々に拡大してきました。私の記憶が正しく機能する場合、彼らはリリースノートでサポートされているものをリストします。

私はしばらくの間彼らの進歩を綿密に追跡していなかったので、あなたが見ていることがなぜ起こっているのか分かりません。最新のドライバーとストリームSDKバージョンがインストールされている場合は、再現ケースをまとめてバグレポートを提出することをお勧めします。彼らがサポートしていない、または結果を保証していないものを使用している可能性がありますが、バグを発見した可能性もあります。

于 2012-02-02T17:39:03.743 に答える