28

ac/c++ API を提供し、Intel および AMD の拡張機能と Visual Studio で動作し、GCC と互換性のある移植可能な SIMD ライブラリを誰でも推奨できますか? double の 512x512 配列のスケーリングなどを高速化しようとしています。ベクトル内積、行列乗算など

これまでのところ、私が見つけたのは http://simdx86.sourceforge.net/だけですが、最初のページにあるように、ビジュアルスタジオではコンパイルされません。

私が収集したものから、AMD で動作しない Intel IPP もあります。AMD の Framewave もありますが、ライブラリのコンパイルとリンクに問題があり、フォーラムは完全に機能していません。どこかで Framewave を使用できた人はいますか?

ありがとう。

4

5 に答える 5

11

EigenMPL2ライセンスのヘッダーのみの C++ ライブラリで、SSE、Neon、および Altivec 用に最適化されたベクトル/行列演算を備えています。アドオン モジュールには、より高度な数学演算があります。

于 2011-05-16T01:34:45.587 に答える
11

行列とベクトルの高レベルの操作について言及しているため、ATLASIntel の MKLPLASMA、およびFLAMEが興味深い場合があります。

一部の C++ 行列数学ライブラリには、Boost、Armadillo、Eigen、IT++、および Newmat の uBLAS が含まれています。POOMA ライブラリには、おそらくこれらのいくつかも含まれています。この質問はMTLにも言及しています。

低レベルの移植性プリミティブを探している場合、私の同僚が SSE2、Altivec、VSX、Larrabee、および Cell SPE ベクトル操作のラッパーを開発しました。これはソース リポジトリにありますが、作品の一部として配布したい場合、そのライセンス (アカデミック) は適切ではない可能性があります。また、対象となるアプリケーションのニーズの範囲をカバーするために、まだ重要な開発が行われています。

于 2009-06-11T19:32:14.857 に答える
3

liboilまたは関連するORCを試してください。特にORCは面白いです。アーキテクチャ固有のコードにコンパイルされる高レベルのアセンブリ言語を実装します。単純なラッパー ライブラリよりもはるかに洗練されています。

于 2010-09-05T20:21:06.720 に答える
3

macstl をチェックしてください: http://www.pixelglow.com/macstl/

于 2010-09-05T20:24:31.003 に答える
2

If you don't mind getting down and dirty with assembler then you can always use the intrinsic functions for all the SIMD instructions. They will be processor specific, i.e. SSE4 intrinsics will only run on SSE4 enabled CPUs and it's up to you to make sure the extensions are there.

There is a good article here about applying SIMD.

You could, however, use a compiler that generates SIMD code for you without any external libraries. VectorC is supposed to be good although I've never used it personally. It doesn't require any special libraries as far as I know, it just spots those bits of source code that can benfit from SIMD and compiles to whatever level of SSE you specify.

于 2009-06-11T15:36:37.527 に答える