Upload
lucien
View
140
Download
0
Embed Size (px)
DESCRIPTION
CPU と GPU の 性能比較 -行列計算および N 体問題を用いて-. 大阪工業大学 情報科学部 コンピュータ科学科 Q07-065 富久 友樹. 研究目的. グラフィック用の演算目的に開発された GPU は高い並列計算能力を持っているとされる。 この能力を利用し、科学的数値計算において、従来の CPU を用いるシミュレーションに対し、どの程度 CPU と GPU の性能が違うかを調べることを目的とする。. GPU とは. - PowerPoint PPT Presentation
Citation preview
研究目的
グラフィック用の演算目的に開発された GPU は高い並列計算能力を持っているとされる。
この能力を利用し、科学的数値計算において、従来の CPU を用いるシミュレーションに対し、どの程度 CPU とGPU の性能が違うかを調べることを目的とする。
GPU とはグラフィックボードに搭載されていて、3
D グラフィックスの表示に必要な計算処理を行うプロセッサ (Graphics Processing Unit )
高い並列計算能力を持っており、この能力をグラフィック描画だけでなく汎用の数値計算にも利用することに近年注目が集まっている。
本研究で使用した GPU は“ GeForce GTX 285 ( 2009 年製)”でコア数は 240 個、メモリは 1GB である。 CPU は Core2 Quad Q9650 3.00GH z、メモリ8GB である。
CUDA とは
NVIDIA 社が提供する GPU 向けの C 言語の統合開発環境であり、コンパイラやライブラリなどから構成されている。
CUDA で GPU 向けのプログラムを開発するには NVIDIA 社のグラフィックボードと対応している OS (例えば Windows/Linux/Mac )が必要である。
CUDA のメモリモデル CUDA では主に、グローバルメモリとシェアードメモリを使う。
グローバルメモリの特徴はアクセス速度が低速で大容量のデータを記憶できる。
シェアードメモリの特徴はアクセス速度が高速で記憶できるデータが少ない。
行列計算n 行 m 列の成分が n+m-1 の正方行列
(サイズ N * N )の積を計算した。
行列計算を用いた理由は並列計算に向いているため、演算速度の違いを比較するのに向いていると考えたからである。
1 2 1 2 1*1+2*3 1*2+2*4
3 4 3 4 3*1+4*3 3*2+4*4
7 10
15 22
1.00E+03 1.00E+04 1.00E+05 1.00E+06 1.00E+07 1.00E+08 1.00E+09 1.00E+10 1.00E+11 1.00E+12
1
10
100
1000
10000
100000
1000000
CPU
GPU_global
GPU_shared
演算回数(回)
FLOPS
(MFlops
)
16 行16列 4096 行 4096
行列計算による性能比較図
2074sec
3.75sec
0.6sec
・必ずしも GPUの演算速度が CPUを上回るとは限らない。・GPUは N=256から演算速度の伸びが悪くなっている。
N 体問題N 個の天体が万有引力で互いに相互作用し
合い、それによってどのように変化していくのかを数値計算を利用して求める問題である。
本研究では、 3 次元の N 体問題を 4 次の Runge-Kutta 法を 用いてシミュレートする。
精度CUDA に対応した GPU は IEEE754 に準
拠しているとある。しかし、丸め誤差の違いにより CPU と演算結果が違うことがあった。
CUDA では、 Add と Multiple という二つの演算を組み合わせて積和を行った場合は積和の中間結果を切り捨てるようになっており、 CPU と演算結果が異なる可能性がある。
そのため、 Round Nearest という、 IEEE754 で規定されている丸めモードを指定するための関数が用意されている。