概要
- 上長に「追加で買うから PC を選んでおいて」と言われてからの備忘録
- まずは NVIDIA の GPU について調べてみました
筆者のレベル
- ソフトウェア開発業務で GPU を使用しているひよっこエンジニア
- しかし、何がどう動いているのかよくわかっていない
- というか、これまで他人に任せていて、自分で機器の選定を行ったことがない
- 3DCG 系の業務だが、趣味で PC ゲームもしないし CG も作ったことない
- というか、そもそも自分の デスクトップ PC を持っていない
- 学生時代に買った ラップトップが一台あるのみ
- ただし、1 ヵ月に一回立ち上げたらいい方
対象者
- プログラムなどを書いたことがあるが、周辺機器の知識は皆無の人
- GPU に関してふわっとした知識はあるが、説明できるほどではない人
目標
- 「○○という理由で○○という GPU がいいと思います」と言えるようになる
お断り
- ひよっこエンジニアの備忘録なので、多くのエンジニアの方にとっては当たり前のお話になっています
- 基礎知識からスタートのため、参考にした既存情報の寄せ集めになっています
- 勉強のための備忘録となるので、具体的な選定や推奨はしていません
- 大小問わずコメント、ご指摘(マサカリ)大歓迎です
第一章「NVIDIA の HP をのぞいてみる」
「新しい GPU を買うので選定しておいて」と言われて、皆さんは何をしますか?
知識のある人は「○○の開発業務をしているので○○系がいいかなあ。スペックは○○以上なので予算と相談してこの辺りかな。」とそのカタログを見にいくかもしれません。しかし、ひよっこエンジニアの私は「ジーピーユーはエヌビディア」くらいの知識しかないので、とりあえずNVIDIA の公式HP をのぞいてみました。
「GPUじゃない...ぐらふぃっくすかーど...ってなんですか?」
1.1 GPU とグラフィックカードの違い
「GPU グラフィックカード 違い」と検索してみると、実際は「グラフィックカード」以外の似たような言葉で「グラフィックボード」「ビデオカード」という記事がヒットします。まずはそこからです。
ビデオカード
参考記事:https://akiba-pc.watch.impress.co.jp/docs/sp/1335138.html
- ビデオカードの基本的な機能は、画像の描画処理とモニタ(ディスプレイ)への画面出力
- ビデオカードの「頭脳」が GPU(Graphics Processing Unit)というチップ
- PC の「頭脳」である CPU(Central Processing Unit)に GPU は内蔵されているので、ビデオカードがなくても映像を出力することはできる
- 現在のビデオカードのほとんどの機能は、GPU に統合されており、ビデオカードの性能、機能は搭載している GPU でだいたい決まる
参考記事:https://e-words.jp/w/%E3%83%93%E3%83%87%E3%82%AA%E3%82%AB%E3%83%BC%E3%83%89.html
- ビデオカードとは、コンピュータの筐体内に取り付けて機能を追加する拡張カードの一種
- ディスプレイ装置と接続してグラフィックス表示を行うための機能を実装したもの
- 初期のパソコンなどはグラフィックス表示が標準機能ではなく、必要な利用者が後からビデオカードを購入して取り付ける方式が主流だった
- 現代では、専用のビデオカードを用いるのはゲームなどのために高性能な GPU が必要な場合のみ
わかったこと
- ビデオカードはグラフィックス表示をするための、色々な部品を含んだ大きな電子基板
- GPU はビデオカードの主要な部品の一つ
- ビデオカードは古い部品 or 昔の言い方(?)
グラフィックボード
- グラフィックボード(グラボ)とは、別名:ビデオカードとも呼ばれる、映像をパソコンのディスプレイに出力するためのパーツ
- 画像処理に特化して計算を行う半導体チップ「GPU」を搭載している
- パソコンの画像を処理するために必ずしもグラフィックボードを搭載する必要はなく、一般的な作業では CPU に搭載された GPU(内蔵 GPU)のグラフィック性能で十分
参考記事:https://www.nec-lavie.jp/products/contents/graphic-board.html
- パソコンのディスプレイに映像を表示する機能は、一般的に GPU と呼ばれ、グラフィックボードはこの GPU 用の専用 IC チップを搭載した拡張ボード
- 拡張ボードとは、パソコン内部に挿して機能を拡張できるもの
- 正確には GPU はグラフィック生成機能を持つ IC 回路だが、パソコン市場ではグラフィックボードを GPU と呼ぶこともある
- 後からグラフィックボードを追加できるノートパソコンはほとんどない
わかったこと
- グラフィックボードとビデオカードは同じ
- デスクトップパソコンに挿して、映像出力能力をパワーアップするもの
- 巷では「GPU = グラフィックボード」のような用語の使われ方をする場合もある
グラフィックカード
- 主にパソコンのグラフィック処理を担当する拡張ボード
- 他に「グラフィックボード」「グラフィックスカード」「グラフィックスボード」「グラボ」「ビデオカード」「ビデオボード」などの呼び方がある
わかったこと
- グラフィックカードとグラフィックボードとビデオカードは同じ
1.1 まとめ
- グラフィックカード / グラフィックボード / ビデオカードは映像機能を強化するための部品
- GPU はグラフィックカード / グラフィックボード / ビデオカード の主要な部品の一つ
- ただし、用語としては同じものとして扱われることもある
- CPU やマザーボードにも GPU は内蔵されていることが多く、グラフィックカード / グラフィックボード / ビデオカードは一般的に必要がない
- 映像機能を強化したいようなゲーム / 映像用途や、GPU を使う目的で使用する
1.2 NVIDIA とはそもそも何者?
どうやら GPU とは単体の部品のことを指す言葉だということを学びました。混同されて使用される場合があるとはいえ、GPU とグラボは違うものなのです。以前より「ジーピーユーはエヌビディア」という知識はありましたが、先ほどのぞいた NVIDIA 公式サイトには「グラフィックスカード」の文字がありました。あれ?NVIDIA は何を売っているのでしょうか?
- グラフィックカードに内蔵される単体GPUチップとは、グラフィックを処理するための専用チップ
- 単体GPU製品においては、NVIDIA社や、AMD社が大手GPUメーカー
- NVIDIAは1993年にシリコンバレーで設立されたファブレスの半導体メーカー
- ファブレス:工場を持たず外部のファウンダリー(受託半導体製造メーカー)に委託して製造するビジネスモデルのこと
- グラフィックスチップをGPU(Graphics Processing Unit)という言葉を創造して、CPUに並ぶ演算装置だという意識を確立することに成功
どうやら「ジーピーユーはエヌビディア」という知識は間違っていなかったようです。というかそもそも、GPU という言葉は NVIDIA が作ったんですね。初めて知りました。
- GeForce RTX グラフィックス カードは、ゲーマーとクリエイターのための究極のプラットフォームを提供
- NvidiaとAMDはあくまでもチップセットを供給するメーカーで、そこから各PCパーツメーカーが独自設計のグラフィックボードを販売している
- 各メーカーの使用しているGPU自体は同じものになるため、同じ型番であれば明確な性能の違いはない
- GeForceとは、アメリカの半導体メーカー「NVIDIA(エヌビディア)」の主力商品の一つで、画像処理に特化した半導体チップ(GPU:Graphics Processing Unit)の製品シリーズ名
- 同じNVIDIA社製のGPUにNVIDIA RTX™やNVIDIA Tなどのプロフェッショナル向け製品群(旧Quadroと呼ばれた製品群)があるが、こちらは3Dモデルの製作や3DCGのレンダリング、動画編集などといったクリエイティブ分野に向いている
参考記事:2023/12/12 Amazon
- Amazon の GeForce の公式ページでも様々なメーカーのグラボが並んでいる
1.2 まとめ
- NVIDIA は GPU の設計を行うファブレス半導体メーカー
- GeForceシリーズなどグラボも販売しているが、NVIDIA は GPU を提供していて、グラボ自体の製造と販売は他の企業が行っている(*第二章で「実はこれは GeForce ではという話」というのが出てくる)
第二章「NVIDIA の GPU を知る」
ここまでで、GPU とグラボの違い、NVIDIA の製品について概観はつかめました。これすら知らなかったので勉強になります。さて、ここからは「GPU を選定する」という命のもと、実際にラインナップを眺めていこうと思います。
NVIDIA の公式サイトで「グラフィックカード」のリンクを押すと、以下のラインナップが表示されます。
- GeForce RTX 40 シリーズ
- GeForce RTX 30 シリーズ
- GeForce RTX 20 シリーズ
- GeForce GTX 16 シリーズ
「GeForce」という製品シリーズに、「RTX」「GTX」などの中項目、さらに数字の小項目があるようですね。
しかし、ここでまた一つ疑問が生まれます。
「確か、業務で使っていたのは「Quadro」というシリーズだったような...。」
公式サイトに見当たらないのはなぜでしょうか?まさか、NVIDIA 製品ではない?
そこで「Quadro GPU」で検索してみると、「Quadro」という名前が入った NVIDIA の公式サイトが見つかりました。とりあえずよかった。
2.1 GeForce と Quadro / RTX™ の違い
GeForce、Quadro はともに NVIDIA の GPU を使ったグラボの製品シリーズ名であることがわかりました。何が違うのでしょうか?
参考記事:https://www.nvidia.com/ja-jp/design-visualization/quadro/
まず、「Quadro」は古い名称のようで、現在は「RTX」がその役割を担っているようですね。公式サイトを漁っていると、プロ用途向けの製品ラインナップとデータシート一覧を見つけました。現行の製品一覧(プロ用途)は以下のようです。
製品シリーズ名 | モデル名 |
---|---|
NVIDIA RTX | RTX 6000 Ada Generation |
RTX 5000 Ada Generation | |
RTX 4500 Ada Generation | |
RTX 4000 Ada Generation | |
RTX 4000 SFF Ada Generation | |
RTX A6000 | |
RTX A5500 | |
RTX A5000 | |
RTX A4500 | |
RTX A4000 | |
RTX A2000 | |
T1000 | |
T600 | |
T400 | |
NVIDIA Quadro | GV100 |
データセンター | L40 |
A40 |
こんなにあるんですね。細かい内容は詳細を見る際に比較するとして、ひとまずプロ用は Quadro/RTX™ という感じの理解でひとまずよさそうです。では、ゲームなど一般消費者向けの GeForce と プロ用途向けの Quadro/RTX™ の違いは何でしょうか?
- Quadroの最大の特徴は、業務用に提供されている製品であるということ
- GeForce は主にゲーム用途向けに開発された民生用製品
- Quadro は NVIDIA Mosaic を搭載している
- 複数のディスプレイを並べて、最大 16 台を1つの大型ディスプレイとして扱える機能
- GeForceではNVIDIA Surroundを利用して3画面まで対応
- QuadroはCADデザインや3Dレンダリングに強みを発揮するため、ゲームよりもCADやイラスト制作を行うクリエイターに適したGPU
- GeForce と Quadro/RTX™ の一番大きな違いは「どのAPIに最適化されているか」
- GeForceはDirectX用、QuadroはOpenGL用
- GeForceはOpenGLをやや苦手としているので、OpenGLが書いてあったらQuadroを選ぶことをおすすめする
参考記事:https://gamingpcs.jp/knowledge/parts/gpu/quadrongeforce/
- NVIDIA RTX/Tシリーズ製グラフィックボードは、APIにOpenGLを採用していて主に3D CADなどのアプリケーション向けに作られているモデル
- NVIDIA RTX/Tシリーズは、すべてNVIDIAが製造・販売している
- プロフェッショナル向けモデルでは処理速度よりも描写速度を重視しているため、省電力性が向上している
余談:DirectX って? OpenGL って?
わからない用語が出てきたので調べた。
- DirectXやOpenGLというのは、パソコンやスマホなどのコンピューターで3Dグラフィックスを表示するときに使うグラフィックス API の代表
- グラフィックスAPI:光の計算等のゲームやCGなどで必要な計算をしてくれるプログラムの部品
- DirectX:ルーツはゲームやマルチメディア
- マイクロソフトがWindowsでゲームや動画の表示、作成をするためにつくった
- Windows PC や Xbox で動くゲームにはほぼ必ず DirectX が使われているが、逆にそれ以外だと使えない
- 速度重視
- OpenGL:ルーツはコンピュータグラフィックス
- シリコングラフィックスというCG専門のコンピューターの会社がつくったが、今は管理団体が管理している
- パソコンよりも強力なCG用のコンピューターで使う
- 多くのメーカーが関わり、広く公開されている
- 正確さ重視
余談:データセンター GPU とは?
記事を読んでいるとよく「データセンター」というキーワードが出てきます。データセンターとは何でしょうか?
参考記事:https://www.nttpc.co.jp/column/data_center/data_center.html
- データセンターとは、サーバーやネットワーク機器を設置するために特別に作られた建物
- 内部にはサーバーを収納するラックが並び、ネットワーク機器を設置するスペースも用意されている
どうやらデータセンターとは、サーバーを預けて管理することで色々とメリットがある建物のことのようですね。自社のサーバールームでサーバーを管理する(i.e. オンプレミス)よりも、空調や耐震など物理的なメリットやセキュリティなどのメリットもあるようです。
では次に、データセンター GPU とは何でしょうか?
まず NVIDIA の公式サイトをのぞいてみます。
- NVIDIA® のデータ センター GPU を使用することで、最も要求の厳しい HPC やハイパースケール データ センターのワークロードを高速化できる
- プラットフォームはデータ センターのサーバー エコシステム全体を調整する
NVIDIA の記事を見る限りは、「建物」としての「データセンター」というよりは、「高負荷なワークロードを必要とされるサーバー(群)」というような意味で、NVIDIA の GPU はそこをカバーしているので、大規模な計算もへっちゃらだよという感じでしょうか。NVIDIA ではデータセンター GPU の認証があるみたいですね。
なお、こちらのインテルの記事でも似たような使い方をしていました。データセンター環境へ導入される GPU と言うことですね。
また、Quadro とデータセンター GPU の違いという点でこんな記事もありました。
- Quadroはワークステーション等に用いられ、ディスプレイ出力が装備されているが、データセンターGPUはデータセンター等サーバーで使われる事を念頭に開発されており、ディスプレイ出力はない
おそらく、グラフィック機能はないというよりは、単にディスプレイ出力が無いという感じですかね。
2.1 まとめ
- GeForce は処理速度重視、ゲーム用途の民生向け製品
- MSI・ASUS・GIGABYTE などの独立したメーカーが製造
- Quadro/RTX™ は描画速度や正確性重視、CG 用途のプロ向け製品
- NVIDIA が製造
2.2 A とか T とか 6000 とか、何者?
ここまででなんとなく GeForce、Quadro、RTX™ の違いが理解できました。しかし、まだわからないことがあります。NVIDIA RTX シリーズの RTX 6000 Ada Generation
や RTX A2000
を例にすると、6000
や Ada Generation
や A
など知らない単語が盛りだくさんです。調べてみました。
- NVIDIA 製のグラボの型番は「等級+シリーズ+グレード+接尾辞」で成り立っている
- 例:RTX3060Ti=RTX + 30 + 60 + Ti
- 等級
- 型番先頭の、等級を表すアルファベットには主に2種類
- GTX = Giga Texel Shader eXtreme
- Ray Tracing や DLSS に対応していない
- Ray Tracing:光の入り方をより現実に近づけることでリアルな描画が可能になる機能
- DLSS:機械学習によって効率的に描画をすることで、描画にかかる負荷を軽減してフレームレートを向上させる機能
- Ray Tracing や DLSS に対応していない
- RTX = Ray Tracing texel eXtreme
- シリーズ
- 上二桁の数字は、グラボのシリーズ(i.e. 世代)
- 基本的には数字が大きいほど新しく、新シリーズの方が高機能で高性能
- 等級
- 下二桁の数字は、シリーズ内でのグレード(i.e. 序列)
- 数字が大きいほどグレードが上
- グレードが同じであれば、シリーズが新しいほうが高性能
- 例:RTX4070 > RTX3070
- 接尾辞
- グラボの型番の最後に付く接尾辞は、無印(接尾辞なし)より性能が高いことを意味している
- Ti:性能のバリエーションを増やすために用いる
- 例:性能は、RTX3070Ti > RTX3070 で、RTX3080 > RTX3070Ti である
- Super:既存グラボの置き換えモデルとして用いる
- 例:RTX2080Super は RTX2080 の強化版であり、Super が出たら RTX2080 は消えていくということ
- Ti の方が Super よりも性能が高い
- 例:RTX2080Ti > RTX2080Super
余談:Pixel / Voxel / Texel
参考記事:https://ja.m.wikipedia.org/wiki/%E3%83%94%E3%82%AF%E3%82%BB%E3%83%AB
参考記事:https://ja.m.wikipedia.org/wiki/%E3%83%9C%E3%82%AF%E3%82%BB%E3%83%AB
参考記事:https://ja.m.wikipedia.org/wiki/%E3%83%86%E3%82%AF%E3%82%BB%E3%83%AB
- ピクセル(英: pixel)、または画素とは、コンピュータで画像を扱う際に、色情報 (色調や階調) を持つ最小単位、最小要素のこと
- ボクセル(英: voxel)とは、体積の要素であり、3次元空間での正規格子単位の値(-1~1)を表す
- テクセル(英: texel、Texture Element または Texture Pixel の略)は、コンピュータグラフィックスで使用するテクスチャ空間の基本単位
- テクスチャはテクセルの配列で表される
- 3次元オブジェクトの表面にテクスチャを投影(テクスチャマッピング)するとき、レンダラが出力画像の対応するピクセルにテクセルをマッピングする
2.2 まとめ
- NVIDIA のグラボは「等級+シリーズ+グレード+接尾辞」
- 等級が一緒ならシリーズが大きい方が性能がいい
- 等級、シリーズが一緒ならグレードが大きい方が性能がいい
- 等級、グレードが一緒ならシリーズが大きい方が性能がいい
- 等級、シリーズ、グレードが一緒なら接尾辞で判断する
2.3 アーキテクチャとは?世代とは?
グラボ表記を見てスペックを比較する方法がわかりました。しかし、NVIDIA RTX™ の「Ada generation」などの記載に関しては未だによくわかりません。公式サイトのアーキテクチャ一覧 を見てみましょう。...今の知識レベルではまだよくわからないですね。
とりあえず、以下のようにアーキテクチャが進化してきていることはわかりました。
- 最古世代のアーキテクチャ(公式一覧になし)
- 旧世代のアーキテクチャ
- 現世代のアーキテクチャ
どうやって進化してきたのか知りたくなったので、「GPU アーキテクチャ」について検索し、入門からかみ砕いて説明していただいている記事を参考にしました。「GPU アーキテクチャとは?」そこからです。
参考記事:https://pc.watch.impress.co.jp/docs/column/1month-kouza/642769.html
- GPU 以前のグラフィックスコントローラでは、メモリをどのようにデータで埋めるかをコントロールする機能がメインだった
- 高機能化に従って、演算器的な機能も CPU 側ではなくグラフィックコントローラ側に搭載されるようになった
- モデルの移動と回転(変形)の計算と、照明効果の計算が必要になり、正方行列の演算をする専用の演算器が追加され、演算器が並列化された
- 固定処理を排除するために、演算器のみの構成から、自由にプログラムを解釈・実行できるシェータと言うものに変わった
:
(続く)
どうやら、GPU のアーキテクチャの変遷というのは、時代ごとに要求される機能に伴って構成や処理方法が変わってくる過程のことみたいです。世代交代ごとにハードウェアの中身がいい感じに変わっているんですね。これを完全に理解するのはまた別の機会として(逃げ)、原点に立ち戻り NVIDIA の GPU アーキテクチャについて少し詳しく調べました。
まず、最新のアーキテクチャである Hopper を確認します。
参考記事:https://www.nvidia.com/ja-jp/data-center/technologies/hopper-architecture/
参考記事:https://developer.nvidia.com/ja-jp/blog/nvidia-hopper-architecture-in-depth/
- NVIDIA H200、NVIDIA H100 Tensor コア GPU で搭載されている
- AI モデルのトレーニングを高速化するように設計された Transformer Engine
- NVIDIA の Megatron 530B チャットボットの AI 推論で、前世代と比較して 30 倍という驚異的なスピードアップ
- 第 4 世代 NVLink は NVIDIA の DGX™ サーバーと HGX™ サーバーでマルチ GPU IO (入出力) を、GPU あたり双方向で毎秒 900 ギガバイト (GB/s) 、帯域幅は PCIe Gen5 の 7 倍以上の帯域幅で拡張する
- NVIDIA コンフィデンシャル コンピューティングによる処理中のデータの保護
- 強力なマルチインスタンス GPU(MIG)機能:最大 7 個の GPU インスタンスで仮想環境のマルチテナント/マルチユーザー構成をサポート
- 高速な動的プログラミング
主に AI 開発に最適化されており、とにかく速度が向上していることがわかりました(詳細はまた今度...)。
既に販売されている H100 で約 600 万円ということで、かなりの高級 GPU なようです。
大規模機械学習モデルの学習などに大活躍するんでしょうね。
Hopper アーキテクチャについては以下の記事もとても分かりやすかったです。
次に新しい Ada Lovelance というアーキテクチャを見てみます。
参考記事:https://www.nvidia.com/ja-jp/technologies/ada-architecture/
- NVIDIA L4 Tensor コア GPU、NVIDIA L40 GPU、NVIDIA RTX 6000 Ada 世代 GPU に搭載されている
- 前世代の最大 2 倍のレイトレーシング性能の第 3 世代 RT コアと Shader Execution Reordering (SER) 技術により、 非効率的なワークロードを動的に並べ替え、シェーダーのパフォーマンスを劇的に向上させ、エンドツーエンドのレイトレーシングによる画像レンダリングの性能を加速
- 前世代より最大 4 倍高い推論性能、より大きな精度と比較してメモリ負荷を軽減し、AI スループットを劇的に加速する第 4 世代 Tensor コア
- 単精度浮動小数点 (FP32) 演算の処理速度を前世代の GPU の 2 倍にした CUDA コア
- 前世代に比べて最大 3 倍の動画配信を同時にホストすることが可能
- 前世代よりも最大 50% 多い GPU メモリを提供
- RoT (Root of Trust) 技術を使用したセキュアブートを備えている
こちらもすごい性能ですね。価格は NVIDIA RTX 6000 Ada 世代で約 120 万円程度、L40 で約 150 万円程度だそうです。
余談:Tensor コア / RT コア / CUDA コア
参考記事:https://zero-cheese.com/9575/
参考記事:https://dosparaplus.com/library/details/001027.html
- コア
- GPU の中心部分であり、実際に演算処理をする部分
- CUDA コア(Compute Unified Device Architecture)
- グラフィック用に用意された高い計算処理能力をグラフィック以外に活用したのが CUDA
- CUDA コアが GPU 内でたくさん並ぶことで、少数点や整数の計算など単純な処理を、数千個以上のコアにより、一度に処理する事が可能
- Tensor コア
- 特にディープラーニングやビッグデータ等に特化した演算処理を高速で行うことができる演算回路
- 行列の積和演算に特化した演算機能を持っている
- 積和演算能力では CUDA コアより優れているが、CUDA コアのような汎用的な計算処理機能は持っていない
- RT コア
- レイトレーシングを高速で処理することを目的とした、ハードウェアアクセラレータ
- レイ(光線)と物体の衝突判定には、屈折や反射も含めると恐ろしい計算量が発生するが、その衝突判定処理に特化している
次に Ampere アーキテクチャです。
参考記事:https://www.nvidia.com/ja-jp/data-center/ampere-architecture/
- NVIDIA Volta アーキテクチャで最初に導入された NVIDIA Tensor コアテクノロジを基盤として、Tensor Float 32 と 64 ビット浮動小数点を導入した第 3 世代の Tensor コア
- マルチインスタンス GPU による高速化
- GPU 間の直接帯域幅を 2 倍の毎秒 600 ギガバイト (GB/s) にした第 3 世代の NVLink
- AI モデルを効率的に学習できるスパース機能
- 第 2 世代 RT コア
- 前世代から 2 倍以上となる毎秒 2 テラバイト (TB/s) のメモリ帯域幅
リリースは 2020 年ということで、大規模モデルの需要が高まっているのに合わせたような進化ですね。
この時点でかなり進化しているような印象です。
それ以外のアーキテクチャについては、今回の選定の趣旨とは外れそうなのでまたの機会にしたいと思います。ちなみに、CUDA コアは Tesla から、RT コアと Tensor コアは Turing から導入されているそうです。Turing アーキテクチャが一つの転換点になっているようですね。
参考記事:https://en.wikipedia.org/wiki/CUDA
参考記事:https://pc.watch.impress.co.jp/docs/column/kaigai/1143278.html
参考記事:https://pc.watch.impress.co.jp/docs/column/kaigai/1175861.html
参考記事:https://www.itmedia.co.jp/pcuser/articles/1809/14/news148.html
2.3 わかったこと
- NVIDIA の GPU アーキテクチャには、科学者の名前を冠したコード名がついている
- 業務用 GPU の選定という目的においては Turing 以降のアーキテクチャ、特に Ampere 以降がよさそう
第三章「NVIDIA の GPU (を搭載したグラフィックボード)を比較する」
ここまでで、型番から NVIDIA の GPU を機能の優劣を比較したり、アーキテクチャ周りの理解からどのあたりのアーキテクチャを検討すればいいかがわかりました。ここまでが GPU に関しての比較です。
ここからはいよいよグラフィックボードの選定のための調査をしようと思います。
第一章で、正確には GPU は演算用の賢いメインの部品であり、グラフィックボードには GPU 以外の様々な部品も搭載されているということを学びました。
比較サイトなどを見てみると、アーキテクチャ名以外にも様々な比較要素があるようです。
参考記事:https://pcrecommend.com/gpu/
参考記事:https://pcfreebook.com/article/459993300.html
そこで、ざっくり何を比較してどう選べばいいのか調べてみました。
冷却機能
外排気(ブロワーファン)
- グラボ直下の空気を埋め込まれている「シロッコファン」が吸い込んで、その吸い込んだ空気で GPU ダイ(グラボのチップ本体)がため込んでいる熱を排気する
- 廃棄はグラボの背面から行い、それ以外の場所からは一切排気をしない
- 空気の流れが一方向のため、エアフローが少ない環境でも GPU を冷やせる
- 熱気が流れる方向があるので、他に影響を及ぼさない
- 「シロッコファン(80mm口径の小型ファン)」の動作音がうるさい
- 冷却効率がそもそもあまり高くなく、サーマルスロットリングによりグラボの性能が低くなりがち
内排気
- 複数の冷却ファンで外気を取り込み、ヒートシンクに溜まった熱をあちこちに放出して GPU チップを冷やす
- グラフィックボードのベンダー各社が独自に開発した「オリジナルファンモデル」と呼ばれるグラボで頻繁に採用されている仕様
- 冷却効率が非常に高いので、外排気に比べてとても静か
- ファンが多いほど同じ回転数で稼げる送風量は大きくなるため冷却効率も上がる
- 適切なエアフローを確保しないと、グラボ自身の放熱が PC ケース内部に充満して全く冷えなくなってしまう
- 内排気のグラボをマルチ GPU で使用すると、熱がこもるため片方のグラボが高熱になり過ぎて危険であり、それにより片方のクロック周波数が落ち込むため、全体的なパフォーマンスも下がる
簡易水冷
- GPUチップに直接「簡易水冷ユニット(AIOクーラー)」を取り付け、クーラントと呼ばれる冷却液で熱をホースを通じて外部ラジエーターに運び、冷却ファンでラジエーターの熱を排出する
- エアフローが少ない、あるいはなくても冷やせる
- 静音性は内排気ファンの方が優れる場合がある
- 内排気モデルと比較して3~5割も高くなり、コストが高い
- PC ケースやマルチ GPU のスペースを考える必要がある
特に理由がなければ内排気がベストチョイスのようです。
TDP(Thermal Design Power、熱設計電力)
参考記事:https://ascii.jp/elem/000/001/724/1724010/
参考記事:https://gamingpc2.com/blog/713
- もともとは、PCのシステム設計者に対して電源および冷却に関する指標を示すための数字
- TDP は最大消費電力時の熱量であり、厳密には消費電力と同等ではない
- Intel の定義:「TDPとは平均的な消費電力、つまりBase Frequencyですべてのコアが稼動している状態で、インテルが定義する複雑なワークロードを実行した場合にプロセッサーが消費する電力をWで表現している」
- AMD の K6 や Intel の Pentium Pro の世代あたりまではおおむね「消費電力≒TDP」と考えてよい
- AMD の FX や Intel の Pentium 4 の時代以降は、Turbo 機能使用時などは消費電力と温度の間の関係性がずれ、TDP よりも消費電力が高いという場合もある
TDP は消費電力の目安となる一方、実際の最大消費電力は TDP の数値よりも高くなることがあるようです。TDP x 1.5 くらいで考えておいた方がいいとのこと。低ければ低いほどよさそうですが、業務用では評価基準としての優先度は低そうです。
VRAM (Video Random Access Memory)
参考記事:https://dosparaplus.com/library/details/000734.html
参考記事:https://chimolog.co/bto-gpu-vram-size/
- VRAM は GPU に搭載されている、高速で読み書きができるデータ保存領域(i.e. メモリ)のこと
- RAM は汎用型のメモリで、コンピュータを制御するあらゆる処理に利用される
- VRAM は映像出力に特化していて、RAM の機能の補完などはできない
- VRAM の容量が大きければ大きいほど、一度で大量のデータをメモリ上に保存してディスプレイに表示できるようになるため、処理性能も向上する
- 最近の多くの GPU は VRAM = 2 ~ 24 GB で設定されている(2022 年 6 月現在)
- VRAM容量が残りわずかになるとフレームレートが急落する
VRAM も大きければ大きいほどいいようです。CG を専門とされている方々は実際どれくらいの容量使われているのでしょうか。気になるところです。
最後に
この記事では、「GPU の選定と発注よろしく」と言われたひよっこエンジニアが、「○○という理由で○○を選びました!」と言えるようになるまでの記録をつらつらと書いてみました。
まだ「このアーキテクチャはこれがすごい!」とは言えませんが、「このあたりがいいんじゃないっすかね?」くらいは言えるようになった気がします。
この活動を通じて、基礎の基礎くらいは身につきました。
ようやく巷で話題となっているような GPU 話にもついていけそうです。
最後に、NVIDIA の歴史を知るならその他にも情報がありそうです(特に英語記事が豊富です)。
ご参考まで。
- https://exittechnologies.com/blog/data-center/gpu-technology-gpu-history-and-gpu-prices-over-time/
- https://www.tomshardware.com/picturestory/715-history-of-nvidia-gpus.html
- https://download.nvidia.com/developer/cuda/seminar/TDCI_Arch.pdf
各グラボの比較は英語版 Wikipedia が詳しかったです。
世の中にはわかりやすくまとめていただいている記事が数多くあり、大変助かりました。
全ての先人たちに感謝です。
次は「○○は○○と比べて○○ができるようになったからすごいんですよ」を目指していこうと思います。
目指せ脱ひよっこエンジニア!
TODO
- 値段と性能の関係性は?コスパがいいってどういうこと?
- CUDA コア / Tensor コア / RT コアの詳細
- グラボ関連のその他の比較項目(例:PCIe)