top of page
東北大学 理学研究科物理学専攻
森田 克洋
PCの性能について
PCの(CPUなどの)性能っていってもあまりにも色々ありすぎて全然よくわからん!
物理の計算を行いたいにも関わらず、とりあえずゲーミングPCとしての性能が良ければ良いんじゃね?って考えている人も多いだろう。
そして最近ではAMDかIntelのCPUどちらの方がいいのか?など気になるところ。
また学生からもたまに
「こっちのPCとこっちのPCどちらの方がいいですか?」
などの質問を受けることがある。
もちろん最適なPCというのは計算方法やソースコードによって極めて強く依存する。
ここではこれらの疑問を少しだけ真面目に考えてみる。
以下ではMPI並列やGPUの性能や細かいことを除いて、代表的なPCの性能について簡単にまとめる。
①CPUの演算性能:FLOPS(フロップスなどと呼ばれる)
②メインメモリ量 (単位は例えばGB)
③メインメモリ転送速度 (単位はGB/sなど)
④CPUキャッシュメモリ性能 (大きさや速度など)
⑤SSDの性能 (大きさ(TB)や速度など(GB/s)など)
である。
これらは新しいPCを買う際などで特に注目する性能である。(逆を言えば、これ以外はそこまで気にしない)
注意:以下に書かれている具体的な数値や内容、大まかな値段は2023年4月頃を基準にしてます。数年後は全く変わってくると思います。
まず①についてだが
GFLOPSで用いられることが多く、これは1秒間に何ギガ回計算できるのか?といもの。
コア数×CPUクロック数×SIMD性能による係数÷10^9 = GFLOPS単位の性能
で算出できる。
SIMD性能による係数は基本的に倍精度実数演算の場合はAVX2に対応の場合は16、AVX512に対応の場合は32を代入すればOK。
例:16コアで4.5GHzでAVX512に対応で2,304GFLOPS (速い!)
②のメモリ量は1本で256GBのメインメモリも存在するようだ。
最近では48GBのものも販売され始めているようだ。(その他、細かいことは割愛)
次に③の計算方法だが
メモリの性能としてDDRX-XXXXなどが記載されている。例えばDDR4-3200など。
この場合③は
メモリチャンネル数×XXXX×8÷1000 = GB/s単位の性能
になる。これは一秒間に何GBの情報を送ることが出来るのか?といった性能である。
例:メモリチャンネル数=2,DDR5-6400 で 102.4GB/s (速いのか?)
(無論マザボがこれらに対応しているかも必須、さらに細かいことは割愛)
④に関してはCPU単体に依存する。
最近では128MBの(3次)キャッシュメモリのCPUが10万円前後で購入できるようだ。
現状では明らかにIntelに比べAMDのCPUの方がキャッシュメモリのサイズは大きい。(値段が同じ程度のCPUで比較した場合)
(通常1次キャッシュ~3次キャッシュまであるが細かいことは割愛)
⑤については、最近ではM.2規格で数TBで数GB/sの性能のSSDが数万円程度で販売されている。
では、①~⑤のどの性能を高めるべきか?
例えば内積計算の場合、計算速度としては①よりも③が重要で(なぜならば、上の例の計算結果を比較すれば両者に20倍程度差があるため)、密行列密行列の積では①が重要である。また計算に必要なメモリがキャッシュメモリに全部入りそうなら④が重要になる。
以上を踏まえると、完全に個人の意見であるが重要度順に並べると、
DMRG計算の場合
1.①CPUの演算性能 (圧倒的に重要)
2.②メインメモリ量
3.⑤SSDの性能
4.③メインメモリ転送速度 (模型あるいはプログラムの最適化次第では重要になってくる)
厳密対角化の場合
1.②メインメモリ量 (圧倒的に重要)
2.③メインメモリ転送速度
3.①CPUの演算性能 (2.とほとんど差はない)
4.⑤SSDの性能
5.④CPUキャッシュメモリ性能
通常の古典モンテカルロの場合
1.④CPUキャッシュメモリ性能
2.①CPUの演算性能
3.⑤SSDの性能 (データを沢山保存する場合)
以上参考までに載せてみました。
bottom of page