問題タブ [openacc]
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.
java - オープンACCを使用してGPUでJavaコードを並列化できますか
OpenACC を使用して GPU で Java コードの「for ループ」を実行することは可能ですか?? 私のデータ マイニング アルゴリズムは Java でコーディングされており、GPU でシーケンシャル コードを並列処理したいと考えています。GPU で Java コードを並列化するにはどうすればよいですか?
openacc - Openacc エラー ibgomp: libgomp-plugin-host_nonshm.so.1 の読み込み中: libgomp-plugin-host_nonshm.so.1: できません
簡単なopenaccサンプルをコンパイルしたい(添付されていた)、正しくコンパイルされましたが、実行するとエラーが発生しました:
- コンパイル: gcc-5 -fopenacc accVetAdd.c -lm
- で実行: ./a.out
- 実行時にエラーが発生しました
エラー: libgomp: libgomp-plugin-host_nonshm.so.1 の読み込み中: libgomp-plugin-host_nonshm.so.1: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
私はそれをグーグルで見つけ、1ページしか見つけませんでした!次に、この問題を解決する方法を尋ねますか?
openacc - OpenACC コンパイラ: CAPS コンパイラをダウンロードして使用する方法
OpenACC プログラムを書きたいのですが、この種のプログラムを書くためのコンパイラが見つかりません。PGI コンパイラは、イランのような一部の国では無料ではありません。CAPS コンパイラのダウンロード方法を知りたいのですが、リンクが見つかりません。このページにリンクされている 1 つの投稿では、このページは有効ではありません。
cuda - OpenACC: OpenACC 並列ループから cuda __device__ カーネルを呼び出す
hello.cu ファイルに単純なテスト cuda カーネルがある場合:
そして、mainacc.c で OpenACC コードをテストします。
このコードを次のようにコンパイルしようとすると、リンク時エラーが発生します。
「--relocatable-device-code true」オプションなどを指定して nvcc を試しましたが、成功しませんでした。ロードされたモジュールは次のとおりです。
OpenACC内でcudaデバイスカーネルを使用する正しい方法を教えていただけますか?
openmp - OpenMP プログラミング モデルを使用した GPU の動的/ネストされた並列処理
質問は、OpenMP のターゲット構造の宣言とGPU の動的/ネストされた並列処理機能に関連しています。OpenACC 2.0 は、2 つの方法で動的並列処理をサポートします。ルーチンディレクティブと並列/カーネル ディレクティブをネストされた方法で使用します。ただし、ターゲット、チーム、配布などのネストされたデバイス ディレクティブの使用は、OpenMP では禁止されています。しかし、ターゲット ディレクティブの宣言は、OpenACC のルーチン ディレクティブと似ているように思えます。
ただし、セマンティックとその使用法はまだ明確ではありません。私のサンプルコードはこんな感じです。
その例では、関数 foo がデバイス関数としてマップされることを期待しています。しかし、内部にターゲット構造があるため、コンパイラはこのコードを何らかの方法で変換します。私の質問はここにあります。スレッドがターゲット コンストラクト内で foo 関数の呼び出しに遭遇するとどうなりますか?
c++ - OpenACC を使用して、いくつかの関数を呼び出す大きなコードを並列化できますか?
シーケンシャル C コードを並列化し、OpenACC (PGI コンパイラ) を使用して NVIDIA GPU にオフロードしようとしています。
私のコードはシーケンシャルコードとして書かれています。以下のように、非常に長い関数を頻繁に呼び出します。
そのような場合、big_function()は GPU で並列化して実行できますか?
#pragma acc kernels を使用して、 for ループ全体を並列領域に宣言しまし た。以下のように。
しかし、コンパイルされたファイルが完了するまでに非常に長い時間がかかります。そして、結果は正しくありませんでした。
OpenACC を使用して、多くの関数呼び出しを使用するシーケンシャル コードを並列化できますか?
または、big_function()を分割して小さな部分に分割する必要がありますか?
cuda - OpenACC のネストされたディレクティブ
OpenACC のネストされた機能を使用して、GPU カードの動的並列処理をアクティブにしようとしています。私は Tesla 40c を使用しており、OpenACC コンパイラは PGI バージョン 15.7 です。
私のコードはとてもシンプルです。次のコードをコンパイルしようとすると、コンパイラからこれらのメッセージが返されます
私のコード構造:
また、ルーチン ディレクティブを使用するようにコードを変更しようとしました。しかし、私は再びコンパイルできませんでした
もちろん、内部の並列ループディレクティブを使用せずにルーチン (seq、worker、gang) でのみ試しました。コンパイラはされていますが、動的並列処理は有効化されていません。
OpenACC で動的並列処理を使用するにはどうすればよいですか?
cuda - OpenACC でのキャッシュの使用
ラプラス 2D ソルバー内の特定のループに !$acc キャッシュを使用しようとしています。-Mcuda=ptxinfo を使用してコードを分析すると、共有メモリ (smem) が使用されていないことが示されますが、コードは基本条件よりも遅く実行されますか?!
コードの一部を次に示します。
これは !$acc キャッシュを使用した出力です
これは、キャッシュなしの出力です。
また、-Minfo=accel によって、ある程度の量のメモリーがキャッシュされていることが示されます。
OpenACC でキャッシュ (CUDA の意味での共有メモリ) を効率的に使用する方法を知りたいですか?
手伝ってくれてどうもありがとう。
ベザド