目次
はじめに
最近ローカルAIが流行っているし、いい感じの機材が手元に揃っているので構築してみることにしましたが、お金がないし、GPUも無いです。何を買いましょう...ということでまとめてみました。
世代別の比較
Wikipedia「CUDA」
TECHPOWERUP「GPU Specs Database」
| アーキテクチャ名 | Compute Capability | コンシューマ向け(RTX, GTX) | 計算用(Tesla) | エンタープライズ向け(Quadro) | AI用途として |
| Blackwell | 12.0 | RTX50x0 | - | RTX PRO x Blackwell | |
| Hopper | 9.0 | - | Hx(H100,H20...) | - | |
| Ada Lovelace | 8.9 | RTX40x0 | Lx(L40, L4...) | RTX x000 Ada | この世代以降FP8のサポート |
| Ampere | 8.0, 8.6 | RTX30x0 | Tesla Ax(A100,A30...), GRID A100x | RTX Ax(A6000, A400...) | この世代以降BF16のサポート |
| Turing | 7.5 | RTX20x0, GTX16x0, TITAN RTX | Tesla Tx(T40, T4...) GRID RTX T10=x | Quadro RTXx000 | この世代以降CUDA13に対応 TensorはINT4、INT8にも対応 |
| Volta | 7.2 | TITAN V | Tesla V100 | - | この世代以降Tensor Core搭載 TensorはFP16のみ |
| Pascal | 6.1 | GTX10x0, TITAN Xp | Tesla Px(P40, P4...) P10x-10x(P102-100) | Quadro Px(P620, P2200, P6000...) | FP16が非常に遅い マトリクス計算が高速 |
| Pascal(GP100) | 6.0 | - | Tesla P100 | Quadro GP100 | FP16は高速 マトリクス計算が遅い |
| Maxwell | 5.0, 5.2 | GTX9x0, TITAN X | Tesla Mx(M40,M60...) GRID Mx | Quadro Mx000 | FP16非対応 |
| Kepler | 3.0, 3.5, 3.7 | GTX6x0, GTX7x0 | Tesla Kx(K8, K20...), GRID Kx | Quadro Kx(K420, K5000...) | FP16非対応 CUDA10.2or11.8まで Ollama非サポート |
AI用途で買うのであれば、Volta以降のTensor Coreが必須というイメージです。できることならBF16のサポートがあるAmpere世代以降がもっとも無難です。しかし、貧乏学生である私にRTX3060などを買っている資金力はありません。2万円以下で買え、VRAMがそこそこあるものを探してみます。
型落ちGPU比較
古い世代(Volta~Kepler)のTeslaのベンチマークは下のサイトが詳しく検証しています。
esologic「Benchmarking 15 “E-Waste” GPUs with Modern Workloads」
Volta世代とTuring世代の比較
Volta世代からTensor Coreがあるためそれなりに高速に動作します。しかしながら、CUDA13には対応しておらず、今後の各ソフトウェアのサポートが不安です。また、FP16以外は対応していないため、量子化モデルを実行するとTuring世代に比べて遅いかもしれません。Tesla V100であれば、HBM2、16GB搭載で4万円くらいで購入できるので、そこまで悪くは無いですが、4万円だと、中古のRTX3060のほうが安いので、CUDAのバージョンなども考えるとなんとも言えません。
Turing世代と比較すると、Tensor CoreのINT4、INT8の対応の違いがあります。下の表のppはPrompt Processing(Prefill)で整数マトリクス演算の性能が比較的出やすく、tgはToken Generationでかなり複合的な要因(メモリ帯域や命令数など)による感じです。V100のほうがRTX 2080 Tiよりも基礎性能(メモリ帯域、FP32やFP16)は高いですが、V100もRTX 2080 TiもPrefillに関してはあまり差が見られません。Token GenerationはHBMや基礎性能の高さから、V100のほうが3割高いぽさそうな感じです。
| FP16 TFLOPS | 帯域 GB/s | non FA pp512 t/s | non FA tg128 t/s | FA pp512 t/s | FA tg128 t/s | |
| Tesla V100 | 113.0 | 897.0 | 3042.64 ± 40.71 | 129.08 ± 0.05 | 2973.78 ± 3.62 | 134.76 ± 0.02 |
| RTX 2080 Ti | 107.6 | 616.0 | 2890.66 ± 2.42 | 107.51 ± 0.21 | 3107.61 ± 4.34 | 109.17 ± 0.07 |
Pascal世代について
Pascal世代はTensor CoreがないためVolta以降に比べて基本的にかなり遅いです(P40はRTX 2080 Tiの半分以下)。Pascalには2つあって、GP100(Tesla P100、Quadro GP100)とそれ以外があります。
GP100はHMB2を使用しているのでメモリ帯域が非常に高速でなおかつFP16の計算も高速です。しかしながら、整数のマトリクス計算を行うDP4Aが無いため、4bit量子化モデルを実行すると思ったよりも速度が出ず、GTX 1080 Tiよりも遅いことがあります。
GP100以外のPascal世代はFP16の計算が非常に遅いです。そのためFP16を使いたい場合(量子化されていないモデルなど)は話になりません。
比較を行うと、Prompt ProcessingはAP4Aが効くので、P100は遅いです。しかし、Token Generationではメモリ帯域や基礎性能の差からP100が優位になります。
| FP16 TFLOPS | FP32 TFLOPS | 帯域 GB/s | nonFA pp512 t/s | nonFA tg128 t/s | FA pp512 t/s | FA tg128 t/s | |
| Tesla P100 | 19.05 | 9.526 | 732.2 | 760.80 ± 2.92 | 58.35 ± 0.00 | 787.36 ± 3.27 | 61.99 ± 0.00 |
| Tesla P40 | 0.184 | 11.76 | 347.1 | 1007.42 ± 1.23 | 54.74 ± 0.07 | 1079.66 ± 0.18 | 53.73 ± 0.05 |
| GTX 1080 Ti | 0.177 | 11.34 | 484.4 | 1084.41 ± 3.01 | 62.49 ± 0.06 | 1138.14 ± 2.02 | 61.38 ± 0.03 |
Pascal世代よりも前の世代
Maxwell以前の世代は基本的に変わらないと思います。FP16、DP4A非対応、Tensor Core、HMBなしです。かなり遅いです。M40はP100のHMB無しの速度と言った感じだと思います。P100とM40のToken Generationの差が意外と無いのが意外です。
| FP16 TFLOPS | FP32 TFLOPS | 帯域 GB/s | nonFA pp512 t/s | nonFA tg128 t/s | FA pp512 t/s | FA tg128 t/s | |
| Tesla P100 | 19.05 | 9.526 | 732.2 | 760.80 ± 2.92 | 58.35 ± 0.00 | 787.36 ± 3.27 | 61.99 ± 0.00 |
| Tesla M40 | - | 6.832 | 288.4 | 282.65 ± 0.15 | 38.04 ± 0.02 | 290.17 ± 0.11 | 39.98 ± 0.01 |
| Tesla K80(1つあたり) | - | 4.11 | 240.6 | 133.14 ± 0.55 | 13.80 ± 0.02 | 133.36 ± 0.60 | 14.27 ± 0.32 |
VRAMあたりの価格が非常に安いTesla M60やM10、K80の用なものは1枚に複数のGPUが乗っています。Tesla M60は帯域がK80よりも細くメモリも少なく、M10はメモリこそ多い(32GB)ですが各GPUが弱すぎ&メモリ帯域狭すぎ、K80はOllamaでサポート外となっているので自力でのビルドが必要です。
おわりに
こんなに色々書きましたが、GPUを一通り買った後にこの記事を書きました。P100を2枚、M60を2枚、GTX1060 6GBを2枚、RTX2060 Superを1枚。はたして、こんな構成で動くのだろうか...
SXM2対応のマザーボードか、変換アダプタを安く買ってTesla V100の16GBをいっぱい買って運用したい!SMX2であること以外はコスパ・性能ともに申し分ない。Tensor Coreが強いGPUがほしい!!!
