1

OpenCL のラッパーとして Cloo を使用して C# で記述したアプリケーションのプロファイルを作成したいと思います。いくつか試してみました... gDEBugger、AMD APP SDK、CodeXL、KernelAnalyzer...

カーネル コードをそのまま KernelAnalyzer にコピー アンド ペーストすると、ボトルネックが ALU 演算であることがわかります。ただし、これはカーネル アナライザーにすぎないため、生成された情報を完全に信頼しているわけではありません。

アプリケーションを適切にプロファイリングするために、他のツールを試しました。sprofile.exe を使用してコンソールから APP SDK でプロファイリングしようとしましたが、常に「アプリケーションを開始できませんでした: 0: プロセスは正常に終了しました」というメッセージが表示されます。問題が何であるかを本当に推測することはできません。

スタンドアロン ツールの CodeXL と gDEBugger を使用すると、.exe を実行するとデバッグされたプロセス イベント (スレッドの開始、メッセージ) が表示されますが、それだけです。関数呼び出し、メモリ情報、統計などはありません...アプリケーションを実行していないかのように、すべて空です! だから、基本的に私には役に立たない。

何が問題なのかよくわかりません。Cloo をラッパーとして使用すると、実行されたすべての操作がプロファイラーから見えなくなるのでしょうか?

ヒントをいただければ幸いです。前もって感謝します!

4

1 に答える 1

3

Clootils.exe (Cloo ディストリビューションに付属のサンプル) を CodeXL でプロファイリングしようとしましたが、試行錯誤の末、CodeXL を動作させることができました。

最初に、プラットフォーム ターゲットを x86 に設定して、Cloo.dll と ClooUtils.exe の両方を再構築する必要がありました。「任意の CPU」のデフォルト設定を使用すると、「アプリケーションを正しく起動できませんでした (0xc000007b)」というメッセージが表示されました。エラー。「x64」を試すと、「プロファイリングに失敗しました」というエラー メッセージが表示され、ClooUtils.exe プロセスがメモリに残りました。しかし、「x86」で試してみると、問題なくプロファイリングできました。CodeXL で「GPU: アプリケーション トレース」と「GPU: パフォーマンス カウンター」の両方のプロファイル モードを試したところ、どちらも機能しました。

そのため、CodeXL の使用を許可するための回避策が提供される場合があります。

于 2013-02-08T17:46:30.187 に答える