[自作日記7’] コラム:コンシューマ用GPUとプロ用GPUの違い

[自作日記7’] コラム:コンシューマ用GPUとプロ用GPUの違い

今回は、コンシューマー用GPUは本格的なAI計算に使用できるのか、プロ用GPUとの違いは何か。比較も交えながら考えてみたいと思います。

私たちAI ベンチャー(ベンチャーじゃなくても)でGPUを使うシーンは3つあります。

  1. AI研究:最新モデルや論文のちょっとしたお試し
    小規模な学習。小規模な推論。
  2. 学習:いわゆるディープラーニングのトレーニング。
    長いと数週間、数か月におよぶ。
  3. 商用運用:お客様が使用するサービスのバックエンドとしての
    AIエンジンの商用運用

今回 Jun さんが作ろうとしている GPU マシンは 1.AI研究 のためのものです。

というのも、たとえば、コンシューマー用GPUやコンシューマー用の自作パソコンの場合は長時間にわたるディープラーニングのトレーニングには向いていません。

やってる人もたまにみかけますが、心配になります。

なぜなら、学習させたいネットワークにもよりますが、1回の学習にかかる時間は数日から数週間、長いと数か月にわたります。その間、GPUをドライブするソフトウェアが安定的に稼働している必要があります。2,3日なら何の問題もないことが、数週間まわすと謎のソフトウェアバグがドライバ層などで発生して学習が止まっていた、ということはよくあります。
また、マシンが過熱しない、など廃熱系も安定させて稼働するためには、それなりの対策を施す必要があります。

もともとコンシューマー用のGPUは3Dゲームのために設計されており、数週間の連続高負荷は想定されておりません。1回の学習が3,4日程度なら人の目で監視ということも不可能ではないとおもいますが、いずれにしても、手間がかかるものとなります。

そこで今回 Jun さんが開発しているような秋葉原で手に入りそうなパーツで構成された GPUマシンは、長時間高負荷な計算はさせない ことが前提の ”研究用” GPUマシンと位置付けています。

では、プロ用のGPUとは何でしょうか。

プロ用のGPUには大きく2種類あります。

1つは、ワークステーション用GPU。もう1つはデータセンター用GPUです。

ワークステーション用のGPUはコンシューマー用GPUに近い環境で使用されますが、ドライバーの安定性や信頼性、商品の長期サポートなどが特長で、コンシューマー用GPUより高い信頼性があります。また高度な計算のため、計算精度がコンシューマー用GPUに比べて有利です。ワークステーション用として有名かつ人気のGPUには NVIDIA RTX A6000 などがあります。

データセンター用GPUはその名の通り、専用のデータセンター環境で稼働することを前提としているGPU。ワークステーション用のGPUの特長に加え、エネルギー効率(要は消費電力)が高く、高い並列性などが特長になっています。データセンター用GPUとして有名なものには、 NVIDIA RTX A100、NVIDIA RTX H100 などがあり、1枚あたり300万円以上します。データセンター用とはいっても、インタフェースはPCI Express ですので、通常のワークステーションで動作させることも可能です。

このように2や3の用途で ”安心して” 使用する場合には、ワークステーション用のGPUやデータセンター用のGPUが必要になってきます。

GPUサイズと排熱方式と稼働音

今度は排熱という視点で、GPUをみてみましょう。

GPUは高負荷の計算をすることから、その副産物として大量の”熱”を発生させます。そこで、GPUが発する熱をどうやって放出し、GPUが過熱したり燃えたりすることを防ぐか、が重要となります。

この排熱の方式には大きく3つの方式があります

  1. 空冷 - 内排気
  2. 空冷 - 外排気
  3. 水冷

内排気のグラフィックボード

内排気というのは、PCケースの中にグラフィックボードの熱を排気スタイルです。
コンシューマー用GPUでは、1のタイプが多く、一般的に大きなヒートシンクと一つまたは複数のプロペラファンを使用してケース内の広い範囲に熱を拡散します。この方式は比較的安価でグラフィックボードを作れる反面、大型のヒートシンクとファンによりグラフィックボードのサイズが大きくなる傾向にあります。また、次に紹介する外排気型のグラフィックボードに比べて、ファンの稼働音が静かです。

外排気のグラフィックボード

外排気は、PCケースの中ではなく、PCケースの外側に直接、熱された空気を排出する方式です。ワークステーション用やデータセンター用のグラフィックボードは主にこの方式が採用されます。このときによく使用されるファンが”ブロワーファン”です。

ブロワーファンは空気を中心から吸い込み、ブレードを通過させた後にラジアル(放射状)に排出しケース内の空気を一方向に強力(流量)に吹き出すことができます。以前のグラフィックボードでは同様の目的で”シロッコファン”(圧力優先)というファンが取り付けられていましたが最近は流量優先のブロワーファンが採用されています。

この方式では、ファンがケースの一端に取り付けられ、直線的に空気を外に押し出し空気流がGPUのヒートシンクを通過して直接外部へと押し出されるため、冷却効率が高まります。この方式ではケース内に熱を拡散する内排気型とは異なり、グラフィックボードのサイズを小さくすることができます。反面、ブロワファンは稼働音が大きい場合があるので、静音が重視の場合は内排気型がおすすめです。

水冷のグラフィックボード

