私は通常、ArrayFireを使用するときにOpenCLバックエンドを使用します。私はi7 CPUでIntel OpenCLを使用していました。私がAF_BACKEND_CPUバックエンドに切り替えたとき、私のコードは約10-15倍遅かったです。私はそれが1つのコアでのみ実行されていることを確認し、気づいた。また、私のプロセッサは4つのコアしかないので、残りの減速を説明するのはSSEまたはAVX命令を使用していないと思われます。私はArrayFireのCPUバックエンドがより速くなければならないように感じる。マルチスレッドにする方法はありますか?ArrayFire AF_BACKEND_CPUはマルチスレッドではありませんか?
答えて
CPUバックエンドはまだマルチスレッド化されていません。しかし、バージョン3.4.0から、私はそれが変更されると思われます(https://github.com/arrayfire/arrayfire/milestonesの「スパースサポート、スレッドセーフティ、パラレルCPU」を参照)
私は同じことを思っていました。マイルストーンは3.5.0(https://github.com/arrayfire/arrayfire/issues/451)に変更されています。
私が見ることができる限り、現在のところ、AFでは1つのコアのみが使用されています。だから4つのコアはまだ3です。
GPUだけで、あるいはCPU上でデータを保持する方法がないので、一般的に私はGPUと一緒にAFを使用し、af :: arrayを作成することをお勧めします(How to explicitly get linear indices from arrayfire?およびhttp://forums.accelereyes.com/forums/viewtopic.php?f=17&t=43097&p=61730&hilit=copy+host+memory+into+an+array#p61727を参照)。どのように構築するかaf::array
アドホック)
また、多くのタスクの一般的なルールとして、GPUの実装はCPUの実装よりもはるかに高速です。通常、多くの分岐を伴うソートアルゴリズムを参照してください。
CPUを並列に使用することを主張する場合は、OpenMP、MPI、または単にstl :: threadをAFの上に置き、このように並列化することもできます。私は操作をソートするためにstl :: threadで多くは得られませんでした。
- 1. Delphi/Indy IdHttpServerはマルチスレッドではありませんか?
- 2. ArrayFireが見つかりませんでしたLAPACK - しかし私はそれを持っています
- 3. map/iteratorはインクリメンタルマップではありません。インクリメンタルではありません。
- 4. マルチスレッド:ファイルポインタのセグメンテーションフォールト、特定のスレッドのファイルポインタが特定(またはユニーク)ではありませんか?
- 5. 別個ではありませんか?
- 6. 、垂直ではありませんか?
- 7. angular2 - ストリーミングではありませんか?
- 8. Silverlightでセマフォーはありませんか?
- 9. スレッドセーフではありませんか?
- 10. savedInstanceStateはnullではありませんが、データはありません
- 11. エラー "GetError:モジュールがありません"(Herokuではローカルではありません)
- 12. マルチスレッドではパフォーマンスは向上しませんが、パフォーマンスは向上しません。
- 13. x.nextUntilは関数ではありません - なぜわかりません
- 14. メインはありませんがメインはありますか?
- 15. マルチスレッド環境でSendOrPostCallbackとActionの違いはありますか?
- 16. Python Whileレコードセットではありません.EOFはありません.MoveNext
- 17. ポートフォワーディングは問題ありませんが、内部LANではありません
- 18. はboost :: lockfree :: queueであり、C++ 11ではロックフリーではありませんか?
- 19. mix.ngTemplatesはfunction()ではありません
- 20. PureLayoutはスレッドセーフではありません
- 21. BottomNavigationViewはフルサイズではありません
- 22. はテンプレートクラスではありません
- 23. OrbitControlsはコンストラクタではありません
- 24. QMainWindowはアクティブウィンドウではありません
- 25. jskeryはnullではありません。
- 26. django.core.validatorsはパッケージではありません
- 27. TypeError ...はコンストラクターではありません
- 28. FirebasePaginatorはコンストラクタではありません
- 29. img.variableはコンストラクタではありません
- 30. キューはテンプレートではありません