私は最近、ベクトル化された指数関数の実装を研究していました。実際には単精度用のコードを見つけるのは非常に簡単ですが、倍精度用のコードを見つけるのは非常に難しいです。私は、倍精度AVXべき乗の実装を見つけることができませんでした。 SSEのコードはほとんど変更できますが、一般的に2^nで乗算するトリックはAVXに適応できないようです。AVX指数倍精度関数はどこにありますか?
誰もそのような実装を知っていますか?
私は最近、ベクトル化された指数関数の実装を研究していました。実際には単精度用のコードを見つけるのは非常に簡単ですが、倍精度用のコードを見つけるのは非常に難しいです。私は、倍精度AVXべき乗の実装を見つけることができませんでした。 SSEのコードはほとんど変更できますが、一般的に2^nで乗算するトリックはAVXに適応できないようです。AVX指数倍精度関数はどこにありますか?
誰もそのような実装を知っていますか?
インテルのICCコンパイラを使用している場合は、_mm256_exp_pd
がSVMLライブラリにあります。
または、Agner Fogのvector class libraryは、倍精度ベクタ用にexp
をサポートしています。
Agner Fogのベクターライブラリは、私が探していたもので、コードは十分に包括的です。 –
IntelのSVMLライブラリには常に '_mm256_exp_pd'があります。また、私はAgner Fogのベクトルクラスライブラリが倍精度ベクトルの 'exp'をサポートしていると信じています:http://www.agner.org/optimize/vectorclass.pdf –
AVX2と倍精度サポートを持つもう一つの数学ライブラリは[Yeppp!](https: //www.yeppp.info/index.html)。 – wim
Agner Fogのベクターライブラリがこのトリックをかなりうまくやった!あなたが答えとして投稿するなら、私はそれを受け入れるでしょう@PaulR –