CUDA Fortran

最終更新日:2019年1月15日

CUDA Fortranは Fortran向けのGPUプログラミング環境です。 Fortranを拡張した言語仕様が提供されており、これを用いることでGPUに様々な処理を行わせることができます。 CUDA Fortranの詳細な仕様や利用法については以下のページをご参照ください。


利用環境

システム・バージョン・利用範囲

  • サブシステムB
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    17.7
    16.5
  • 基本フロントエンド
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    17.7
    16.5
  • 大容量フロントエンド
  • バージョン 九州大学構成員 学術研究機関構成員 民間利用の方
    17.7
    16.5

利用方法

環境設定(moduleコマンド)

CUDA FortranプログラムのコンパイルにはPGIコンパイラ(pgcc, pgc++, pgfortran)を使用します。

$ module load pgi/17.7

他のバージョンを明示的に指定して使うことも可能です。


プログラムの作成とコンパイル

CUDA Fortranのプログラムを格納するファイル名の拡張子には、 通常の Fortranと同じ .f や .f90 等を使用してください。 (CUDA Fortranであることを示す .cuf を指定しても構いません。)

CUDA Fortranプログラムのコンパイルは以下のように行います。 (ソースプログラム: test.f90, 実行ファイル: test)

$ pgfortran -Mcuda=cc60 -tp=haswell -o test test.f90

バッチジョブでのプログラム実行方法

コンパイルされたプログラムは、通常のコマンドと同様にジョブスクリプトに記述して実行できます。 コンパイル時と同様にmodule load pgi/17.7を行っておく必要があります。

#!/bin/bash
#PJM -L "vnode=1"
#PJM -L "vnode-core=36"
#PJM -L "rscunit=ito-b"
#PJM -L "rscgrp=ito-g-4"
#PJM -L "elapse=1:00"

module load pgi/17.7
./test

主なコンパイルオプション

CUDA Fortran特有の主なコンパイルオプションは以下の通りです。 PGIコンパイラ全体の挙動に関するオプションやホスト部のコード生成に関するオプションは PGI Fortranコンパイラと共通ですので PGIコンパイラ | 九州大学情報基盤研究開発センター もご参照ください。

コンパイルオプション 説明
-ta=options CUDA Fortranにより並列化される部分を実行するアクセラレータのアーキテクチャに関する情報を指定する。 サブシステムB・基本フロントエンド向けの基本的なオプションは-ta=tesla,cc60、 大容量フロントエンド向けは-ta=tesla,cc50。