[自作日記7] AI用GPUの選定

[自作日記7] AI用GPUの選定

今回は、AIに適したグラフィックボード(GPU)の選定をします。

本編に行く前に、グラフィックボードとGPUの違いについて整理しておきましょう

グラフィックボードは、コンピューターで画像処理やAIの計算を担当する重要なハードウェアで パソコンのPCI Express のスロットに挿入して使用するのが一般的です。

一方 GPU はグラフィックボードの主要な構成要素の1つで、グラフィックボードは以下のようなコンポーネントで構成されています。

  1. GPUチップ - グラフィック処理の中心で、複雑な数学的計算を高速に実行します。
  2. VRAM(ビデオRAM) - GPUが直接アクセスする専用メモリで、ディープラーニングでは、パラメータ(重みやバイアス)や計算過程を保持する役割があり非常に高速に動作します。
  3. 冷却システム - GPUが生成する熱を効果的に放散するためのファンやヒートシンク。

グラフィックボードとGPUを同一視して書いている記事も多く、私たちもあまり厳密に分けて書いていないですが、実体としては↑のような感じですね。

さて、それでは Jun さんの買い物の続きをみていきましょう。


肉の万世本店はやっぱり最高でした。

2階でハンバーグを食べてきましたが、出世したら3階、4階のレストランも行ってみたい。あと、1階のパーコー麵にもチャレンジしてみたいです。麵が上下してるあのオブジェ?も楽しいですね。
(なぜか、いつも2階ばかり行ってしまうんですよね。)

おなかもいっぱいになったので、これから今日の目玉のGPUを買いに行きたいと思います。

とその前に、今まで買ったものを整理しておきます

だいたい12.5万円を使ったので、のこり32.5万円くらいあります。GPUは良いものを買えそうです!

GPUを買いにお店へ!

AIをやるなら、間違いなく NVIDIA の GPU です。

どれにしようかなー、と探し始めましたが、拍子抜けするくらい簡単に決まりました。

その理由は簡単。

ディープラーニング、とりわけLLMをやる場合に一番重要なのは VRAM の量つまりGPUのメモリ容量です。

そして、ここ秋葉原で売っているGPUは通常コンシューマー向けのGPUなので、VRAMの上限は決まっています。

そうです、 NVIDIA の GeForce 3090 か GeForce 4090 を搭載したグラフィックボードが VRAM 24 GBytes で最大なのです。つまりこのどちらかしか選択肢にないといってもいいでしょう。

この下のモデルになるといきなり VRAM が 16GBytes になってしまいます。

もともと、コンシューマ向けGPUというのは、3Dゲーム用途がほとんどであるため、24GBytes もVRAMがあれば十分ということなのでしょう。

ということで、もう3090か4090のどちらかで決めることにしました。

さて、この2つからの選択もほぼ迷いませんでした。

なぜなら、残りの資金が30万円弱だったのですが、4090のほうはのきなみ30万円以上の価格設定。残り資金を全部つかってしまったら電源など残りのパーツが買えません。

ということで、コンシューマ向けでメモリが一番多く、お値段も手が出るものという現実的な条件で、 GeForce 3090 搭載の以下のグラフィックボードを購入しました。

MSI SUPRIM X GeForce RTX 3090 Ti

約20万円で購入しました。今日一番高い買い物です。

買い出し用にコストコの巨大袋をもってきましたが、マザーボードの箱とグラボの箱ですでに、だいぶキツキツです。

三ツ矢サイダーの缶とくらべてわかるとおり箱がかなりでかく、高価なモノを買った感があります。

袋にはいってるのは、ざっとこんなかんじ。

コストコの袋に入ってるもの

胃袋に入ってるもの

万世コンボ+和食セット 約2千円

残金は 45-12.5-20 = 12.5 万円です。

いったん荷物を置きに会社に戻り、
残金で、残りのパーツである 電源、SSD、ケース を購入したいとおもいます。


今回はいかがでしたでしょうか。Jun さんは無事GPUをゲットできました。

次回は電源、SSD、ケースの購入をする予定です!お楽しみに!


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 プロダクト開発部