大量の計算を伴う特定のDSPベースのアルゴリズムで作業しています。私はすべてのオプション(-O3、-ftreevectorize ...)でgccライブラリを使いました。コード全体の実行時間は43msです。私はICCコンパイラを使用して同じコードを実行しますが、コードの実行時間を大幅に短縮することはできません。既存のコードを変更せずにICCでコード実行時間を短縮するにはどうすればよいですか?浮動小数点演算のための要件が厳しくない場合ICCコンパイラを使用したコードの実行時間の短縮
答えて
(SIMD/SとASMを使用せずに)、最も簡単な最適化がしかし、これはあなたがいない可能性があるだけでなく-no-prec-div
をオンにしますicc -fast file.c
から来ます欲しいです。その場合、試してみてくださいicc -03 -axSSE4.1 -ipo file.c
コンパイルに少し時間をかけたい場合は、プロファイリングからかなりのスピードの利点を得ることができます。 icc -03 -axSSE4.1 -ipo -prof_gen file.c
はプロファイルを生成するように設定します。その後、コードを数回実行して、最も一般的な使用例を実行し、再コンパイルを使用してicc -03 -axSSE4.1 -ipo -prof_use file.c
あなたが言ったすべてのフラグを使用しましたが、変更はありません – ans
残念ながら、書かれているように、コードは静的に最適化できません実行中のコンテキストなしでコードを調べる)。ただし、プロファイリング・オプションは、コンパイラーが最も可能性の高いコードパスを判別し、その出力を最適化するために再配列するのに役立ちます。 – Seth
まあ...私は良いコンパイラを探していたとき、私はclangを見つけました。このコンパイラは、icc、pgiのような他のコンパイラと同じ結果を出します。しかし問題は、このコンパイラに関するチュートリアルがごくわずかであることです。同じ場所でチュートリアルを見つけることができる場所を教えてください。 – ans
- 1. コードの実行時間を短縮
- 2. Javaプログラムの実行時間を短縮
- 3. parLapplyを使用した経過時間/ユーザー時間の短縮
- 4. 実行時間を短縮する
- 5. ループ実行時間を短縮
- 6. MySQLクエリ実行時間を短縮
- 7. VBScriptでコード実行時間を短縮するには
- 8. このクエリの実行時間を短縮
- 9. Pythonスレッドモジュールは実行時間を短縮しますか?
- 10. momentjs言語を使用した短縮相対時間(Instagramスタイル)
- 11. 時間のかかる計算の実行時間を短縮する方法
- 12. 実行時間を短縮するためにバックグラウンドスレッドを実行するWCFサービス
- 13. ループの実行時間の短縮と効率の向上
- 14. MATLABのネストされたforループの実行時間を短縮します
- 15. SVMの実行時間を短縮する方法
- 16. 選択クエリの実行時間を短縮する方法
- 17. コレクションでの最大実行時間を短縮する方法
- 18. アルゴリズムの実行時間を短縮する方法
- 19. .NETでMSTestの実行時間を短縮する方法は?
- 20. クエリの実行時間を短縮する方法
- 21. PHP実行/タイムアウト時間を短縮できません
- 22. MS Accessを使用したDelphi ADO - 特定のクエリを実行するとクエリ時間が短縮される
- 23. 実行時間を短縮するために以下の助けが必要
- 24. ファイル名を変更してください。コード実行時間を短縮したい
- 25. SVMの実装、scikitsの実行時間の短縮、最速のSVM
- 26. 複数のモデムの時間を短縮
- 27. ローカルジーケルサーバーのページ生成時間を短縮
- 28. アタッチ&ロードの時間を短縮する
- 29. イオン2アプリのブート時間を短縮
- 30. アンドロイドエミュレータの時間を短縮する
ICCに渡すフラグは?また、これを実行しているCPUは何ですか?コードをプロファイリングして、ホットスポットの位置を確認したり、計算上の境界かメモリ境界かを判断したりすることもできます。 –
@Paul:そうです。 'exp'、' log'、 'pow'、' sqrt'の単純な呼び出しが支配的だったこのようなコードを見てきました。単にそれをメモするだけで大きな違いが生まれました。 –
Im渡すicc -03 -axSSE4.1 file.c – ans