問題タブ [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.

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

c++ - OpenACC 並列カーネルが生成されない

コードをグラフィカルに高速化するために、PGC++ でコードを開発しています。

  • Eigen に依存する OpenBabel を使用しています。
  • #pragma acc kernel を使ってみた
  • #pragma acc ルーチンを使用してみました
  • 私のコンパイル コマンドは次のとおりです。 pranav/new_installed/lib/openbabel/main.cpp/home/pranav/new_installed/lib/libopenbabel.so"

次のエラーが表示されます

注: 66 行目は「mol.SetTorsion(a[0],a[1],a[2],a[3],i*(3.14159265358979323846/180));」です。以下の貼り付けられたボードで。

このエラーを表示している私のコードは次のとおりです。

Googleでの一次検索から、これはmol(OBMolオブジェクト)の「後方依存」のために発生しているエラーであることがわかりました。誰かがそれに対する解決策を知っているなら、私を助けてください。

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

opencv - opencv 使用時の accull のコンパイラ コマンド

OpenACC を使用して作成した opencv プログラムを高速化しようとしています。accull コンパイラを使用してこれを実行しています。ただし、この問題に役立つドキュメントや例を見つけるのに非常に苦労しています。

http://scelementary.com/2015/04/30/openacc-on-jetson-tk1.html

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

fortran90 - サブルーチンを OpenACC データ領域で動作させる方法

私は、OpenACC を使用してかなり大きなサイズのコードを計測している最中です。現在、次のように、他のいくつかのルーチン bar、far、および boo を呼び出すルーチン foo を遅延させています。

ポイントのカップル: 1) x、y、および z は、ループを通じて一定のままです。2) ここにあるコードの構造が気に入らないかもしれませんが、それは私の仕事の説明を超えています。私は OpenACC で計測することになっています。

私は現在、「bar」への呼び出しに集中しています。bar をベクトルルーチンにしたい。私は far と boo に対して同じことをする準備ができていません。したがって、並列領域内から bar を呼び出したいのですが、far と boo で同じことを行う準備ができていません。(これは進行中の作業だと言いましたよね?)今、できると思います!-- バーを独自の並列領域に挟み、各ループ反復でバーとの間でデータをコピーします

しかし、それは大量のデータ転送です。x、y、z を 1 回だけデバイスに転送できればよいのですが。各ルーチンには独自のデータ領域があるため、私が理解しているように (間違っていたら訂正してください!)、ループ全体を 1 つのデータ領域に入れることはできません。ここに私が試した代替案があります

ただし、 のデータがcopyinデバイス上に保持されないため、これは機能しません。data present句が現れると消えます。(私も試しdata createましたdata copyin。)

私がここでやろうとしていることをする方法はありますか?ありがとう。

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

fortran - OpenACC ライブラリの相互運用性: デバイス ポインタを取得するには?

Fortran で書かれたプロジェクトがあります。

これは PGI コンパイラを使用して実行できることはわかっていますが、ライセンスに行き詰まりたくありません。

プロジェクトで OpenACC を使用できるかどうかを確認しようとしています。こちらの手順を使用して gcc5.2 をインストールしました。

https://github.com/olcf/OLCFHack15

今、私はここに述べられていることと同様のことをしたいと思っています。

https://gcc.gnu.org/onlinedocs/libgomp/OpenACC-Library-Interoperability.html

より具体的には、セクション 8.3 に記載されています。gfortranを使用して正確に再現しようとしています。残念ながら、fortran でそれを行う方法がわかりません。例では、

これにより、d_X を直接使用できます。

しかし、fortran では、acc_copyinは何も返しません。

では、Fortran でこのケースを再現するにはどうすればよいでしょうか。