.net のプロセッサのハードウェアによってどのような数学メソッドが実装されているか知っている人はいますか? たとえば、atan を多用するアルゴリズムがあります。このためのルックアップ テーブルを簡単に作成できますが、math.net が fpu やその他のハードウェア拡張機能を使用してこれを実装する場合、その価値はありません。
4 に答える
.net で提供されている atan() に対してルックアップ テーブル アプローチをベンチマークしてみませんか。そうすれば、ルックアップ テーブルを使用して実際にどれだけの速度差が生じるかを明確に伝えることができます。
これがあれば、最速の方法を特定するために、基盤となる VM がどのように動作するかを知る必要はありません。スピードアップを数値化することもできます。
このブログによると、Microsoft の JIT コンパイラはx86 プラットフォームで FPU 命令を利用しています。
http://blogs.msdn.com/davidnotario/archive/2004/10/26/247792.aspx
FPU は 10 年以上にわたって x86 CPU の標準になっているため、これは非常に初歩的なことです。
With a small benchmark application, it appears that even if the fpu is used, the performance of Math.Atan2 is not as good as an alternative approximisation function.
In my simple benchmark, the Math.Atan2 loop is taking 8 seconds, whilst the approximate version is taking 5.5 seconds.