私たちはFortranで書かれたプロジェクトを持っています。OpenACC Library相互運用性:デバイスポインタを取得する方法は?
今私は、これはPGIコンパイラを使用して行うことができますが、私はライセンスが立ち往生する必要はありません知っています。
私たちは私たちのプロジェクトでOpenACCを使用できるかどうかを確認しようとしています。ここではgcc5.2のインストール手順を説明します。
https://github.com/olcf/OLCFHack15
今私はここに記載されているものと同様の何かをしたいです。具体的にはセクション8.3に記載されているものを
https://gcc.gnu.org/onlinedocs/libgomp/OpenACC-Library-Interoperability.html
。私はgfortranを使って正確に再現しようとしています。残念ながら、私はfortranでそれをどうやってやれるのか分かりません。例では、
d_X = acc_copyin(&h_X[0], N * sizeof (float));
これはD_Xが直接
s = cublasSaxpy(h, N, &alpha, d_X, 1, d_Y, 1);
で使用することができます。しかし、FORTRANで、acc_copyin
は何も返しません。
したがって、私はFortranでこのケースをどのように複製しますか?
仕様を見ると、OpenACCのFortranインターフェイスはかなり制限されているようです。これは 'type(c_ptr)'を使って可能だったとしても、ポインタのものを避けています。 'bind(C)'を使ってC関数を呼び出すことが可能かどうか分かりません。 –