[自作日記2] CPUとチップセットと PCI Express の関係

[自作日記2] CPUとチップセットと PCI Express の関係

こんにちは!今日はCPUとチップセットについて学びたいとおもいます!

最終的にはAI開発に使えるGPUマシンをつくりたいのですが、GPUってパソコンのどのあたりに入れて使うものでしょうか。

black Gigabyte graphics card
Photo by Rafael Pol / Unsplash

はい、正解は、パソコンのPCI Express のスロットに挿して使います。

「知っとるわ」という声が聞こえました。

さすがです。

では、次の問いです。

GPU が挿さる PCI Express スロットのレーンはどこにつながってるのでしょうか?

1.「チップセット」
2.「CPU」

正解は2のCPUです。

この問いの答えが一瞬で出た方は、本記事を読みとばしていただいて問題ありません。

「?」となった方は、本記事に参考になる部分があるかもしれません。

ということで、GPU は PCI Express という拡張スロットに挿して使うことはご存じかもしれませんが、PCI Express は内部でどのようにつながっているのでしょうか。実はGPUパソコンを作るときにこの辺がけっこう重要になります。

今後、GPU2枚挿し、GPU4枚挿し、など本格的なGPUマシンを作るときにもこのあたりの知識が重要になりますので、学んでおいて損はないですね。

さあ、進めていきましょう!

先ほどの問いの続きから、ですが、
PCI Express には CPU と直接つながっているものと、チップセットからつながっているものの2種類があります。

まずはPCI Express から CPU やチップセットにつながっている伝送路= 「レーン」についてもう少しみていきましょう

PCI Express と CPU をつなぐレーン

前述のとおり、PCI Express は CPU から直接つながるものと、チップセットからつながるものがあります

  • PCI Express ⇔ CPU

  • PCI Express ⇔ チップセット

では、具体的に見ていきましょう。

CPUとPCI Express が接続されているレーンは、たとえば、 第12世代のインテル Core シリーズCPU の場合、CPUから直接PCI Express に
接続されるレーンは 20本 あります。

その内訳は、

  • PCIe gen 5 16レーン
  • PCIe gen 4 4レーン

となっています。

「gen5 のレーンが 16本ってこと? gen4 のレーンが 4本ってこと? CPUからPCIExpressにのびているレーンの本数と規格が違うの?」

はい、そのとおりです。

レーンには1本ずつ規格があり、このレーンは PCIe gen5(=PCI Express の5世代目 という意味でしたね) 、このレーンは PCIe gen4 のようにそれぞれ規格がわかれています。

パソコンの中でCPUやチップセットにつながってるPCI Expressのレーンは全てがおなじ規格ではない、というのがまずポイントです。

では、実際に インテルの12世代CPU に対応した Z690 チップセット というものの、ブロック図をみながら理解を深めていきましょう。

(ブロック図とは、システムの構成要素を図にしたものです。)

以下は Z690 チップセットのブロック図です。

このブロック図を全部ただちに理解する必要はありません。

私たちは 、ふつうのパソコンではなく、「GPU搭載マシン」を作るので、GPUマシンにとって必要なところを学びます。

GPUにとって重要なのはこのブロック図の左上です。赤で示しました。

まずは、ここを読み解いていきましょう。

拡大するとこんなかんじです。

これは、 CPU と直接接続されている PCI Express について説明しています。

この左上あたりをみると、

のように書いてあります。

これが冒頭にかいたとおり CPU から PCI Express のレーンが 20 本のびている 件です。 16本の PCIe 5.0 レーンと 4本の PCIe 4.0 レーンの合計 20本のレーンが CPU と直接接続されています。

つまり、 合計20本あるレーンのうち

・gen5 規格 のPCI Express のレーンを16本束にしたスロット
・gen4 規格 のPCI Express のレーンを4本束にしたスロット

が使えるよ。といっています。

そして、通常、CPU からのびてる、この gen5 規格 のPCI Express のレーンを16本束にしたスロットグラフィックボード(GPU) 用に使用されます!

PCIe 5.0 は前回の記事に示した通り、大変高速ですので、GPUのような高速データ転送を要求される用途向きというわけです。

PCI Express の世代と伝送速度(理論値)

理解をより深めるために、レーン1本ずつを視覚的に示してみました

GPUが主眼なので、GPU が接続される CPU ⇔ PCI Express に着目しましたが、基本的には、他のレーンも同じです。

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