4

MKLintel- や amd-などのライブラリはACML、ベクトルの SIMD 演算へのより簡単なインターフェイスを提供しますが、いくつかの関数を一緒にチェーンしたいと考えています。次のような式の解析ツリーを登録できるライブラリはすぐに利用できますか?

log( tanh(x) + exp(x) )

配列のすべてのメンバーで評価しますか? 回避したいのは、 の一時配列を作成し、、tanh(x)およびexp(x)に対してtanh(x) + exp(x) mkl または acml 関数を呼び出すことです。tanh()exp()+

手でループを展開し、sse 命令を直接使用することはできますが、これを行う C++ ライブラリがあるかどうか疑問に思っていました。

1. Handles SIMD/SSE functions  
2. Allows building of parse trees out of SIMD/SSE functions.  

私は非常に初心者で、これまで SSE や MKL/ACML を使用したことがなく、新しい領域に足を踏み入れたばかりです。

4

2 に答える 2

2

あなたが望んでいることとまったく同じではないかもしれませんが、 macstlを見てみることをお勧めします。これは、テンプレート メタプログラミングを使用する SIMD valarray 実装であり、式を 1 つのループに結合できます。これをそのまま使用することも、必要に近いものの基礎として使用することもできます。

于 2011-08-10T08:34:11.593 に答える
1

インテル ABBをご覧ください。ジャスト イン タイム コンパイル アプローチ IIRC を使用します。操作するベクトルのサイズに応じて、ベクトル命令とマルチスレッドを使用できます。

于 2011-08-10T11:16:56.337 に答える