第7回:今あるプログラムを楽に速くするためには
今回で 拡散方程式のプログラム 例は終わりです。
ここまで学んだこと(+α)のまとめとして、何をすればどのくらい速くなるのかを見ていきます。
ここまでで解説した指示文(+α)を使って最適化した場合、どのくらい速くなるのか確認してみましょう。
第6回:プログラムの実行時間を確認しよう
前回は、拡散方程式のプログラムを例として、OpenACCのコンパイラが出力するメッセージについて学びました。
今回は、OpenACCプログラムを実行した際の、プログラムの性能の確認方法について学びます。
GPUを使う上で必ず考えなければならないのが、プログラムの実行速度です。
第5回:コンパイラのメッセージを確認しよう
前回に引き続き、拡散方程式のプログラムを例として、OpenACCの使い方を学びます。
…では、PGIコンパイラ (ver. 19.10) を用いて、このプログラムをコンパイルしてみましょう。コンパイル時に出力されるメッセージが図2です。
第4回:拡散現象シミュレーションのOpenACC化
前回は、非常に簡単なプログラムを例として、データ転送の最小化について考えました。
今回はもう少し実践的な例として、拡散方程式を扱います。今回は、前回行ったデータ転送の最小化が如何に重要なのかを知ってもらうために、拡散現象のシミュレーションプログラムをOpenACC化してみましょう。
第3回:データ転送の最小化はほとんどのアプリケーションで必須
前回は、図1のプログラムを例にして、OpenACCの主要な3つの指示文:kernels, data, loop指示文を紹介しました。
今回はプログラムの効率について考えてみましょう。
第2回:その前に知っておきたいGPUの特徴
前回の記事では、GPUプログラミングにおけるOpenACCの立ち位置や、OpenACCで記述可能な並列処理など、OpenACCの概要を説明しました。
今回からは、具体的なOpenACCの使い方について解説していきます。
第1回:今あるプログラムを楽に速くするためには?
「GPUが速いのは知ってるけれど、GPUプログラミングは難し過ぎる!」と思っているそこのあなた!
OpenACCという並列プログラミングモデルをご存じでしょうか。
OpenACCは、GPUプログラミング(正確には演算加速装置向けのプログラミング)をより楽にするために開発された並列プログラミングモデルです。OpenACCは、以下のような方にお勧めです。