問題タブ [amd-processor]

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 投票する
2 に答える
3037 参照

cuda - 複数のプロセスからの GPU カーネルの同時実行

複数のプロセス間で単一の GPU を共有したいアプリケーションがあります。つまり、これらの各プロセスは、同じ GPU を対象とする独自の CUDA または OpenCL コンテキストを作成します。Fermi のホワイト ペーパー [1] によると、アプリケーション レベルのコンテキスト切り替えは 25 マイクロ秒未満ですが、起動は GPU での起動時に効果的にシリアル化されるため、Fermi はこれにはうまく機能しません。Kepler のホワイト ペーパー [2] によると、複数の CUDA ストリーム、MPI プロセス、またはプロセス内のスレッドから最大 32 の同時接続を可能にする Hyper-Q と呼ばれるものがあります。

私の質問: 誰かがこれを Kepler GPU で試し、そのカーネルが個別のプロセスからスケジュールされたときに同時に実行されることを確認しましたか? これは単なる CUDA 機能ですか、それとも Nvidia GPU の OpenCL でも使用できますか? AMD の GPU は同様のものをサポートしていますか?

[1] http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf

[2] http://www.nvidia.com/content/PDF/kepler/NVIDIA-Kepler-GK110-Architecture-Whitepaper.pdf

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

opencl - OpenCLデータ転送とDMA

AMD APPプログラミングガイドには、次のように書かれています(p.no 4-15):

転送の場合<=32kB:ホストからデバイスへの転送の場合、データはCPUによってランタイムに固定されたホストメモリバッファにコピーされ、DMAエンジンはデータをデバイスメモリに転送します。デバイスからホストへの転送では、逆のことが行われます。

上記のDMA、CPU DMAエンジン、またはGPU DMAエンジンですか?

0 投票する
2 に答える
925 参照

java - JavaでAMDCPUキャッシュヒット率を収集する方法は?

私はJavaでプログラムを書いています

このプログラムでは、データの配列を読み取って変更しています。これはコードの例です:

ところで、INDEX配列には、プリフェッチを防ぐためにランダムな順序でDATA配列のインデックスが含まれています。INDEX配列でランダムインデックスを使用して、すべてのキャッシュアクセスを強制的に見逃しています。

次に、ヒット率に関する情報を収集して、CPUキャッシュの動作を確認します。

この目的のために開発されたツールはありますか?そうでない場合、何かテクニックはありますか?

0 投票する
2 に答える
2735 参照

compilation - カードがインストールされていない AMD および NVIDIA OpenCL カーネルのオフライン コンパイル

グラフィックス カードをインストールせずに OpenCL カーネルのオフライン コンパイルを実行する方法を見つけようとしていました。SDKをインストールしました。

NVIDIAまたはAMDの両方にグラフィックスカードをインストールせずに、OpenCLカーネルをコンパイルした経験がある人はいますか?

ありがとう

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

windows-7 - OpenCL、AMD Radeon、Windows7上のVisualStudio 2010-開始するには?

私はOpenCLの完全な初心者であり、ビデオカード(AMD Radeon 6970)で実行されるプログラムのコーディング方法を学び始めたいと思っていました。AMDのアプリSDKをインストールしましたが、これを開始する必要がありますか?

含まれているサンプルソリューションを作成してみましたが、次のようになりました。

エラーC1083:インクルードファイルを開くことができません:'d3dx10.h':そのようなファイルまたはディレクトリはありませんc:\ users \ ... \ simpledx10 \ SimpleDX10.hpp

DX11をインストールしているからだと思います。最初は自分で簡単なプログラムを作成するだけだと思いましたが、Stack Overflowとgoogleを検索した後、それを機能させるために必要なものがすべてわかりませんでした。

完全な初心者がAMDビデオカードを使用してWindowsでOpenCLを動作させるための便利なガイドはありますか?

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

gcc - マルチコア AMD では並列コードが遅い

gcc を使用して intel (linux) でコンパイルされた並列化されたコード (openmp) は、2 倍のコアを持つ AMD よりも Intel コンピューターではるかに高速に実行されます。すべてのコアが使用されていることがわかりますが、AMD では約 10 倍の CPU 時間がかかります。intel コンパイラの「cripple AMD」について聞いたことがありますが、gcc を使用しています。前もって感謝します

0 投票する
0 に答える
983 参照

python-2.7 - Geany Windows764ビットでのPython2.7へのNumPyのインポート

