Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習用PCの選び方

 機械学習用PCの選び方

start

July 11, 2022
Tweet

More Decks by start

Other Decks in Programming

Transcript

  1. Google Colab (Pro, Pro Plus) Kaggle Notebook GCP or AWS

    自作 or 実機購入 タイプ クラウド クラウド クラウド オンプレミス 長所 ・費用対性能高い ・メンテいらず ・共有しやすい ・TPUも使える ・無料 ・メンテいらず ・TPUも使える ・性能高い ・メンテいらず ・使用時間制限なし ・高いカスタマイズ性  (性能,料金) ・使用時間制限なし ・dockerでライブラリ  統一可能 短所 ・通信不安定 ・最長24時間まで ・ライブラリの  Ver.設定が煩雑 ・メモリ制限きつめ ・最長9時間まで ・値段かなり割高 ・環境構築するのは自分 ・導入後もメンテが必要 ・故障への恐怖心 ・騒音や電気代 クラウドかオンプレミスか
  2. Google Colab (Pro, Pro Plus) Kaggle Notebook GCP or AWS

    自作 or 実機購入 タイプ クラウド クラウド クラウド オンプレミス 長所 ・費用対性能高い ・メンテいらず ・共有しやすい ・TPUも使える ・無料 ・メンテいらず ・TPUも使える ・性能高い ・メンテいらず ・使用時間制限なし ・高いカスタマイズ性  (性能,料金) ・使用時間制限なし ・dockerでライブラリ  統一可能 短所 ・通信不安定 ・最長24時間まで ・ライブラリの  Ver.設定が煩雑 ・メモリ制限きつめ ・最長9時間まで ・値段かなり割高 ・環境構築するのは自分 ・導入後もメンテが必要 ・故障への恐怖心 ・騒音や電気代 クラウドかオンプレミスか ここを詳しく
  3. PCのパーツ一覧 説明 グラボ GPU性能に関係.マシンを買う主目的.ニューラルネットを動かす場合に重要. プロセッサ CPU性能に関系.軽視しがちだがニューラルネット部分 (と一部のライブラリ )以外は基本的に CPU上で 動くため侮れない.

    EDA, 画像前処理, table dataに対する機械学習 (GBDTほか)などなど... メモリ CPUを使用する際に関係するメモリ.自作する場合にカスタマイズできるパーツのひとつ SSD ストレージ ※その他,自作するなら電源,マザーボード,ファン, PCケースなどもカスタマイズする
  4. 各パーツの詳細 (グラボ編) ・グラボはNVIDIAとAMDの2社が大きなシェアを占めるが,機械学習用 GPUだとNVIDIAが主流  (CUDAのシステム構築が迅速だったことに起因 ) ・NVIDIAの商品ブランドは以下の通り - GeForce …

    一般PC用.ゲームに使われるが機械学習界隈でもよく聞く - Quadro … 業務ワークステーション用. - Tesla … 業務サーバー用.Google Colabでも採用されている ・現在では名前に Quadro, Teslaの使用は廃止されており,  Quadro後継機(ワークステーション用) - NVIDIA RTX A6000 / NVIDIA RTX A5000  Tesla後継機(サーバー用) - NVIDIA A100 / NVIDIA A40 / NVIDIA V100  のようなネーミングに変わった
  5. 各パーツの詳細 (グラボ編) ・NVIDIAのGPUには世代があり,原則として世代が進むほど性能が高くなる (全例ではない)  Kepler(2012-) → Maxwell(2014-) → Pascal(2016-) →

    Volta(2017-) → Turing(2018-) → Ampere(2020-) → Hopper(2022-) ・製品名に世代の頭文字が付いていることが多い (ex. NVIDIA RTX A6000, NVIDIA V100, …) ・GeForceには世代頭文字が付いていないが,  GeForce GTX 10XX系がPascal  GeForce GTX 16XX系やGeforce RTX 20XX系がTuring,  GeForce RTX 30XX系がAmpere  といった具合になっている
  6. 各パーツの詳細 (グラボ編) なお,GeForceは以下の命名規則により名前がつけられている NVIDIA GeForce RTX 3080 Ti GeForce …

    ブランド名 RTX … クラス(等級).RTX > GTX.RTXには”Real Time Ray Tracing”という技術や   Tensor Coresという機械学習の行列演算を高速化する仕組みが適応されている 30 … シリーズ.30XXや20XXなどがある.数字が大きいほうが新しい. 80 … 同一シリーズ内の性能差.数字が大きいほうが性能が高い. Ti … 同一型番内での性能差. Ti > Super > 無印. 3080より性能が良いけど 3090ほどじゃないときに困るので 3080Tiにしてみた,というノリ.
  7. 各パーツの詳細 (グラボ編) 主なNVIDIA製グラボのGPUメモリ(VRAM)は以下の通り 製品名 H100 (SXM, PCle, CNX) A100 RTX

    A6000 A40 GeForce RTX 3090 V100 Quadro RTX 8000 VRAM [GB] 80 80 or 40 48 48 24 32 or 16 48 参考として,Kaggle NotebookのGPU使用時における VRAMは16GB程度.これだと足りなくなることも多い.
  8. 各パーツの詳細 (グラボ編) 自宅PC ワークステーション サーバー Pascal (2016-) GeForce GTX 10XX

    Quadro P6000 P100 Volta (2017-) TITAN V Quadro GV100 V100 Turing (2018-) GeForce GTX 16XX GeForce RTX 20XX Quadro RTX 8000 T4 Ampere (2020-) GeForce RTX 30XX RTX A6000 A40, A100 Hopper (2022-) H100 (SXM, PCle, CNX) ※世代が新しい方が必ずしも性能が高い訳ではない.例えば T4はColab Pro, V100はColab Pro +で採用されている ここまでのまとめ (用途と世代ごとにNVIDIA製品の一部を分類)
  9. 各パーツの詳細 (プロセッサ編) ・プロセッサの大手はIntelとAMDの2社.今回はIntelに絞って調べる. ・Intel製のブランドとしてCoreとXeonのふたつがある.Xeonは業務用(サーバーやワークステーション ) ・プロセッサのスペック表にはコア数,スレッド数,クロック数などの要素がある  コア数 … CPUの中核となる構成単位の数.シェフの人数に例えられる.  スレッド数

    … コアをさらに細かく区切った部屋の数.ソフトウェアはこの部屋をもとに稼働し,          コア内のスペースを無駄なく有効活用.シェフが使用するコンロの数に例えられる.  クロック数 … CPU内で1秒間に生じる信号の数.多い方が性能が高い.シェフの機敏さに例えられる.
  10. 各パーツの詳細 (プロセッサ編) ・Coreに関して言うと以下のような命名規則 Intel Core i9-10980XE Core … ブランド名.Core or

    Xeon. i9 … シリーズ名.i3, i5, i7, i9などがあり,数字が大きいほどハイエンドモデル. 10 … 世代.この例では 10世代.数字が大きいほど新しいモデル. 980 … 同一シリーズ同一世代内での minor version. 数字が大きいほど性能が高いと考えてよいが シリーズや世代の違いほど大きな変化はもたらさない. XE … 末尾のアルファベットでそのプロセッサの想定使用用途を何となく把握できる 詳細は他に譲るが,例えば XEなら高性能高価格.なお, XやKなどのハイエンドモデルは その高い発熱性ゆえに冷却ファンが付いておらず,自作の場合には自前で用意が必要らしい.
  11. 各パーツの詳細 (プロセッサ編) 「型落ち世代の i9と最新世代の i7だとどちらが性能が良いか?」 → このような場合に重宝するのが PassMarkを始めとしたベンチマーク ・「(プロセッサ型番) passmark」とググるとベンチマークスコアが出てくる

    ・プロセッサだけでなくグラフィックボードでも上記の方法でベンチマークスコアが分かるが,  ここで出てくるスコアはもしかしたら機械学習には最適化されていないかもしれない.
  12. 各パーツの詳細 (メモリ編) ・CPUメモリは以下のようなケースで必要となる A. 変数に巨大な容量のデータを代入する場合 (扱うテーブルデータが巨大な場合など ) B. 高速化のため一度使ったデータをメモリにキャッシュして再利用するとき ・参考として,Kaggle

    NotebookでGPU使用時のCPUメモリは13GB.これだと足りなくなることも多い. ・例えば16GB×1枚と8GB×2枚だったら後者の方がデータ転送速度の点で優れる  (デュアルチャンネルという.データの通り道が広くなるため早くなる. ) ・PCパーツの中では相対的に安い部類なので迷ったら多めに積んどいた方がよさそう?