水冷のグラフィックボードは一部コンシューマー用のラインナップ(簡易水冷)などで見かけることがあります。また大規模データセンターでは、サーバールーム全体の冷却効率を高めるために、水冷システムを導入する場合があります。これにより、大量のGPUを効率的に冷却することが可能ですが、水冷システムの構築には非常に高いコストがかかりますので、あまり一般的ではりません。

GPUサイズと稼働音

排熱方式について、簡単にみてきましたが、サイズと稼働音についてまとめると
外排気型のグラフィックボードだと、安くて、比較的静かだけど、サイズが巨大
内排気型のグラフィックボードだと、高価、排気音が大きい、サイズは小型

となります。

複数枚のグラフィックボードを挿して使いたい場合は、PCI Expressのスロット干渉に悩まなくてよい内排気型のグラフィックボードがオススメです。


navigation

Read more

OpenCV cv2.imwrite で発生する「_img.empty()」エラーと「動画安定化」による解決法

OpenCV cv2.imwrite で発生する「_img.empty()」エラーと「動画安定化」による解決法

こんにちは! 画像処理や動画解析の現場で広く利用されている OpenCV。 しかし実務で動画処理を行っていると、時折以下のようなエラーに遭遇することがあります。 cv2.error: OpenCV(4.11.0) /io/opencv/modules/imgcodecs/src/loadsave.cpp:929: error: (-215:Assertion failed) !_img.empty() in function 'imwrite' このエラーは、cv2.imwrite() に渡された画像が空(None またはサイズ0) の場合に発生します。 一見単純に見える問題ですが、背後には「入力動画の不安定さ」や「並列処理の競合」といった要因が潜んでいることが少なくありません。 本記事では、このエラーの発生原因を掘り下げ、実務で効果のある解決策として 「動画の安定化(正規化)」 を紹介します。 TL;

By Qualiteg プロダクト開発部
発話音声からリアルなリップシンクを生成する技術 第5回(前編):Transformerの実装と実践的な技術選択

発話音声からリアルなリップシンクを生成する技術 第5回(前編):Transformerの実装と実践的な技術選択

こんにちは!リップシンク技術シリーズもいよいよ終盤となりました。 前回(第4回)では、LSTMの学習プロセスと限界について詳しく解説しました。限られたデータでも効果的に学習できるLSTMの強みを理解する一方で、長距離依存の処理に限界があることも明らかになりました。そして、この問題を解決する革新的なアプローチとして、すべての位置の情報を同時に参照できるTransformerのSelf-Attention機構を紹介しました。 第5回の今回は、 Transformerの具体的なネットワーク設計から始め、その実装上の課題を明らかにします。(前編※) そして、LSTMとTransformerの長所を組み合わせたハイブリッドアプローチを紹介し、実際の製品開発における技術選択の指針を示します。最後に、感情表現への拡張という次なる挑戦についても触れていきます。(後編※) ※Transformerの仕組みは複雑であるため、第5回は前編と後編に分けて解説させていただく予定です。 1. Transformerベースのネットワーク設計 1.1 全体アーキテクチャ図 では、さっそく、Tran

By Qualiteg 研究部, Qualiteg コンサルティング
大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第2回 ドメイン環境の構築

大企業のAIセキュリティを支える基盤技術 - 今こそ理解するActive Directory 第2回 ドメイン環境の構築

こんにちは、今回はシリーズ第2回ドメイン環境の構築 - 検証環境の構築手順について解説いたします! 連載の構成 第1章:基本概念の理解 - Active DirectoryとKerberos/NTLM認証の基礎 【★今回です★】第2章:ドメイン環境の構築 - 検証環境の構築手順 第3章:クライアントとサーバーのドメイン参加 - ドメイン参加の詳細手順 第4章:プロキシサーバーと統合Windows認証 第5章:ブラウザ設定と認証 - 各ブラウザでの設定方法 第6章:トラブルシューティング - よくある問題と解決方法 第7章:セキュリティとベストプラクティス - 本番環境での考慮事項 第8章:実践的な構成例 - AIセキュリティツールとの統合事例 第2章:ドメイン環境の構築 2.1 ドメイン名の設計 2.1.1 ドメイン名の命名規則 Active Directoryを構築する際、

By Qualiteg コンサルティング
AIがよく間違える「クロージャ問題」の本質と対策

AIがよく間違える「クロージャ問題」の本質と対策

こんにちは! 本日は「クロージャ問題」に関する話題となります。 Pythonでループ内に関数を定義したことはありますか? もしあるなら、あれれ?な挙動に遭遇したことがあるかもしれません。 本稿では、Pythonプログラマーなら一度は経験する「クロージャ問題」について、初心者にもわかりやすく解説してみたいとおもいます クロージャとは何か? そもそも ”クロージャ” とは何でしょうか。 クロージャ(closure)とは、関数が自分の定義されたスコープの変数を覚えて持ち運ぶ仕組み のことです。 もう少し分解すると、次の2つがポイントとなります 1. 内側の関数が、外側の関数の変数を使える 2. 外側の関数が終了しても、その変数は生き続ける 普通の関数とクロージャ―を使った関数を比較してみましょう 普通の関数との比較 まずは普通の関数から、 def add(x, y): return x + y print(add(3, 5)) # 8 print(add(3, 7)

By Qualiteg プロダクト開発部