AMDプロセッサで実行されている64ビットのWindows7を使用しています。

python-2.7.3.amd64をインストールしました。

NumPyの適切な(非公式の)バイナリをインストールしました。

numpyをインポートし、Pythonコマンドラインからその関数を呼び出し始めると、すべてが正常に機能します。

ただし、Geanyエディターで同じことを行うと、エラーメッセージが表示され、Pythonはnumpyという名前のモジュールを実行しなくなりました。

ImportError:numpyという名前のモジュールがありません

pythonとnumpyの両方を2回再インストールしましたが、何も変更されていません。

Geanyには、UN-Officialバージョンのnumpyまたは64ビットのWindowsの性質、あるいはその両方との非互換性があるという事実から、問題が発生する可能性があるのではないでしょうか。

たぶん私はそれにnumpyを導入するためにGeanyでいくつかのさらなる構成をしなければなりませんか?このジレンマを解決するための提案をいただければ幸いです。

0 投票する
3 に答える
258 参照

c - AMD xop チェックのサポート

次の問題があります。
いくつかの命令を使用して、xop チェックに関連するいくつかのテストがありBulldozer (xop)ます。
そして、このテストはBulldozerプロセッサ上でのみ実行する必要があります。プロセッサがコンパイル時に命令を
サポートしていることを確認するにはどうすればよいですか?xop

言語: COS: Linux ;

0 投票する
0 に答える
856 参照

gcc - AMD Opteron 4280のGCC最適化オプション:ベンチマーク

2 *XeonX5650を搭載したローカル計算サーバーから2*Opteron 4280を搭載した別のローカル計算サーバーに移行しています...今日、新しいマシン(AMD 1)ですばらしいCプログラムを起動しようとしましたが、パフォーマンス>50%、すべての可能なパラメーターを同じに保ちます(乱数ジェネレーターのシードでも)。私はこの問題を掘り下げ始めました。「amdopteron4200コンパイラオプション」をグーグルで検索すると、GCC 4.6.3コンパイラで使用できる「フラグ」(オプション)という2つの提案がありました。私はこれらの旗で遊んで、ここの下のプロットで私の発見を要約しました...

写真のアップロードは許可されていないので、チャートはこちらhttps://plus.google.com/117744944962358260676/posts/EY6djhKK9ab

誰か(コーディングの人)がこのテーマについてコメントをくれるかどうか疑問に思っています。特に、「... -march =bdver1-fprefetch-loop-arrays」と「...-fprefetch」という事実に興味があります。 -loop-arrays -march = bdver1 "は別のランタイムで生成されますか?また、「-funroll-all-loops」がすでに「-O3」または「-Ofast」に含まれているかどうかもわかりません。このフラグをもう一度追加しても、まったく違いが生じるのはなぜですか。Intelプロセッサにフラグを追加すると、パフォーマンスがさらに低下するのはなぜですか( "-ffast-math"のみを除きます。これは明らかです。これは、私が理解しているように、定義上、浮動小数点演算の精度が低く、高速であるためです。 )?

マシンと私のプログラムについてもう少し詳しく説明します。2*XeonX5650マシンはgcc4.4.3を搭載したUbuntuサーバーで、2(マザーボード上のCPU)X6(それぞれの実際のコア)* 2(ハイパースレッディング)=24スレッドマシンです。 、そして私の「実験」またはベンチマーク中に何かが実行されていました...

2 * Opteron4280マシンはgcc4.6.3を搭載したUbuntuサーバーであり、2(マザーボード上のCPU)X4(各あたりの実際のコア=ブルドーザーモジュール)* 2(AMDブルドーザースレッド=コアの種類)=18スレッドマシン、そして私はそれを私の素晴らしい「ベンチマーク」のためだけに使用していました...

私のベンチマークプログラムは単なるモンテカルロシミュレーションであり、最初はIOを実行し、その後、〜10^5のモートカルロループを実行して結果を取得します。したがって、整数と浮動小数点の両方の計算プログラムであると想定し、時々ループして、ランダムに生成された「結果」が私にとって十分に「良い」かどうかを確認します...プログラムはシングルスレッドであり、私はランダムジェネレータシードを含むすべてのベンチマーク(明らかですが、とにかく言及する必要があります)に対してまったく同じパラメータで起動していました(したがって、結果は100%同一でした)...プログラムはメモリインテンシブではありません。結果として得られるランタイムは、標準の「/ usr / bin/time」コマンドによる単なる「ユーザー」時間です。