3

CLoo という C# ラッパーを使用して、OpenCL API を使用します。私が使用する openCL プラットフォームは Intel CPU です。

公式の Intel サンプル コード (C/C++ アプリケーション) を実行すると、VS2010 IntelOpenCL プラグイン ウィンドウ (Tools/Cod builder-OpenCL Debugger) で、コマンド キュー、API 呼び出し履歴などを確認できます。動作します。カーネルのデバッグも機能します。

CLoo で同じことを行うと、カーネルのみをデバッグできますが、ホスト側の API はデバッグできません。カーネル デバッグ チェックボックス (ツール/コード ビルダー - オプション/基本設定/OpenCL カーネル デバッグを有効にする) とホスト側 API デバッグ (ツール/コード ビルダー - オプション/API デバッガー/OpenCL API デバッガーを有効にする) の両方をオンにしました。

インテル C/C++ サンプルでは、​​最初の OpenCL API 関数 (clGetPlatformIDs) を呼び出すと、アプリケーションによってポートが開かれ (56202)、VS Intel OpenCL プラグインがそれに接続されます。また、コンテキストが作成され、アプリケーションによって別のポート (56203) が開かれ、VS がそれに接続されることにも気付きました。これは、カーネル デバッグ ポートである必要があります。

私の質問は、Cloo で最初の OpenCL API 呼び出し (clGetPlatformIDs) を呼び出したときに、C/C++ アプリケーションの場合と同様に API デバッガー ポートが開かないのはなぜですか。

回避策として、環境変数を使用してログを有効にできることがわかりましたが、VS プラグインほど便利ではありません。INTEL_OCL_DBG_LOG=1 INTEL_OCL_DBG_LOG_FILE=c:\temp\debugger.txt

4

0 に答える 0