問題タブ [amd-app]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
489 参照

c++ - AMD GPU での OpenCL 時間測定の問題

最近、2 種類のカーネル ランタイム測定を比較しましたが、紛らわしい結果がいくつか見られます。

GPU と Ubuntu Linux が統合された AMD Bobcat CPU (E-350) を使用しています (CL_PLATFORM_VERSIONOpenCL 1.2 AMD-APP (923.1))。

基本的な gettimeofday のアイデアは次のようになります。

これは、カーネルが約 5466 ミリ秒を必要とすることを示しています。

/ / /clGetEventProfilingInfoで行った2回目の測定。QUEUEDSUBMITSTARTEND

4 つの時間値を使用して、さまざまな状態で費やした時間を計算できます。

  • キューに入れられた時間: 0.06 ミリ秒、
  • 送信に費やした時間: 2733 ミリ秒、
  • 実行に費やした時間: 2731 ミリ秒 (実際の実行時間)。

合計すると 5466 ミリ秒になることがわかりますが、半分の時間送信済み状態のままなのはなぜですか?

そして、面白いことは次のとおりです。

  • サブミットされた状態は、異なるカーネルまたは異なるワークロードであっても、常に実際の実行時間の半分です (したがって、一定のセットアップ時間にはなりません)。

  • CPU の場合、送信された状態で費やされた時間は 0 であり、実行時間は gettimeofday の結果と同じです。

  • CPU と GPU を使用する Windows を搭載した Intel Ivy Bridge でカーネルをテストしましたが、その影響は見られませんでした。

誰も手がかりを持っていますか?

GPU がカーネルを 2 回実行する (gettimeofday が実際の実行時間の 2 倍になる) か、関数 clGetEventProfilingInfo が AMD GPU に対して正しく機能していない可能性があります。

0 投票する
1 に答える
1115 参照

opencl - AMD GPU 上の OpenCL 2.0

AMD Fury X で OpenCL 2.0 を初期化しようとしています__OPENCL_VERSION__。どう見ても120です。私は自分のドライバーと両方の内部を見てい#define __OPENCL_VERSION__ 120ます#define __OPENCL_VERSION__ 200が、そこに見つけることができます。

バージョン 2.0 を有効にするには、どこかに特別なフラグが必要ですか? 次のプラットフォームとデバイスがあります。

Advanced Micro Devices, Inc. による OpenCL プラットフォーム 'AMD Accelerated Parallel Processing'、バージョン OpenCL 2.0 AMD-APP (1912.5)、FULL_PROFILE
デバイス: Advanced Micro Devices, Inc. 'Fiji' (ドライバー バージョン: 1912.5 (VM))
OpenCL バージョン: OpenCL 2.0 AMD-APP (1912.5)
OpenCL「C」バージョン: OpenCL C 2.0

編集

ああ、ばか。-cl-std=CL2.0のコンパイラオプションで指定すると役立つようclCreateProgramWithSourceです。それは期待される動作であるはずですか?

0 投票する
1 に答える
1330 参照

opencl - AMD APP SDK (OpenCL) が AMD CPU を検出しない

OpenSUSE Leap x86_64 を搭載した PC に AMD FX-8350 CPU と NVIDIA GeForce GTX 960 GPU を搭載しています。CUDA と OpenCL を使用したいので、最初に Cuda Toolkit 7.5 をインストールしました。それはうまくいきました。

次に、AMD CPU で OpenCL を動かしたいので、AMD APP SDK 3.0 をインストールしました。それはうまくいったようです。$AMDAPPSDKROOTエコー/opt/AMDAPPSDK-3.0$LD_LIBRARY_PATHエコー/opt/AMDAPPSDK-3.0/lib/x86_64/

その後、次のコマンドを使用して、基本的な deviceQuery コード (基本的にはこれですが、プラットフォーム名を表示するように変更されています)をコンパイルして実行しました。

コードはコンパイルおよび実行されますが、出力には NVIDIA GPU 情報のみが表示されます。

解決策が見つからないようです。問題は何でしょうか?