フローティングポイント操作にどのような指示を使用する必要がありますか?
-
02-10-2019 - |
解決
後方の互換性を忘れてしまう場合は、SSEが進む方法です。より豊富な命令セットとベクトルサポートがあります。実行されているプロセッサのために最適化されたい場合は、より高いレベルの言語で書き込み、現在実行中のプロセッサをチェックし、そのために最適化されたコードを実行するICCをコンパイルしてみてください。
一日の終わりには、ソフトウェアの予想されるユーザーに依存します。
他のヒント
後方互換性が必要な場合は、x87命令を使用する必要があります。それ以外の場合、ネイサン・フェルマンが言うように、SSE#の指示は行く方法かもしれません。なぜなら、彼らのコードは書くのがやや簡単であるためです(X87はスタックを使用しますが、通常のレジスタモデルを使用します)。
そうは言っても、x87コードを使用したい(またはx87/SSEコードの混合)になる理由がいくつかあります。
(1)X87は、より高い精度、つまり80ビットの浮動小数点計算を提供します。 (どちらも、X87/SSEは32ビットと64ビットのフロートを提供します。)これは、たとえば、特別な精度が必要になる可能性のあるいくつかの科学コードの問題である可能性があります。
(2)X87は、SSE#命令セットの対象ではないいくつかの操作、つまりトライオオノトリック操作(SIN、COS、...)および対数の命令を提供します。
所属していません StackOverflow