<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>QSysArch - Quantum Computer System Architecture</title><link>https://qsysarch.com/ja/</link><description>Recent content on QSysArch - Quantum Computer System Architecture</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Fri, 31 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://qsysarch.com/ja/index.xml" rel="self" type="application/rss+xml"/><item><title>QPU：量子処理ユニット</title><link>https://qsysarch.com/ja/qpu/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/qpu/</guid><description>&lt;p&gt;超伝導量子ビットチップのシリコンダイの画像を見つけるのは必ずしも容易ではありません。このページは、特に超伝導量子ビット（トランスモンおよびスピン量子ビット）を対象とした、一般公開されている画像のコレクションとなることを目指しています。&lt;/p&gt;&#10;&lt;p&gt;注：これは開発中のものです - 最終更新日：2026年7月&lt;/p&gt;&#10;&lt;h2 id="マサチューセッツ工科大学mit電子工学研究所rle"&gt;&#10; マサチューセッツ工科大学（MIT）、電子工学研究所（RLE）&#10; &lt;a class="heading-link" href="#%e3%83%9e%e3%82%b5%e3%83%81%e3%83%a5%e3%83%bc%e3%82%bb%e3%83%83%e3%83%84%e5%b7%a5%e7%a7%91%e5%a4%a7%e5%ad%a6mit%e9%9b%bb%e5%ad%90%e5%b7%a5%e5%ad%a6%e7%a0%94%e7%a9%b6%e6%89%80rle"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://arxiv.org/pdf/2306.02571" class="external-link" target="_blank" rel="noopener"&gt;導波路量子電磁力学&lt;/a&gt;: キュービット層（左）とインターポーザー層（右）の光学画像が、キュービットとさまざまな信号線を擬似カラーで表示して示されています。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/mit-2023-1.webp" alt="" style="width: 100%; max-width: 49%;"/&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/mit-2023-2.webp" alt="" style="width: 100%; max-width: 49%;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://arxiv.org/pdf/2605.24272" class="external-link" target="_blank" rel="noopener"&gt;アルミニウムマイクロ波SQUIDマルチプレクサ&lt;/a&gt;: マルチプレクサデバイスの写真。(a) マルチプレクサチップ全体の写真。(b) 左：1つのチャネルの拡大図。(c) 共振器と給電線間の容量結合領域の拡大図。(d) RF SQUID領域の拡大図。磁束バイアス線、入力コイル、共振器への結合方法を示している。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/mit-2510.21554-3.webp" alt="" style="width: 100%; max-width: 45%;"/&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/mit-2510.21554-4.webp" alt="" style="width: 100%; max-width: 53%;"/&gt;&lt;/p&gt;&#10;&lt;h2 id="チューリッヒ工科大学量子デバイス研究所"&gt;&#10; チューリッヒ工科大学、量子デバイス研究所&#10; &lt;a class="heading-link" href="#%e3%83%81%e3%83%a5%e3%83%bc%e3%83%aa%e3%83%83%e3%83%92%e5%b7%a5%e7%a7%91%e5%a4%a7%e5%ad%a6%e9%87%8f%e5%ad%90%e3%83%87%e3%83%90%e3%82%a4%e3%82%b9%e7%a0%94%e7%a9%b6%e6%89%80"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;以下の画像は、&lt;a href="https://qudev.phys.ethz.ch/gallery" class="external-link" target="_blank" rel="noopener"&gt;Quantum Device Lab&lt;/a&gt;グループによるものです。&lt;/p&gt;&#10;&lt;p&gt;左：単一の検出チャネルを使用して多重読み出しを可能にする8量子ビット量子プロセッサ。右：この図に示すように17量子ビット（黄色）を配置することで、距離3の誤り訂正表面符号を実装できます。寸法は14.3mm×14.3mmです。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/eth-qdl-m85bm2.jpg" alt="単一検出チャネルを使用した多重読み出しを可能にする8量子ビット量子プロセッサ" style="width: 100%; max-width: 67%;"/&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/eth-qdl-s17mg.jpg" alt="この図に示すように17量子ビット（黄色）を構造に配置することで、距離3の誤り訂正表面符号を実装できます。寸法は14.3 mm×14.3 mmです。" style="width: 100%; max-width: 31%;"/&gt;&lt;/p&gt;&#10;&lt;h2 id="qutech--vandersypen研究室"&gt;&#10; QuTech / Vandersypen研究室&#10; &lt;a class="heading-link" href="#qutech--vandersypen%e7%a0%94%e7%a9%b6%e5%ae%a4"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://www.nature.com/articles/s41565-019-0488-9" class="external-link" target="_blank" rel="noopener"&gt;nature.com/articles/s41565-019-0488-9&lt;/a&gt;: オンチップ共振器を使用したシリコンでの高速ゲートベーススピン読み出し (&lt;a href="https://qutech.nl/2019/07/08/reading-out-qubits-100-times-faster-than-before-new-step-towards-the-quantum-computer/" class="external-link" target="_blank" rel="noopener"&gt;その他の画像&lt;/a&gt;)&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/qutech-2019-01.jpg" alt="回路基板に接続された量子チップを光学顕微鏡で撮影した写真" style="width: 100%; max-width: 49%;"/&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/qutech-2019-02.jpg" alt="オンチップ共振器と量子ドットを備えた量子チップを光学顕微鏡で撮影した写真" style="width: 100%; max-width: 49%;"/&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;リンク：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://equs.mit.edu/" class="external-link" target="_blank" rel="noopener"&gt;https://equs.mit.edu/&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>QEC：量子誤り訂正論理量子ビット（パート1）</title><link>https://qsysarch.com/ja/posts/quantum-error-correction-fondation-concepts/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/quantum-error-correction-fondation-concepts/</guid><description>&lt;p&gt;一見すると、量子誤り訂正は単純なように思える。物理的な量子ビットを論理量子ビットにまとめ、それらの間の一貫性を維持する方法を適用し、これらの論理量子ビットを使用して量子回路を動作させる、という手順である。&lt;/p&gt;&#10;&lt;div style='text-align:center;line-height:1;float:right; width:300px;padding;text-align:center;padding-left:10px;font-size:80%;'&gt;&lt;img src='https://qsysarch.com/images/qec-control/riverlane-qec.webp'&gt;画像出典：&lt;a href='https://www.riverlane.com/news/riverlane-s-real-time-qec-system-performance'&gt;リバーレーン&lt;/a&gt;&lt;/div&gt;&#10;&lt;p&gt;しかし実際には、この最初のステップは決して自明ではありません。論理量子ビットはどのように作成され、維持されるのでしょうか？例えば、量子制御システム（&lt;strong&gt;QCS&lt;/strong&gt;）の観点から（QM &lt;a href="https://www.quantum-machines.co/products/opx1000/" class="external-link" target="_blank" rel="noopener"&gt;OPX1000&lt;/a&gt;、ZIの&lt;a href="https://www.zhinst.com/europe/en/products/zqcs-quantum-control-system/" class="external-link" target="_blank" rel="noopener"&gt;ZQCS&lt;/a&gt;、Qblox &lt;a href="https://qblox.com/products/cluster" class="external-link" target="_blank" rel="noopener"&gt;Q1 Cluster&lt;/a&gt;など）、論理量子ビットを「操作」または「オーケストレーション」するには何が必要なのでしょうか？そして、この論理量子ビットが操作可能な状態になったら、1量子ビットゲートと2量子ビットゲートで構成される量子回路を介して量子計算を実行するために、それを使用するには何が必要なのでしょうか？この単純な疑問は、ハードウェア制御システムだけでなく、ソフトウェアスタック、特にコンパイラにも関係しています。物理量子ビット用と論理量子ビット用で、複数のコンパイラが存在するのでしょうか？また、スケーラビリティに関しては、ハイブリッドGPU/QPUとQCSで構成される異種環境で10,000個の物理量子ビットを扱う場合、コンパイラはスケーリングの複雑さに対処するために何が必要なのでしょうか？これらは単純な疑問ですが、その答えは決して容易ではありません。&lt;/p&gt;&#10;&lt;p&gt;本稿は、量子制御システムの観点から量子誤り訂正について論じる一連の文書の第一弾です。この最初の短い文書では、物理層において一貫性のある論理量子ビットを「生成」するために必要な基本概念を紹介します。&lt;/p&gt;&#10;&lt;h1 id="論理量子ビットの形成"&gt;&#10; 論理量子ビットの形成&#10; &lt;a class="heading-link" href="#%e8%ab%96%e7%90%86%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88%e3%81%ae%e5%bd%a2%e6%88%90"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;「論理量子ビット」とは何でしょうか？論理量子ビットの作成は、物理量子ビットをグループ化することから始まります。各量子ビットには特定の役割が割り当てられます。補助量子ビットまたはヘルパー量子ビットとして機能するものもあれば、データ量子ビットまたは主量子ビットとして機能するものもあります。&lt;/p&gt;&#10;&lt;p&gt;このグループ分けは、右側の図でよく表されます。この図は、「距離3に基づく表面コード17」を示しています（画像提供：&lt;a href="https://arxiv.org/pdf/2307.09463" class="external-link" target="_blank" rel="noopener"&gt;Irréversible Inc&lt;/a&gt;）。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qec-control/surface-code.webp#right-500px" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;表面コードに適用できる基本的な構造は以下のとおりです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;データ量子ビット&lt;/strong&gt;（白い円）は量子情報を保持します。表面17には9個のデータ量子ビットがあります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;補助量子ビット&lt;/strong&gt;（黒丸）は、非破壊的なパリティチェックを実行します。表面17には8つの補助量子ビットが含まれています。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="プロトコルとしてのqec"&gt;&#10; プロトコルとしてのQEC&#10; &lt;a class="heading-link" href="#%e3%83%97%e3%83%ad%e3%83%88%e3%82%b3%e3%83%ab%e3%81%a8%e3%81%97%e3%81%a6%e3%81%aeqec"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;データと補助量子ビット間の相互作用は、それぞれの「プラケット」に固有のものである。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;プラケット&lt;/strong&gt;（緑とピンクの面）は、中央の補助量子ビットとその隣接するデータ量子ビット間のエラーチェックの類型的な関係を定義します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;スタビライザー&lt;/strong&gt;: 各補助量子ビットは、1 つのパウリ演算子、つまりスタビライザーを測定するために使用されます。表面コードには 2 つのスタビライザーがあります。Z タイプはビット反転 (X) エラーを検出し、X タイプは位相反転 (Z) エラーを検出します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;スタビライザー測定&lt;/strong&gt;は、単一のスタビライザーの測定であり、補助量子ビットを隣接するデータ量子ビットに順次結合し、その後補助量子ビットを測定することによって実現されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qec-control/stabilizer-measurement.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;シンドロームビット&lt;/strong&gt;は、パリティチェック安定化演算子の測定結果です。シンドロームビットは、測定サイクルごとに1つ生成されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;シンドローム抽出&lt;/strong&gt;とは、誤差補正サイクルで全ての安定化測定を実行して、完全な誤差シンドロームを取得する一連のプロセスです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="ちょっとしたクイズキュービットの犯人は誰でしょう"&gt;&#10; ちょっとしたクイズ：キュービットの犯人は誰でしょう？&#10; &lt;a class="heading-link" href="#%e3%81%a1%e3%82%87%e3%81%a3%e3%81%a8%e3%81%97%e3%81%9f%e3%82%af%e3%82%a4%e3%82%ba%e3%82%ad%e3%83%a5%e3%83%bc%e3%83%93%e3%83%83%e3%83%88%e3%81%ae%e7%8a%af%e4%ba%ba%e3%81%af%e8%aa%b0%e3%81%a7%e3%81%97%e3%82%87%e3%81%86"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;この文脈で、以下の図（出典：&lt;a href="https://alice-bob.com/platform/" class="external-link" target="_blank" rel="noopener"&gt;Alice &amp;amp; Bob&lt;/a&gt;より&lt;a href="https://www.linkedin.com/posts/laurent-prost-product-manager_just-because-ai-generated-content-looks-good-activity-7459167604172083200-XPy0/" class="external-link" target="_blank" rel="noopener"&gt;Laurent Prost&lt;/a&gt;）を検討してください。Z &lt;sub&gt;1&lt;/sub&gt; Z &lt;sub&gt;2&lt;/sub&gt;と Z &lt;sub&gt;2&lt;/sub&gt; Z &lt;sub&gt;3 は&lt;/sub&gt;、それぞれ Qubit 1 と Qubit 2 の間、および Qubit 2 と Qubit 3 の間の共同パリティチェック（安定化）測定を表します。これまでの 2 次元プラケットとは異なり、この図では各物理量子ビットが他の 1 つの量子ビットのみにリンクされていると想定しており、1 次元の繰り返しコードを示しています。&lt;/p&gt;</description></item><item><title>半導体計測：原子スケール測定</title><link>https://qsysarch.com/ja/posts/semiconductor-metrology/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/semiconductor-metrology/</guid><description>&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/how-to-make-a-sillicon-chip.webp#right-300px" alt="" /&gt;この短いメモは、シリコンウェーハの検査に使用される半導体計測で使用される方法論をまとめたものです。&lt;/p&gt;&#10;&lt;p&gt;半導体計測とは、ASICの製造に使用されるウェハーの精密な測定と分析を指します。その目的は、デバイス製造における原子スケールでのトランジスタ配置の品質と性能を確保することであり、製造工程におけるピコメートル単位の誤差でさえ歩留まりに影響を与えるためです。&lt;/p&gt;&#10;&lt;h1 id="計測技術"&gt;&#10; 計測技術&#10; &lt;a class="heading-link" href="#%e8%a8%88%e6%b8%ac%e6%8a%80%e8%a1%93"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;以下に、品質測定に使用される技術と機器の一部、およびプロセスにおけるそれぞれの役割の概要を示します。&lt;/p&gt;&#10;&lt;h2 id="光学顕微鏡2d"&gt;&#10; 光学顕微鏡（~2D） &#10;&lt;img class="glightbox" src="https://qsysarch.com/images//asic-metrology/optical-microscope.webp#right-h200px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#%e5%85%89%e5%ad%a6%e9%a1%95%e5%be%ae%e9%8f%a12d"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;生物学などで用いられる従来の光学顕微鏡では、位相差を検出するために、光が試料を直接透過する必要があります。しかし、シリコンウェハは完全に不透明で反射率が高いため、光が透過しないため、これらの標準的なシステムは使用できません。&lt;/p&gt;&#10;&lt;p&gt;代わりに、ウェーハ検査では反射光が使用され、明視野、暗視野、DIC（微分干渉コントラスト）などいくつかの種類があります。明視野では、ウェーハに真下から光を照射し、反射光を直接上方に反射させます。一方、暗視野では、ウェーハに急な斜めの角度で光を照射し、粒子汚染、ヘアラインスクラッチ、マイクロ欠陥などの隆起した欠陥を検出できます。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images//asic-metrology/optical-microscopy-reflected.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;ウェハーにとって最も興味深いのは、偏光と特殊なウォラストンプリズムを使用して光を2つの経路に分割し、表面で反射させてから再結合させる微分干渉コントラスト顕微鏡です。ウェハーを3Dのように観察することで、微細な高さの違いや表面の質感を明らかにすることができます。 &#10;&lt;img class="glightbox" src="https://qsysarch.com/images//asic-metrology/optical-microscopy-reflected-light-differential-inference-contrast.webp" alt="" /&gt; (画像出典: &lt;a href="https://www.microscopyu.com/techniques/dic/reflected-light-dic-microscopy" class="external-link" target="_blank" rel="noopener"&gt;Nikon Microscopy&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h2 id="走査型電子顕微鏡-sem"&gt;&#10; 走査型電子顕微鏡 (SEM) &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/scanning-electron-microscope-internal.webp#right-h300px" alt="" /&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images//asic-metrology/scanning-electron-microscope.webp#right-h200px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#%e8%b5%b0%e6%9f%bb%e5%9e%8b%e9%9b%bb%e5%ad%90%e9%a1%95%e5%be%ae%e9%8f%a1-sem"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;走査型電子顕微鏡（SEM）は、光学顕微鏡よりもはるかに微細な構造を観察できるため（解像度が100倍高い）、半導体製造において最も一般的に使用されている装置の一つです。SEMは光の代わりに集束された電子ビームを用いてウェハ表面を走査し、その形状や組成を高解像度で立体的な画像として得ることができます。&lt;/p&gt;&#10;&lt;p&gt;光学顕微鏡は「一度に画像」を撮影できるのに対し、SEMは非常に細い電子ビームでウェハを点ごとに「走査」し、画像を再構成する必要があります。各ピクセルの明るさは、ウェハ上の対応する位置から検出された電子の数によって決まります。走査には機械部品は使用せず、磁気コイルを用いて磁場を発生させ、電子ビームをわずか数ナノメートル幅のスポットに集束させます（これは、旧式の大型ブラウン管テレビにやや似ています）。&lt;/p&gt;&#10;&lt;h2 id="原子間力顕微鏡-afm"&gt;&#10; 原子間力顕微鏡 (AFM) &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/atomic-force-microscopy.webp#right-h200px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#%e5%8e%9f%e5%ad%90%e9%96%93%e5%8a%9b%e9%a1%95%e5%be%ae%e9%8f%a1-afm"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;原子間力顕微鏡（AFM）は走査型電子顕微鏡（SEM）とは根本的に異なります。電子を用いるSEMとは異なり、柔軟なカンチレバーに取り付けられた極細の探針を用いて、原子スケールで表面の形状を「感知」し、マッピングします。これは、盲人が点字を読むのとよく似ています。AFMは表面の形状を測定します。&lt;/p&gt;&#10;&lt;p&gt;走査型電子顕微鏡（SEM）と同様に、原子間力顕微鏡（AFM）は表面を点ごとにスキャンします。ただし、放出された電子を記録する代わりに、AFMは探針の高さ、カンチレバーのたわみ、相互作用力など、複数のパラメータを測定することで、真の3D表面マップを作成します。&lt;/p&gt;&#10;&lt;p&gt;カンチレバーは、複数のモードで観測対象と相互作用することができます。接触モードでは、先端はウェーハと常に接触した状態を維持します。タッピングモードでは、カンチレバーは共振周波数付近で振動し、表面との短い接触によって振動振幅が変化します。また、吸引力を測定原理とする非接触モードもありますが、このモードでは信号対雑音比が低くなる傾向があります。&lt;/p&gt;&#10;&lt;h2 id="x線回折xrd"&gt;&#10; X線回折（XRD）&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/xray-diffractometer.webp#right-500px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#x%e7%b7%9a%e5%9b%9e%e6%8a%98xrd"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;X線回折（XRD）は、主にウェハーの表面を調べる従来の装置とは大きく異なり、材料内部の結晶（または原子）構造をプローブする。&lt;/p&gt;&#10;&lt;p&gt;X線回折（XRD）は、シリコンウェハーの結晶方位、格子間隔、歪み、結晶品質が正しいかどうかを判断するための、最も重要な非破壊測定機器の一つです。表面顕微鏡でウェハーに欠陥がないように見えても、XRDで検出される結晶格子のわずかな変化がトランジスタの性能や製造歩留まりに大きな影響を与える可能性があるため、XRDは不可欠です。&lt;/p&gt;&#10;&lt;div style='clear:both'&gt;&#10;&lt;p&gt;＃＃ まとめ&lt;/p&gt;&#10;&lt;style&gt;&#10;table { width: 100%; }&#10;table, table tr * { border: 1px solid #888;}&#10;table tr td{ padding: 3px; text-align:center;}&#10;&#10;&lt;/style&gt;&#10;&lt;p&gt;| 方法 | # | 解像度 | 速度 | コスト | 一般的な用途 | | &amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash; | &amp;mdash;- | &amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash; | &amp;mdash;&amp;mdash;&amp;mdash; | &amp;mdash;- | &amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash; | | 光学 | ~ 2D | ~0.2 µm | 非常に高速 | 低 | 通常のウェーハ検査 | | SEM | ~ 2D | 1–10 nm | 低速 | 高 | 詳細な欠陥分析 | | AFM | 3D | &amp;lt;1 nm (垂直) | 非常に低速 | 高 | 表面粗さ測定 | | X線 | 3D | 変動あり | 中程度 | 高 | 内部構造検査 |&lt;/p&gt;</description></item><item><title>xPU：AI推論ハードウェアアクセラレーションマイクロアーキテクチャ</title><link>https://qsysarch.com/ja/posts/ai-inference-hardware-acceleration-architecture/</link><pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/ai-inference-hardware-acceleration-architecture/</guid><description>&lt;p&gt;xPU：これは、特定のワークロードに合わせてカスタマイズされたあらゆるコンピューティングアーキテクチャを表すことができる、特殊な処理ユニット（PU）の総称です。一般的なバリエーションとしては、GPU（グラフィックス）、TPU（テンソル／AI）、NPU（ニューラル）、DPU（データ）、PPU（パルス、主に量子制御スタックに使用）などがあります。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/xpu-system-architecture.webp" alt="XPUs: 特殊化されたコプロセッシングシステムアーキテクチャ" /&gt;&lt;/p&gt;&#10;&lt;p&gt;この非常に短いメモは、AI推論に適用されるxPU市場の状況に関する洞察を提供することを目的としています。&lt;/p&gt;&#10;&lt;h1 id="市場概況"&gt;&#10; 市場概況&#10; &lt;a class="heading-link" href="#%e5%b8%82%e5%a0%b4%e6%a6%82%e6%b3%81"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;AI推論ASICの市場環境を分析する際、最も有用な指標は、単純な性能ではなく、ベンダーの差別化が3～5年の期間にわたって維持可能かどうかである。この観点から、以下の3つのクラスターが浮かび上がる。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;ユニバーサルプラットフォーム&lt;/strong&gt;: NVIDIA と &lt;strong&gt;垂直統合型&lt;/strong&gt;: AMD、Google&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;現在の挑戦者&lt;/strong&gt; Groq、Cerebras、FuriosaAI、Positron、SambaNova、Axelera AI。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;将来の課題&lt;/strong&gt;: エクストロピック、ノーマルコンピューティング、アンコンベンショナル、モトロニクス、アケトニクス &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/xPUs-manufacturer-logos.webp" alt="xPU メーカーの一部" /&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="ユニバーサルプラットフォーム"&gt;&#10; ユニバーサルプラットフォーム&#10; &lt;a class="heading-link" href="#%e3%83%a6%e3%83%8b%e3%83%90%e3%83%bc%e3%82%b5%e3%83%ab%e3%83%97%e3%83%a9%e3%83%83%e3%83%88%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://www.nvidia.com/" class="external-link" target="_blank" rel="noopener"&gt;NVIDIA&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;アーキテクチャ：GPU（2024年はBlackwellアーキテクチャ）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;コアとなる強み：エコシステムへの囲い込み、ソフトウェアスタックの深さ、完全なシステム統合&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;対象ワークロード：汎用 — 大規模なLLMトレーニングと推論 - グラフィックシェーダー&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;脆弱性：高コスト、高消費電力。スパースコンピューティングには最適化されていない。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/nvidia-blackwell-microarchitecture.webp" alt="NVIDIA Blackwellマイクロアーキテクチャ" /&gt;&lt;/p&gt;&#10;&lt;h3 id="垂直統合企業"&gt;&#10; 垂直統合企業&#10; &lt;a class="heading-link" href="#%e5%9e%82%e7%9b%b4%e7%b5%b1%e5%90%88%e4%bc%81%e6%a5%ad"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://cloud.google.com/tpu" class="external-link" target="_blank" rel="noopener"&gt;Google&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;アーキテクチャ：TPU、カスタムASIC（シストリック）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;コアとなる強み：垂直統合；Google規模での最低コスト&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;対象ワークロード: Google Cloudワークロード、Gemini推論&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;脆弱性：Google Cloudからのみ利用可能。GoogleからTPUコアを購入することはできません。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/google-ironwood-tpu.webp" alt="Google TPU Ironwood: 2025 TPUマイクロアーキテクチャ" /&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://www.amd.com/en/products/accelerators/instinct.html" class="external-link" target="_blank" rel="noopener"&gt;AMD&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;アーキテクチャ：MI300 Instinct + ROCm（AMD独自のCUDA）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;コアの強み: CUDA の価格設定の代替手段。馴染みのある GPU モデル。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;対象ワークロード：クラウドコスト重視のHPCおよび推論&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;脆弱性：CUDAに対するソフトウェアのギャップ。最先端のエコシステム（例：NVQLINK）への対応が遅れている。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/amd-mi300-microarchitecture.webp" alt="AMD Radeon Instinct MI3xx システムマイクロアーキテクチャ" /&gt;&lt;/p&gt;</description></item><item><title>キュービットの形態：トランスモンQPUアーキテクチャ</title><link>https://qsysarch.com/ja/posts/qubit-modalities-transmon-qpi-architecture/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/qubit-modalities-transmon-qpi-architecture/</guid><description>&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/fiairchild-4-transistors-IC-in-1961.webp' style='width:180px;float:right;'&gt;&#10;&lt;p&gt;量子誤り訂正という素晴らしい世界に深く踏み込む前に、QPUのアーキテクチャ、特に1量子ビットゲートと2量子ビットゲートがハードウェアシリコンレベルでどのように実装されているかを説明する簡単なメモを用意しておくと役立つと考えました。&lt;/p&gt;&#10;&lt;p&gt;このようなメモを作成する際の課題は、QPUのアーキテクチャ、つまり方式が数多く存在することです。そこで、ここでは一般的な方式の一つである超伝導トランスモン量子ビットから始めたいと思います。&lt;/p&gt;&#10;&lt;p&gt;参考までに、右上の画像はフェアチャイルド社の1961年の4トランジスタICです。一見すると、今日のトランスモンはこのICと同じくらい複雑に見えるかもしれません。実際には、量子産業は1960年のシリコン産業に極低温＋超伝導という要素が加わった状態に戻ったように感じられます。ここで興味深いのは、70年代に何が起こったかに基づいて、制御ロジックの進化の可能性を予測することです。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qubit-modalities-transmon/moore-law.webp" alt="ムーアの法則：1960年代から現在までのシリコン集積の進化" /&gt; (画像提供：&lt;a href="https://computerhistory.org/" class="external-link" target="_blank" rel="noopener"&gt;コンピュータ歴史博物館&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="transmon-qpu-設計図"&gt;&#10; Transmon QPU 設計図&#10; &lt;a class="heading-link" href="#transmon-qpu-%e8%a8%ad%e8%a8%88%e5%9b%b3"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;下の図は、仮想的な2量子ビットの&lt;em&gt;チューナブル&lt;/em&gt;トランスモンを構成する要素を示しています。2量子ビットアーキテクチャを採用する理由は、個々の量子ビットの制御（シングル量子ビットゲート）と複数の量子ビットのエンタングルメント（2量子ビットゲート）の両方を可能にするためです。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qubit-modalities-transmon/a-2qubits-transmon-QPU-architecture.webp" alt="2量子ビットトランスモンQPUアーキテクチャ" /&gt;&lt;/p&gt;&#10;&lt;p&gt;上部の「5本の線」は、量子ビットの状態と2つの量子ビット間の相互作用を制御（操作）するために使用されます。下部の線は、量子ビットの読み出し（すなわち、量子ビットの波動関数の崩壊。これは破壊的なプロセスです）を実行するために使用されます。&lt;/p&gt;&#10;&lt;p&gt;上記の図はトランスモンアーキテクチャが調整可能であることを前提としていますが、必ずしもそうとは限りません。一部のアーキテクチャでは調整可能な量子ビットを使用しません。たとえば、&lt;a href="https://oqc.tech/resources/beyond-the-bit/precise-control-over-qubit-frequencies-post-fabrication/" class="external-link" target="_blank" rel="noopener"&gt;OQC&lt;/a&gt; Coaxmonアーキテクチャなどです。&lt;/p&gt;&#10;&lt;p&gt;トランスモン量子ビットを設計する上で重要な要素の一つは、超伝導温度で動作することです。ジョセフソン接合（JJ）を用いることで、熱放散なしに制御することが可能になります。ここでは、JJとその超伝導量子推論デバイス（SQUID）実現方法についての詳しい説明は省略します。興味のある方は、&lt;a href="https://www.youtube.com/watch?v=0kl3ucjh2Uw" class="external-link" target="_blank" rel="noopener"&gt;超伝導：SQUID&lt;/a&gt;の動画をご覧ください。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qubit-modalities-transmon/josephson-function-electron-microscope-view.webp" alt="ジョセフソン接合：走査型電子顕微鏡像" /&gt; (画像提供：&lt;a href="https://www.nature.com/articles/s41567-024-02400-8" class="external-link" target="_blank" rel="noopener"&gt;トンネル接合におけるジョセフソン高調波の観測&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="キュービット制御プロセス"&gt;&#10; キュービット制御プロセス&#10; &lt;a class="heading-link" href="#%e3%82%ad%e3%83%a5%e3%83%bc%e3%83%93%e3%83%83%e3%83%88%e5%88%b6%e5%be%a1%e3%83%97%e3%83%ad%e3%82%bb%e3%82%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;各制御線は異なる種類の信号を伝送するため、ダンパー（減衰器）やフィルターなどの使用される部品は、ドライブライン、カプラー制御線、またはキュービット制御線のいずれを扱うかによって異なります。&lt;/p&gt;&#10;&lt;h2 id="1-駆動系xy制御"&gt;&#10; 1. 駆動系（XY制御）&#10; &lt;a class="heading-link" href="#1-%e9%a7%86%e5%8b%95%e7%b3%bbxy%e5%88%b6%e5%be%a1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;トランスモン量子ビットの場合、XY駆動線はマイクロ波パルス（4～6GHz）の弱い容量結合を介して量子ビットを操作します。これはオンチップアンテナとして機能し、振動する電場を印加してブロッホ球上の回転を駆動します。&lt;/p&gt;&#10;&lt;div &gt; &lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/xx_gate.gif' style='width:33%' &gt;&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/yy_gate.gif' style='width:33%' &gt;&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/zz_gate.gif' style='width:33%'&gt; &lt;/div&gt;&#10;&lt;p&gt;XY駆動線は、マイクロ波パルスの周波数や物理的な経路ではなく、位相Φを変化させることによって、XゲートとYゲートを区別します。どちらのゲートも同じ周波数（量子ビットの共振周波数に一致）を必要とするため、ハードウェアはマイクロ波電界の量子ビットに対する向きをずらすことで回転軸を制御します。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/iq-mixer.webp' style='width:400px;float:right;' &gt;アライメントシフト、つまり位相調整は、通常、他の室温制御エレクトロニクスと共に設置されているIQミキサーで行われます。IQミキサーは、同相（&lt;code&gt;I&lt;/code&gt;）信号と直交（&lt;code&gt;Q&lt;/code&gt;）信号の&lt;a href="https://pulse-lib.readthedocs.io/en/latest/signals/iq_modulation/" class="external-link" target="_blank" rel="noopener"&gt;IQ変調&lt;/a&gt;と、量子ビットの共振周波数に対応する搬送周波数&lt;code&gt;fc&lt;/code&gt;を使用します。（右の画像は&lt;a href="https://pulse-lib.readthedocs.io/en/latest/signals/iq_modulation/" class="external-link" target="_blank" rel="noopener"&gt;Pulse Lib&lt;/a&gt;に基づいています）。&lt;/p&gt;&#10;&lt;p&gt;Xゲートを作成するには、Qblox &lt;a href="https://qblox.com/modules/qcm-rf" class="external-link" target="_blank" rel="noopener"&gt;QCM-RF&lt;/a&gt;などの制御モジュールは、&lt;code&gt;I&lt;/code&gt;チャンネルを完全にオンに設定し、&lt;code&gt;Q&lt;/code&gt;チャンネルをオフにするだけで済みます。Yゲートを作成するには、代わりに&lt;code&gt;I&lt;/code&gt;チャンネルをオフにし、&lt;code&gt;Q&lt;/code&gt;チャンネルを完全にオンにする必要があります。もちろん、実際にはもっと複雑で、XゲートとYゲート間のリークを防ぐために&lt;a href="https://ar5iv.labs.arxiv.org/html/2008.07265" class="external-link" target="_blank" rel="noopener"&gt;IQミキサーのキャリブレーション&lt;/a&gt;を確実に行う必要があります。&lt;/p&gt;&#10;&lt;h2 id="2-キュービット制御線z軸磁束バイアス"&gt;&#10; 2. キュービット制御線（Z軸／磁束バイアス）&#10; &lt;a class="heading-link" href="#2-%e3%82%ad%e3%83%a5%e3%83%bc%e3%83%93%e3%83%83%e3%83%88%e5%88%b6%e5%be%a1%e7%b7%9az%e8%bb%b8%e7%a3%81%e6%9d%9f%e3%83%90%e3%82%a4%e3%82%a2%e3%82%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;磁束バイアス（Z）制御線は、各量子ビットの周波数を調整するために使用されます。これは、量子ビットのSQUIDループを貫通する磁束を変化させることによって行われます。この制御線の目的は次の3つです。&lt;/p&gt;&#10;&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/quantum-z-gates.webp' style='max-width:350px;float:right;' &gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;パウリZゲート&lt;/strong&gt;: フラックスバイアス制御線をパルスすることで、量子ビットの周波数をアイドルフレームからgvの間ずらし、計算フレームに対して正確な位相差(θ)を蓄積することにより、パウリZゲートが実現されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;制御Z（CZ）ゲート&lt;/strong&gt;: 制御Z（CZ）ゲートなどの2量子ビット操作では、高速フラックスパルスによって1つの量子ビットの周波数が一時的にシフトされ、隣接する量子ビットの特定のエネルギーレベルと共鳴し、それらの相互作用が活性化されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;アイドル保護&lt;/strong&gt;: フラックスバイアスラインは、量子ビットを特定の安定した周波数（しばしば「スイートスポット」と呼ばれる）に動的に「パーク」するためにも使用されます。この周波数では、量子ビットはフラックスノイズに対して最も感度が低くなります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;物理的なパウリZゲートは、磁束パルスがノイズを発生させ、コヒーレンスを低下させる可能性があるため、ほとんど使用されないことに注意してください。物理的なパルスを送信する代わりに、高レベルの量子回路コンパイラは、後続のXYマイクロ波パルスの位相を数学的にシフトします。これは&lt;a href="https://quantumelements.ai/publications/virtual-z-gates-v2.pdf" class="external-link" target="_blank" rel="noopener"&gt;&lt;strong&gt;仮想Zゲート&lt;/strong&gt;&lt;/a&gt;と呼ばれます。&lt;/p&gt;&#10;&lt;h1 id="キュービット読み出しプロセス"&gt;&#10; キュービット読み出しプロセス&#10; &lt;a class="heading-link" href="#%e3%82%ad%e3%83%a5%e3%83%bc%e3%83%93%e3%83%83%e3%83%88%e8%aa%ad%e3%81%bf%e5%87%ba%e3%81%97%e3%83%97%e3%83%ad%e3%82%bb%e3%82%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;h2 id="1-周波数多重化なぜすべての読み出し共振器が固有のものなのか"&gt;&#10; 1. 周波数多重化：なぜすべての読み出し共振器が固有のものなのか&#10; &lt;a class="heading-link" href="#1-%e5%91%a8%e6%b3%a2%e6%95%b0%e5%a4%9a%e9%87%8d%e5%8c%96%e3%81%aa%e3%81%9c%e3%81%99%e3%81%b9%e3%81%a6%e3%81%ae%e8%aa%ad%e3%81%bf%e5%87%ba%e3%81%97%e5%85%b1%e6%8c%af%e5%99%a8%e3%81%8c%e5%9b%ba%e6%9c%89%e3%81%ae%e3%82%82%e3%81%ae%e3%81%aa%e3%81%ae%e3%81%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;div style='padding:5px;background:#00819dcc;;float:right; margin-left:10px;padding:5px;line-height:1.1;text-align:center;color:white;font-size:80%;border-radius:2px;'&gt; &lt;a href='https://qblox.com/product/qubit-readout-module-rf' target=&gt;&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/qblox-qrm-rf.webp' style='height:400px; padding-right:5px;'&gt;&lt;/a&gt; &lt;a href='https://qblox.com/product/qubit-readout-and-control'&gt;&lt;img src='https://qsysarch.com/images/qubit-modalities-transmon/qblox-qrc.webp' style='height:400px'&gt;&lt;/a&gt;&lt;br&gt; Qblox読み出し電子機器：&lt;br&gt; &lt;a href='https://qblox.com/product/qubit-readout-module-rf'&gt;QRM&lt;/a&gt;と&lt;a href='https://qblox.com/product/qubit-readout-and-control'&gt;QRC&lt;/a&gt; 。&lt;/div&gt;&#10;&lt;p&gt;各量子ビットごとに別個の大型マイクロ波ケーブルを希釈冷凍機まで引き込む代わりに、複数の量子ビットを単一の共通読み出しフィードライン（従来のマイクロアーキテクチャにおける「バス」のようなもの）に接続する。&lt;/p&gt;</description></item><item><title>イラスト</title><link>https://qsysarch.com/ja/illustrations/</link><pubDate>Sat, 04 Apr 2026 18:44:19 +0200</pubDate><guid>https://qsysarch.com/ja/illustrations/</guid><description>&lt;p&gt;「百聞は一見に如かず」と言われるように、私は図解を豊富に用いたシステム設計図を作成し、コミュニティと共有することに情熱を注いでいます。コンピューターで&lt;a href="https://www.drawio.com/" class="external-link" target="_blank" rel="noopener"&gt;drawio&lt;/a&gt;アプリケーションを使ってスケッチしていない時は、手書きでメモを取ったり、図を描いたりするのも好きです。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/illustrations/design-01.webp' style='width:32%'&gt; &lt;img src='https://qsysarch.com/images/illustrations/design-02.webp' style='width:32%'&gt; &lt;img src='https://qsysarch.com/images/illustrations/design-03.webp' style='width:32%'&gt;&lt;/p&gt;&#10;&lt;p&gt;以下の図はすべてオープンスタンダードライセンスに基づいて公開されています。ですから、ご自由にお使いください。改変したり、変更したりしても構いません。ただし、&lt;a href="https://qsysarch.com" class="external-link" target="_blank" rel="noopener"&gt;qsysarch.com&lt;/a&gt;へのクレジット表記をお願いします。また、これらの図に含まれるアイコンの一部については、素晴らしい&lt;a href="https://icons8.com" class="external-link" target="_blank" rel="noopener"&gt;icons8.com&lt;/a&gt;リポジトリへのクレジット表記も必要となりますのでご注意ください。&lt;/p&gt;&#10;&lt;div class="gallery"&gt;&#10;&lt;div class="gallery-preview" id="gallery-100"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2026-07-18: QEC: Quantum Error Corrected Logical Qubit (part 1)&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,101)' onmouseout='hide(101)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/qec-encoding-circuit.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,101)' onmouseout='hide(101)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/stabilizer-measurement.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,101)' onmouseout='hide(101)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/surface-code-distance.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-101"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,102)' onmouseout='hide(102)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/qec-1d-repetiion-code.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,102)' onmouseout='hide(102)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/zero-knowledge.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,102)' onmouseout='hide(102)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/dynamic-surface-codes.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-102"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,103)' onmouseout='hide(103)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/surface-code.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,103)' onmouseout='hide(103)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/qec-cycle.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,103)' onmouseout='hide(103)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-fondation-concepts"&gt;&#10; &lt;img src="https://qsysarch.com/images/qec-control/qec-stack.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-103"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2026-07-10: Semiconductor Metrology: Atomic Scale Measurements&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,104)' onmouseout='hide(104)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/optical-microscopy-reflected.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,104)' onmouseout='hide(104)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/chiplet-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,104)' onmouseout='hide(104)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/quantware-vio3d-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-104"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,105)' onmouseout='hide(105)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/optical-microscopy-reflected-light-differential-inference-contrast.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,105)' onmouseout='hide(105)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/nearfield-instrument-quadra-mechatronic-positioning-unit.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,105)' onmouseout='hide(105)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/quadra-afm-lightning-mode.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-105"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,106)' onmouseout='hide(106)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/quadra-system-analysis.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,106)' onmouseout='hide(106)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/semiconductor-metrology"&gt;&#10; &lt;img src="https://qsysarch.com/images/asic-metrology/how-to-make-a-sillicon-chip.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-106"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2026-06-28: xPUs: AI Inference Hardware Acceleration MicroArchitectures&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,107)' onmouseout='hide(107)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/xPUs-manufacturer-logos.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,107)' onmouseout='hide(107)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/xPUs-manufacturer-more-logos.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,107)' onmouseout='hide(107)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/furiosa-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-107"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,108)' onmouseout='hide(108)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/groq-lpu-tsp-execution-pipeline.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,108)' onmouseout='hide(108)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/sambanova-micro-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,108)' onmouseout='hide(108)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/amd-mi300-microarchitecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-108"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,109)' onmouseout='hide(109)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/google-ironwood-tpu.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,109)' onmouseout='hide(109)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/axelera-aipu-microarchitecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,109)' onmouseout='hide(109)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/pbits-vs-qubits-vs-bits.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-109"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,110)' onmouseout='hide(110)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/nvidia-blackwell-microarchitecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,110)' onmouseout='hide(110)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/prefill-vs-decode-disaggregation.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,110)' onmouseout='hide(110)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/xpu-system-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-110"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,111)' onmouseout='hide(111)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/cerebras-wfe2-microarchitecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,111)' onmouseout='hide(111)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/space-time-compromise.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,111)' onmouseout='hide(111)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/groq-lpu-microarchitecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-111"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,112)' onmouseout='hide(112)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/unconvential-ai-coupled-oscillator-image-generator.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,112)' onmouseout='hide(112)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/ai-inference-hardware-acceleration-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpxpus/akhetonics-computing-components.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-112"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2026-06-14: Qubit Modalities: Transmon QPU Architecture&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,113)' onmouseout='hide(113)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/gate-decomposition-using-iswap-and-cz.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,113)' onmouseout='hide(113)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/moore-law.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,113)' onmouseout='hide(113)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/josephson-function-electron-microscope-view.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-113"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,114)' onmouseout='hide(114)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/resonator-spectroscopy.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,114)' onmouseout='hide(114)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/a-2qubits-transmon-QPU-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,114)' onmouseout='hide(114)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/iq-mixer.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-114"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,115)' onmouseout='hide(115)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/superconducting-setup.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,115)' onmouseout='hide(115)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/Chalmers-5qubits-transmon-chip.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,115)' onmouseout='hide(115)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/rf-squid-vs-dc-squid.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-115"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,116)' onmouseout='hide(116)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/qubit-modalities-transmon-qpi-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-modalities-transmon/quantum-z-gates.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-116"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2026-03-28: General Matrix Multiplication (GEMM) Kernels&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,117)' onmouseout='hide(117)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gemm-kernels"&gt;&#10; &lt;img src="https://qsysarch.com/images/gemm/gpu-sm-queue.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,117)' onmouseout='hide(117)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gemm-kernels"&gt;&#10; &lt;img src="https://qsysarch.com/images/gemm/gpu-scheduling.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,117)' onmouseout='hide(117)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gemm-kernels"&gt;&#10; &lt;img src="https://qsysarch.com/images/gemm/gpu-threading.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-117"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,118)' onmouseout='hide(118)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gemm-kernels"&gt;&#10; &lt;img src="https://qsysarch.com/images/gemm/gemm-naive.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,118)' onmouseout='hide(118)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gemm-kernels"&gt;&#10; &lt;img src="https://qsysarch.com/images/gemm/cuda-block-and-grid.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,118)' onmouseout='hide(118)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gemm-kernels"&gt;&#10; &lt;img src="https://qsysarch.com/images/gemm/gemm-tiled.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-118"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2026-03-22: Capacity and Efficiency Engineering&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,119)' onmouseout='hide(119)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/capacity-and-efficiency-engineering"&gt;&#10; &lt;img src="https://qsysarch.com/images/capacity-and-efficiency-engineering/capacity-and-efficiency-engineering-pillars.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,119)' onmouseout='hide(119)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/capacity-and-efficiency-engineering"&gt;&#10; &lt;img src="https://qsysarch.com/images/capacity-and-efficiency-engineering/simulation-vs-emulation.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,119)' onmouseout='hide(119)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/capacity-and-efficiency-engineering"&gt;&#10; &lt;img src="https://qsysarch.com/images/capacity-and-efficiency-engineering/obervation-sampling.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-119"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,120)' onmouseout='hide(120)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/capacity-and-efficiency-engineering"&gt;&#10; &lt;img src="https://qsysarch.com/images/capacity-and-efficiency-engineering/capacity-and-efficiency-engineering.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,120)' onmouseout='hide(120)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/capacity-and-efficiency-engineering"&gt;&#10; &lt;img src="https://qsysarch.com/images/capacity-and-efficiency-engineering/optimial-utilization.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-120"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-12-12: Tensor Processing Unit (TPU): High Level System Architecture&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,121)' onmouseout='hide(121)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/bf16.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,121)' onmouseout='hide(121)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpu-evolution.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,121)' onmouseout='hide(121)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/lpu.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-121"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,122)' onmouseout='hide(122)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpuv4-scale.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,122)' onmouseout='hide(122)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpuv4.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,122)' onmouseout='hide(122)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpu-v1-v2-v3.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-122"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,123)' onmouseout='hide(123)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpuv2.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,123)' onmouseout='hide(123)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpuv4-sparecore-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,123)' onmouseout='hide(123)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/tpuv4-chip-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-123"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,124)' onmouseout='hide(124)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/systolic-array.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,124)' onmouseout='hide(124)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/tpu-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/tensor-processors/gpu-pixel-shader.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-124"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-11-30: Organizing Complexity: more architecture, less plumbing&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,125)' onmouseout='hide(125)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/organizing-complexity"&gt;&#10; &lt;img src="https://qsysarch.com/images/organizing-complexity/normoscope.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,125)' onmouseout='hide(125)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/organizing-complexity"&gt;&#10; &lt;img src="https://qsysarch.com/images/organizing-complexity/tpu-evolution.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,125)' onmouseout='hide(125)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/organizing-complexity"&gt;&#10; &lt;img src="https://qsysarch.com/images/organizing-complexity/project-driven-organizations.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-125"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-11-28: Neuromorphic ICs: High Level System Architecture&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,126)' onmouseout='hide(126)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/talamo-sdk.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,126)' onmouseout='hide(126)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/innatera-snn-processing-workflow.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,126)' onmouseout='hide(126)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/spiking-neuron.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-126"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,127)' onmouseout='hide(127)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/ravens-neural-core.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,127)' onmouseout='hide(127)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/WO2023242374A1.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,127)' onmouseout='hide(127)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/innatera-patent.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-127"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,128)' onmouseout='hide(128)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/neuromorphic-ics-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/neuromorphic-ics/architecture-of-Innatera-Pulsar-neuromorphic-microcontrolle.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-128"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-10-28: NVQLink: Nvdia's GPU–Quantum Unified System Architecture&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,129)' onmouseout='hide(129)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/nvqlink-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/nvqlink/nvqlink-network-architecture-concept.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,129)' onmouseout='hide(129)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/nvqlink-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/nvqlink/nvqlink-lowering-workflow.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,129)' onmouseout='hide(129)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/nvqlink-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/nvqlink/nvqlink-kernel.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-129"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,130)' onmouseout='hide(130)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/nvqlink-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/nvqlink/nvqlink-system-architecture-diagram.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,130)' onmouseout='hide(130)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/nvqlink-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/nvqlink/nvqlink-compilation-workflow.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,130)' onmouseout='hide(130)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/nvqlink-system-architecture"&gt;&#10; &lt;img src="https://qsysarch.com/images/nvqlink/time-domains.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-130"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-10-26: QRAM as the Quantum Bit Array&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,131)' onmouseout='hide(131)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-memory"&gt;&#10; &lt;img src="https://qsysarch.com/images/next-scale-level/quantum-memory-vs-quantum-control.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,131)' onmouseout='hide(131)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-memory"&gt;&#10; &lt;img src="https://qsysarch.com/images/next-scale-level/quantum-computing-machine-2030.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-131"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-10-18: GPUDirect RDMA: The life of a RoCE packet&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,132)' onmouseout='hide(132)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gpu-direct-from-rdma-from-pcie-to-using-doca"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpudirect-rdma-pcie/RDMA-Queues-and-Work-Elements.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,132)' onmouseout='hide(132)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gpu-direct-from-rdma-from-pcie-to-using-doca"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpudirect-rdma-pcie/RDMA-session-establishment.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,132)' onmouseout='hide(132)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/gpu-direct-from-rdma-from-pcie-to-using-doca"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpudirect-rdma-pcie/ip-frame-tos-ecn.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-132"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-10-08: Quantum Error Correction: The life of a qubit&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,133)' onmouseout='hide(133)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-the-life-of-a-qubit"&gt;&#10; &lt;img src="https://qsysarch.com/images/quantum-error-correction/qubit-gate-error-probability.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,133)' onmouseout='hide(133)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-error-correction-the-life-of-a-qubit"&gt;&#10; &lt;img src="https://qsysarch.com/images/quantum-error-correction/logical-qubit-physical-mapping.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-133"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-09-28: Which machine for Quantum Algorithms?&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,134)' onmouseout='hide(134)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/executing-a-quantum-algorithm"&gt;&#10; &lt;img src="https://qsysarch.com/images/quantum-mid-circuit-measurement.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-134"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-09-23: 3 blue 1 brown: Grover's Algorithm&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,135)' onmouseout='hide(135)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/but-what-is-quantum-computing"&gt;&#10; &lt;img src="https://qsysarch.com/images/quantum-algorithm.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,135)' onmouseout='hide(135)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/but-what-is-quantum-computing"&gt;&#10; &lt;img src="https://qsysarch.com/images/quantum-gates-vs-classical-logic-gates.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,135)' onmouseout='hide(135)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/but-what-is-quantum-computing"&gt;&#10; &lt;img src="https://qsysarch.com/images/qubit-vs-cbit.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-135"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,136)' onmouseout='hide(136)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/but-what-is-quantum-computing"&gt;&#10; &lt;img src="https://qsysarch.com/images/hadamard-gate.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-136"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-09-22: RoCEv2: InfiniBand Transport Protocol&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,137)' onmouseout='hide(137)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-infiniband-transport-protocol-of-rocev2"&gt;&#10; &lt;img src="https://qsysarch.com/images/rocev2-frame-format.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,137)' onmouseout='hide(137)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-infiniband-transport-protocol-of-rocev2"&gt;&#10; &lt;img src="https://qsysarch.com/images/rdma-write-only.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,137)' onmouseout='hide(137)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-infiniband-transport-protocol-of-rocev2"&gt;&#10; &lt;img src="https://qsysarch.com/images/RoCEv2-IBTH-RETH-frame.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-137"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-09-21: Quantum Entity Component System&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,138)' onmouseout='hide(138)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/quantum-entity-component-system"&gt;&#10; &lt;img src="https://qsysarch.com/images/quantum-entity-component-system/ecs-uml.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-138"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-09-16: The confusing world of RDMA &amp; InfiniBand&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,139)' onmouseout='hide(139)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-confusing-world-of-rdma-and-infiniband"&gt;&#10; &lt;img src="https://qsysarch.com/images/eth-roce-infiniband.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,139)' onmouseout='hide(139)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-confusing-world-of-rdma-and-infiniband"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpunetio-packet-xfer.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,139)' onmouseout='hide(139)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-confusing-world-of-rdma-and-infiniband"&gt;&#10; &lt;img src="https://qsysarch.com/images/rdma-verb-processing.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-139"&gt;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,140)' onmouseout='hide(140)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-confusing-world-of-rdma-and-infiniband"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpu-direct-rdma-via-pcie-root-complex.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,140)' onmouseout='hide(140)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-confusing-world-of-rdma-and-infiniband"&gt;&#10; &lt;img src="https://qsysarch.com/images/gpunetio-and-doca.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,140)' onmouseout='hide(140)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/the-confusing-world-of-rdma-and-infiniband"&gt;&#10; &lt;img src="https://qsysarch.com/images/RDMA-stack.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-140"&gt;&lt;/div&gt;&#10;&lt;h2&gt;2025-09-12: Using AI to improve quantum systems&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,141)' onmouseout='hide(141)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/using-ai-to-improve-quantum-systems"&gt;&#10; &lt;img src="https://qsysarch.com/images/reinforcement-learning-01.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div onmouseover='show(this,141)' onmouseout='hide(141)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/using-ai-to-improve-quantum-systems"&gt;&#10; &lt;img src="https://qsysarch.com/images/reinforcement-learning-02.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-141"&gt;&lt;/div&gt;&#10;&lt;h1&gt;Unfinished Memos&lt;/h1&gt;&#10;&lt;h2&gt;Resilient networking for autonoumous vehicules&lt;/h2&gt;&#10;&lt;div onmouseover='show(this,142)' onmouseout='hide(142)' class="gallery-item"&gt;&#10; &lt;a href="https://qsysarch.com/posts/resilient-networking-for-autonoumous-vehicules"&gt;&#10; &lt;img src="https://qsysarch.com/images/resilient-networking/autonomous-vehicule-resilient-networking-architecture.webp"&gt;&#10; &lt;/a&gt;&#10;&lt;/div&gt;&#10;&lt;div class="gallery-preview" id="gallery-142"&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;script&gt;&#10;function show(img, id) {&#10;img = img.getElementsByTagName("img")[0];&#10;var o = document.getElementById("gallery-"+ id)&#10;o.innerHTML = "&lt;img src='"+img.src+"'&gt;";&#10;}&#10;function hide(id) {&#10;var o = document.getElementById("gallery-"+ id)&#10;o.innerHTML = "";&#10;}&#10;&lt;/script&gt;&#10;&lt;style&gt;&#10;.gallery {&#10;display: grid;&#10;grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));&#10;gap: .5rem;&#10;text-align: left;&#10;}&#10;&#10;&#10;.gallery img {&#10;}&#10;&#10;.gallery h2 {&#10;grid-column: 1 / -1;&#10;}&#10;&#10;.gallery &gt; .gallery-item {&#10;border: 1px solid #ccc;&#10;padding: 0.25rem;&#10;margin: 0;&#10;text-align: center;&#10;vertical-align: middle;&#10;}&#10;.gallery &gt; .gallery-item img{&#10;max-height: 200px;&#10;}&#10;&#10;.gallery &gt; .gallery-preview {&#10;grid-column: 1 / -1;&#10;}&#10;.gallery &gt; .gallery-preview img {&#10;transition: max-height .15s ease-out;&#10;}&#10;&#10;&lt;/style&gt;</description></item><item><title>一般行列乗算（GEMM）カーネル</title><link>https://qsysarch.com/ja/posts/gemm-kernels/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/gemm-kernels/</guid><description>&lt;p&gt;このメモでは、GPUの基本に立ち返ります。特に、深層学習の中核となる演算である行列乗算に焦点を当てます。まず、基本的な実装と学術的な実装について説明します。次に、GPUを効率的に使用するために必要な最適化について見ていきます。&lt;/p&gt;&#10;&lt;h1 id="単純な行列乗算器の理解"&gt;&#10; 単純な行列乗算器の理解&#10; &lt;a class="heading-link" href="#%e5%8d%98%e7%b4%94%e3%81%aa%e8%a1%8c%e5%88%97%e4%b9%97%e7%ae%97%e5%99%a8%e3%81%ae%e7%90%86%e8%a7%a3"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;まずは、教科書によく載っている基本的な例から始めましょう。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Cpp"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;/**&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;* Kernel to perform matrix multiplication C = A × B&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;* A is of size N x M, B is M x N, and C is N x N&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;* Each thread computes one element of matrix C.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cm"&gt;*/&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;__global__&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;naive_matrix_multiply&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Calculate global row and column for this thread&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;blockIdx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="cm"&gt;/* 0...16 */&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;blockDim&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;threadIdx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;blockIdx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="cm"&gt;/* 0...16 */&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;blockDim&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;threadIdx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mf"&gt;0.0f&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;M&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// C[row][col] = sum(A[row][i] * B[i][col])&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sum&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;C&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;row&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;N&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;col&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;一見すると、これは簡単そうに見えます。出力行列Cの各セルを計算するだけです。このカーネルコードは、目的を達成しているように見えます。以下に、カーネルをより視覚的に表現したものを示します。&lt;/p&gt;</description></item><item><title>容量と効率のエンジニアリング</title><link>https://qsysarch.com/ja/posts/capacity-and-efficiency-engineering/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/capacity-and-efficiency-engineering/</guid><description>&lt;p&gt;最近、容量効率エンジニアリングという概念に出会いました。これは、システムを最適な方法で設計・運用する分野です。システムアーキテクチャの重要な柱であり、量子コンピューティングシステムのように規模が重要な場合には特に重要です。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/efficiency.webp#right" alt="容量効率エンジニアリング" style="width: 100%; max-width: 150px;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;簡単に言うと、生産能力・効率工学とは、生産を最適化するための科学または学問分野です。これは、最大生産量（生産能力）と資源消費量（効率）のバランスを取ることによって実現されます。&lt;/p&gt;&#10;&lt;p&gt;キャパシティ・アンド・エフィシェンシー・エンジニアリング（CEE）の良い点は、その分野が明確に定義され、関連文献が豊富にあり、体系化されたエンジニアリング手法によって支えられていることです。本稿では、CEEで使用されるいくつかの重要な概念を抽出することを試みます。&lt;/p&gt;&#10;&lt;h1 id="能力と効率性に関するエンジニアリングの柱"&gt;&#10; 能力と効率性に関するエンジニアリングの柱&#10; &lt;a class="heading-link" href="#%e8%83%bd%e5%8a%9b%e3%81%a8%e5%8a%b9%e7%8e%87%e6%80%a7%e3%81%ab%e9%96%a2%e3%81%99%e3%82%8b%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0%e3%81%ae%e6%9f%b1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;キャパシティ＆効率エンジニアリングは、可観測性、モデリング、プランニングという3つの主要な柱に基づいて構築されています。&lt;/p&gt;&#10;&lt;center&gt;&lt;div style='display:inline-block'&gt;&lt;img src='https://qsysarch.com/images/capacity-and-efficiency-engineering/microscope.webp' style='width:120px;'&gt;&lt;br&gt;可観測性&lt;/div&gt;→ &lt;div style='display:inline-block'&gt;&lt;img src='https://qsysarch.com/images/capacity-and-efficiency-engineering/modelling.webp' style='width:120px;'&gt;&lt;br&gt;モデリング&lt;/div&gt;→ &lt;div style='display:inline-block'&gt;&lt;img src='https://qsysarch.com/images/capacity-and-efficiency-engineering/planning.webp' style='width:120px;'&gt;&lt;br&gt;計画&lt;/div&gt;&lt;/center&gt;&#10;&lt;p&gt;最終的な目標は、モデルを用いて効果的にシミュレーションできる計画を作成することです。このモデルは、実測データに基づいて検証されるべきです。成長をモデル化し、ボトルネックを特定し、リソースを戦略的に配分することで、計画は過負荷やリソース不足を防ぎます。これにより、システムの最適な運用が保証されます。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/capacity-and-efficiency-engineering-pillars.webp" alt="容量と効率のエンジニアリング" /&gt;&lt;/p&gt;&#10;&lt;p&gt;システムリソースはあらゆるものを指す可能性がある点に留意すべきである。CPUやメモリといったITリソースから、人員や機械設備まで、その範囲は多岐にわたる。実際、CEEは様々な分野で応用可能である。例えば、プロジェクト管理における人員配置の最適化や、インフラ管理におけるクラウドホスティングコストの削減などに役立つ。&lt;/p&gt;&#10;&lt;h2 id="可観測性-容量と効率のエンジニアリング"&gt;&#10; 可観測性 &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/microscope.webp#right" alt="容量と効率のエンジニアリング" style="width: 100%; max-width: 150px;"/&gt;&#10; &lt;a class="heading-link" href="#%e5%8f%af%e8%a6%b3%e6%b8%ac%e6%80%a7-%e5%ae%b9%e9%87%8f%e3%81%a8%e5%8a%b9%e7%8e%87%e3%81%ae%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;可観測性とは、システムの_経験的分析_のことです。コンピューティングシステムでは、ログはしばしば可観測性と混同されますが、可観測性は全体像の一部にすぎません。例えば、&lt;a href="https://opentelemetry.io/" class="external-link" target="_blank" rel="noopener"&gt;OpenTelemetry&lt;/a&gt;標準は、ログ、メトリクス、トレース、バゲージなど、複数の可観測_シグナル_を包含しています。CEEにとって、効果的な可観測性とは、以下の点を満たすものです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;リソース使用状況：リソースの消費状況を監視および追跡します。監視では、リソースがいつ、誰によって、何に使用されたか、およびエラーが発生したかどうかを明記する必要があります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;パフォーマンス指標：レイテンシやスループットなどの主要業績指標（KPI）を追跡します。歩留まり、無駄、エラー率なども含まれます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ボトルネックの特定：システムのスループットを低下させる制約を特定する。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;重要なのは、システムの事後分析を、高負荷時、メンテナンス時、アイドル時など、あらゆる条件下で実施できることです。何が、いつ、なぜ起こったのかを詳細に理解することが重要です。こうした観測データがなければ、システム障害の根本原因を特定することは不可能です。&lt;/p&gt;&#10;&lt;p&gt;もちろん、システム全体の観測データを収集するには課題があります。観測は非常にコストがかかる場合があり、場合によっては破壊的になることもあります（量子コンピューティングの場合、システムを測定すると状態が変化する可能性があり、これは観測者効果として知られています）。つまり、システムを観測するだけの行為が、その動作を変え、パフォーマンスを低下させる可能性があるということです。この解決策はサンプリング（すべてのイベントではなく、一部のイベントからのみデータを収集すること）です。そのアイデアは、サンプリングレート（データ収集の頻度）を調整可能なシステムパラメータにすることです。下の図を参照してください（出典：&lt;a href="https://opentelemetry.io/docs/concepts/sampling/" class="external-link" target="_blank" rel="noopener"&gt;OpenTelemetry&lt;/a&gt;）。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/obervation-sampling.webp" alt="観測サンプリング" /&gt;&lt;/p&gt;&#10;&lt;p&gt;非コンピュータシステムの場合、効果的な可観測性によって、例えばプロジェクトが遅延している理由を説明できるようになります。可観測データとしては、各プロジェクトフェーズで行われた追跡可能な意思決定を説明する、&lt;a href="https://en.wikipedia.org/wiki/ISO_9000_family#Contents_of_ISO_9001" class="external-link" target="_blank" rel="noopener"&gt;ISO9001&lt;/a&gt;で規定されている技術文書および非技術文書が考えられます。&lt;/p&gt;&#10;&lt;h2 id="モデリング-容量と効率のエンジニアリング"&gt;&#10; モデリング &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/modelling.webp#right" alt="容量と効率のエンジニアリング" style="width: 100%; max-width: 150px;"/&gt;&#10; &lt;a class="heading-link" href="#%e3%83%a2%e3%83%87%e3%83%aa%e3%83%b3%e3%82%b0-%e5%ae%b9%e9%87%8f%e3%81%a8%e5%8a%b9%e7%8e%87%e3%81%ae%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;可観測性が確立されると、システムの解析的なパラメータ挙動を理解し始めることができます。この挙動は次の柱の基礎となります。つまり、それを記述し、パラメータモデルに変換することができます。次のステップは、一連のパラメータまたは条件が与えられた場合に、そのようなモデルが何を提供する必要があるかを明確にすることです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;パフォーマンス：システムが提供できる最大スループットと最大レイテンシはどのくらいですか。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;運用コスト：割り当てられたリソース数で表した場合、システムを運用するのにどれくらいの費用がかかりますか？このコストは時間帯によって変動する場合があります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;再構成：システムパラメータを更新した場合の一時的な影響（一時的な効果）は何ですか？例えば、新しいサーバーやQPUを割り当てて適切に構成する場合などです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;重要なのは、システムの動作をシミュレーションし、さまざまな動作条件下での性能を観察することです。モデルにはリソースコストが含まれているため、これらの条件下でのコストのトレードオフを示すことができます。この情報は計画段階において重要です。&lt;/p&gt;&#10;&lt;p&gt;ここで、シミュレーションとエミュレーションの違いについて触れておく価値がある。大まかに言うと、エミュレーションはシステムの模擬版を作成するのに対し、シミュレーションはシステムの抽象モデル上で動作する。エミュレーションでは、入力が同じであるため、エミュレートされたパフォーマンスと実際のパフォーマンスを比較することが可能である。CEEの文脈では、モデルとは主にシミュレータを指すものと想定する。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/simulation-vs-emulation.webp" alt="シミュレーションとエミュレーション" /&gt;&lt;/p&gt;&#10;&lt;p&gt;非コンピューティングシステムに適したモデルであれば、プロジェクトにリソースを追加した場合の影響を予測できるはずです。実際、リソースを追加するとシステムのパフォーマンスが低下する場合もあります。この直感に反する結果は、ブルックスの法則として知られています。&lt;/p&gt;&#10;&lt;h2 id="計画-容量と効率エンジニアリング"&gt;&#10; 計画 &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/planning.webp#right" alt="容量と効率エンジニアリング" style="width: 100%; max-width: 150px;"/&gt;&#10; &lt;a class="heading-link" href="#%e8%a8%88%e7%94%bb-%e5%ae%b9%e9%87%8f%e3%81%a8%e5%8a%b9%e7%8e%87%e3%82%a8%e3%83%b3%e3%82%b8%e3%83%8b%e3%82%a2%e3%83%aa%e3%83%b3%e3%82%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;モデルが完成したら、システム運用の計画を開始できます。モデルを使って様々な条件をシミュレーションし、最適な条件を見つけましょう。これらの結果を基に、需要に応じてリソースを戦略的に割り当てます。優れた計画には、需要予測、コスト管理、フェイルセーフ機能が備わっているべきです。需要予測は、将来の使用量、トラフィック、またはニーズを予測します。コスト管理は、ピーク時の容量を維持しながら、過剰なリソース供給を抑制します。フェイルセーフ機能は、予期せぬ需要に対応するためのバッファを提供します。&lt;/p&gt;&#10;&lt;p&gt;重要なのは、システムを効率的かつ確実に運用することです。ピーク負荷にも確実に対応し、コスト効率を保証します。予測された容量に基づいて、事前に再構成を行うことができます。予期せぬ事態に対応するための十分なバッファを確保します。&lt;/p&gt;&#10;&lt;p&gt;この計画は、需要が予想通りである場合の最良シナリオと、需要が予想よりも多い場合または少ない場合の最悪シナリオを組み合わせたものです。このアプローチにより、コスト効率に優れた生産能力の配分が実現します。&lt;/p&gt;&#10;&lt;h1 id="モデルの微調整"&gt;&#10; モデルの微調整&#10; &lt;a class="heading-link" href="#%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e5%be%ae%e8%aa%bf%e6%95%b4"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;h2 id="鶏と卵のジレンマ"&gt;&#10; 鶏と卵のジレンマ&#10; &lt;a class="heading-link" href="#%e9%b6%8f%e3%81%a8%e5%8d%b5%e3%81%ae%e3%82%b8%e3%83%ac%e3%83%b3%e3%83%9e"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;優れたモデルを設計することは、まさに卵が先か鶏が先かという問題です。システム内で何を観察すべきか、そしてそれをどのように観察すべきかを知らなければ、効率的かつ正確なモデルを構築することは困難です。正確なモデルがなければ、計画は良い結果を生み出す可能性は低いでしょう。&lt;/p&gt;</description></item><item><title>テンソル処理ユニット（TPU）：高レベルシステムアーキテクチャ</title><link>https://qsysarch.com/ja/posts/tpu-architecture/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/tpu-architecture/</guid><description>&lt;img src='https://qsysarch.com/images/tensor-processors/tpu-vs-gpu.webp' style='width:350px;float:right;'&gt;&#10;&lt;p&gt;AIが膨大なエネルギーを消費する世界において、テンソル処理ユニット（TPU）はまさにゲームチェンジャーと言えるでしょう。これは、Googleが機械学習タスク専用に設計したカスタムチップです。&lt;/p&gt;&#10;&lt;p&gt;この簡単なメモは、TPUのアーキテクチャの概要と、2016年の登場以来どのように進化してきたかについて、システムレベルで概説することを目的としています。&lt;/p&gt;&#10;&lt;p&gt;また、この重要な疑問にも答えていきたいと思います。GPUがあるのに、なぜTPUが必要なのでしょうか？GPUにはないどのような利点があるのでしょうか？ニューロモルフィックICと比較するとどうでしょうか？そして、TPUやGPUに代わるアーキテクチャは存在するのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/tensor-processors/tpu-evolution.webp" alt="Tensor Processing Unitの進化の推移" /&gt; (出典: &lt;a href="https://cloud.google.com/transform/ai-specialized-chips-tpu-history-gen-ai" class="external-link" target="_blank" rel="noopener"&gt;Google Cloud&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="tpuが存在する理由そしてそれが解決する問題とは"&gt;&#10; TPUが存在する理由、そしてそれが解決する問題とは&#10; &lt;a class="heading-link" href="#tpu%e3%81%8c%e5%ad%98%e5%9c%a8%e3%81%99%e3%82%8b%e7%90%86%e7%94%b1%e3%81%9d%e3%81%97%e3%81%a6%e3%81%9d%e3%82%8c%e3%81%8c%e8%a7%a3%e6%b1%ba%e3%81%99%e3%82%8b%e5%95%8f%e9%a1%8c%e3%81%a8%e3%81%af"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;TPUはGPUと同じ目標を共有しています。それは、大規模な並列処理を可能にすることで、ムーアの法則の減速によって生じた制限を克服することです。一般的な計算を処理するために使用できる従来のCPUとは異なり、マルチコアの概念によってある程度の並列処理が可能になっています（&lt;a href="youtube.com/watch?si=C2JVSw49rUYMWXcE&amp;amp;v=7p8ZeSbblec&amp;amp;feature=youtu.be&amp;amp;themeRefresh=1" &gt;デナードのスケーリング法則&lt;/a&gt;のおかげです）。TPUとGPUは、単純で特定のタスクを処理するように設計された専用ハードウェアですが、どのCPUよりもはるかに効率的な方法で処理できます。&lt;/p&gt;&#10;&lt;p&gt;大まかに言えば、汎用CPUやGPUよりもはるかに優れた性能と効率性を実現するには、「汎用性を犠牲にして性能を高める」必要があると言えるでしょう。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/tensor-processors/systolic-array.webp#right" alt="Google Systolic Array" style="width: 100%; max-width: 480px;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;TPUは、ニューラルネットワークが使用する行列乗算やテンソル演算といった、負荷の高い線形代数処理のために根本的に設計されています。&lt;/p&gt;&#10;&lt;p&gt;TPUの中核を成すのはシストリックアレイと呼ばれるもので、並列計算を実行できる処理要素のマトリックス（通常は_PE_と呼ばれ、右の図では_MAC_と表記されている）である。&lt;/p&gt;&#10;&lt;p&gt;TPUの場合、この処理ユニット（MAC）は、活性化値（埋め込み）とニューラルネットワークの重みを乗算して累積する単純な8ビット乗算器です。この演算を大規模並列処理で実行することによってのみ、TPUはCPUよりもはるかに高いスループットを実現できます。GPUも同様です。しかし、まずはTPUの進化の歴史を見ていきましょう。&lt;/p&gt;&#10;&lt;h1 id="tpuの進化の推移"&gt;&#10; TPUの進化の推移&#10; &lt;a class="heading-link" href="#tpu%e3%81%ae%e9%80%b2%e5%8c%96%e3%81%ae%e6%8e%a8%e7%a7%bb"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;h2 id="tpuv1-tpuの第一世代"&gt;&#10; TPUv1: TPUの第一世代&#10; &lt;a class="heading-link" href="#tpuv1-tpu%e3%81%ae%e7%ac%ac%e4%b8%80%e4%b8%96%e4%bb%a3"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;TPUv1はわずか15ヶ月で開発され、主な目標はニューラルネットワークの推論性能の向上（学習性能ではなく、推論性能のみ）でした。そのため、Googleは行列乗算器を必要とし、高速化だけでなく消費電力の削減にも制約がありました。消費電力削減の鍵は、メモリ局所性の向上、つまり外部メモリとTPUメモリ間の不要なデータ移動の削減でした。これにより、制御単位あたりの演算強度を高め、TPUがデータを待つアイドル時間を短縮することが可能になります。&lt;/p&gt;&#10;&lt;p&gt;ハードウェアの観点から見ると、TPU v1の設計はシンプルでありながら、洗練された効果を発揮していた。&lt;/p&gt;&#10;&lt;p&gt;標準的なPCIeカードに搭載されたシングルスレッドのコプロセッサ。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;マルチレベルキャッシュ、マルチスレッド、分岐予測は利用できません。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;MXU（行列乗算ユニット）による8ビット整数に対する高速な決定論的演算。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;シストリックアレイは256 * 256 * MXUで構成されます&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;複雑な処理はソフトウェアスケジューラに移管され、その主な役割は2つある。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;MXUがアイドル状態にならないように操作スケジュールを組むことで、パイプを常に稼働状態に保つ。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;メモリアクセスの遅延を隠蔽する手段として、メモリをダブルバッファリングする。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/tensor-processors/tpu-v1-v2-v3.webp" alt="Google Tensor Processing Unit (TPU) の進化、V1 から V3 まで" /&gt;&lt;/p&gt;&#10;&lt;h2 id="tpuv2とv3メモリとインターコネクトの改善"&gt;&#10; TPUv2とv3：メモリとインターコネクトの改善&#10; &lt;a class="heading-link" href="#tpuv2%e3%81%a8v3%e3%83%a1%e3%83%a2%e3%83%aa%e3%81%a8%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%82%b3%e3%83%8d%e3%82%af%e3%83%88%e3%81%ae%e6%94%b9%e5%96%84"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;v2とv3の重要な概念は、バックプロパゲーション、より高い精度、そしてより多くの分散型で相互接続されたTPUを必要とする次世代モデルのトレーニングです。&lt;/p&gt;&#10;&lt;p&gt;ハードウェアコア処理の観点から見ると、彼らは実に多くの優れた概念を導入した。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;デュアルコアチップ、例えば1つの__TPUv2__は2つのTPUで構成されています&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;各TPUは、__128*128 MXU__で構成される4倍の規模のシストリックアレイを備えていました。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;標準のIEEE 754 FP16浮動小数点フォーマットの拡張版であるBrain浮動小数点フォーマット（&lt;strong&gt;BF16&lt;/strong&gt;）を使用して、浮動小数点値を処理する機能。&lt;/p&gt;</description></item><item><title>Python AST 書き換え: レベルを下げずにコンパイルする</title><link>https://qsysarch.com/ja/posts/python-ast-rewriting/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/python-ast-rewriting/</guid><description>&lt;p&gt;Cuda-Qコンパイラの素晴らしい世界に深く踏み込む前に、AST書き換えの技術について簡単なメモを書いておく価値があると思いました。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/python-ast-rewriting/chatgpt-ast.webp#right" alt="抽象構文木" style="width: 100%; max-width: 300px;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;AST書き換えとコンパイルの違いは何だろうか？と疑問に思う人もいるかもしれない。簡単に言えば、すべてのコンパイルにはAST書き換えが含まれるが、すべてのAST書き換えがコンパイルとみなされるわけではない。&lt;/p&gt;&#10;&lt;p&gt;また、コンパイルはコードをある言語から別の言語に「変換」するプロセスであるのに対し、AST書き換えは通常、同じ言語内で行われます。&lt;/p&gt;&#10;&lt;h1 id="python-抽象構文木-ast-api"&gt;&#10; Python 抽象構文木 (AST) API&#10; &lt;a class="heading-link" href="#python-%e6%8a%bd%e8%b1%a1%e6%a7%8b%e6%96%87%e6%9c%a8-ast-api"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;Pythonには、ASTを扱うための&lt;a href="https://docs.python.org/3/library/ast.html" class="external-link" target="_blank" rel="noopener"&gt;標準ライブラリ&lt;/a&gt;が用意されています。PythonのASTには、大きく分けて4つのカテゴリのノードがあります。&lt;/p&gt;&#10;&lt;h2 id="リテラルまたは定数"&gt;&#10; リテラルまたは定数&#10; &lt;a class="heading-link" href="#%e3%83%aa%e3%83%86%e3%83%a9%e3%83%ab%e3%81%be%e3%81%9f%e3%81%af%e5%ae%9a%e6%95%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例えば、&lt;code&gt;10&lt;/code&gt;、&lt;code&gt;&amp;quot;hello&amp;quot;&lt;/code&gt;、&lt;code&gt;True&lt;/code&gt;など。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Python"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="変数"&gt;&#10; 変数&#10; &lt;a class="heading-link" href="#%e5%a4%89%e6%95%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例えば、&lt;code&gt;x&lt;/code&gt;、&lt;code&gt;y&lt;/code&gt;、&lt;code&gt;z&lt;/code&gt;などです。変数は、読み取り（ロード）モードまたは書き込み（ストア）モードのいずれかでアクセスできます。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Python"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Store&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="式"&gt;&#10; 式&#10; &lt;a class="heading-link" href="#%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例えば、&lt;code&gt;1 + 2&lt;/code&gt;、&lt;code&gt;x + 2&lt;/code&gt;、&lt;code&gt;x &amp;gt; y&lt;/code&gt;などです。式は、値を生成するASTノードです。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Python"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BinOp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BinOp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt;&lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Compare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt;&lt;span class="n"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Gt&lt;/span&gt;&lt;span class="p"&gt;()],&lt;/span&gt;&lt;span class="n"&gt;comparators&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;())])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="ステートメント"&gt;&#10; ステートメント&#10; &lt;a class="heading-link" href="#%e3%82%b9%e3%83%86%e3%83%bc%e3%83%88%e3%83%a1%e3%83%b3%e3%83%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例えば、&lt;code&gt;if&lt;/code&gt;、&lt;code&gt;for&lt;/code&gt;、&lt;code&gt;while&lt;/code&gt;、&lt;code&gt;return&lt;/code&gt;、&lt;code&gt;break&lt;/code&gt;、&lt;code&gt;continue&lt;/code&gt;などです。ステートメントは、アクションを実行するASTノードであり、Pythonコードではトップレベルまたはブロックレベルの構造として現れます。&lt;/p&gt;</description></item><item><title>複雑性の整理：構造設計を重視し、配管工事は少なくする</title><link>https://qsysarch.com/ja/posts/organizing-complexity/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/organizing-complexity/</guid><description>&lt;p&gt;このメモはl&amp;rsquo;&lt;a href="https://longterme.org/2025/11/gagner-50-milliards-en-urbanisant-la-complexite-administrative.html" class="external-link" target="_blank" rel="noopener"&gt;Observatoire du Long Terme&lt;/a&gt;からの転記であり、スケールアップにおける建築家の役割についての個人的な考察がそれに続きます。&lt;/p&gt;&#10;&lt;h1 id="マンハッタンの都市計画から学ぶ"&gt;&#10; マンハッタンの都市計画から学ぶ&#10; &lt;a class="heading-link" href="#%e3%83%9e%e3%83%b3%e3%83%8f%e3%83%83%e3%82%bf%e3%83%b3%e3%81%ae%e9%83%bd%e5%b8%82%e8%a8%88%e7%94%bb%e3%81%8b%e3%82%89%e5%ad%a6%e3%81%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;マンハッタン南部の狭く不規則な通りは、予測不可能な名前とあらゆる角度で交差する交差点があり、幅が広く直角に交差する碁盤目状の通り（1番街から220番街まで）と大通り（1番街から12番街まで）が並ぶニューヨークの他の地域とは著しく対照的である。&lt;/p&gt;&#10;&lt;p&gt;その理由は歴史的なものだ。17世紀初頭、ニューヨークがオランダの交易拠点として機能し始めた頃は、都市計画など存在しなかった。街路は住民の通行路に沿って作られたり、必要に応じて追加されたりして、包括的な構想はなかった。そのため、ニューヨークへの移動は（特に外国人観光客にとっては）困難であり、公共事業の計画も難しく、都市の成長を組織的に管理することも困難だった。&lt;/p&gt;&#10;&lt;p&gt;マンハッタン南部は（差し迫ったニーズに対応する）配管工によって整備されたのに対し、ニューヨークのその他の地域は（交通ニーズに関する長期的なビジョンと、シンプルさと全体的な効率性への配慮に基づいて）建築家によって設計された。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/manhatan-map.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;h1 id="デジタルシステム"&gt;&#10; デジタルシステム&#10; &lt;a class="heading-link" href="#%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;管理システムにも同じことが言えます。一部のシステムは、追加のアーキテクチャ設計の手間を犠牲にして、ユーザーの時間を最適化するように設計されています。一方、他のシステムは、配管工が次から次へと漏水箇所を修理するように、形式的な手続きや一貫性のない文書を積み重ねることで、規則作成者の労力を最小限に抑えています。&lt;/p&gt;&#10;&lt;p&gt;シンガポールは、公共政策をユーザーの効率を最大化するように設計・管理することを目的とした「エンジニアリング・アプローチ」を採用することで、最初のカテゴリーにおいて圧倒的な優位性を誇っています。すべての新規規制は十分なメリットを実証する必要があり、既存の規制は最適化と不要になった場合の廃止を目的とした定期的な効率性レビューを受けています。機能的な「アーキテクチャ規則」が課せられ、ユーザーにとっての文書や手続きの効率を「最適化」しています。これには、共通データ標準、事前入力済みフォームの広範な使用（標準データに基づく）、共通ソフトウェアコンポーネントの必須使用（例えば、支払いやデータ収集用）などが含まれます。&lt;/p&gt;&#10;&lt;p&gt;デジタル化を担当する機関は、チーフアーキテクトとして重要な役割を果たし、各省庁の標準実装担当のファンクショナルアーキテクトに頼っています。デジタル技術は、プロセスの簡素化や調和化にしばしば役立ちます。手順をデジタル化する際に、これらの手順、あるいは手順に必要な情報や文書の過剰な多様性によるコストが明らかになります。デジタル化以前は、この複雑さはユーザーが負担していました。デジタル化によって、この多様性によるコストが明らかになり、部門間で異なるプロセスを調和させることによるメリットも明らかになります。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/ai-modes.webp" alt="Agentic Design Patterns" /&gt; (画像クレジット: &lt;a href="https://link.springer.com/book/10.1007/978-3-032-01402-3" class="external-link" target="_blank" rel="noopener"&gt;Agentic Design Patterns&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="ノーモスコープ"&gt;&#10; ノーモスコープ&#10; &lt;a class="heading-link" href="#%e3%83%8e%e3%83%bc%e3%83%a2%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%97"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;フランスでは、企業や利用者は、行政手続きの複雑さによる「時間的負担」がヨーロッパで最も高い部類に入り、長期展望研究所の推計では、その負担はGDPの6ポイント（約1,700億ユーロ）に相当する。過去の簡素化の取り組みは、見直し（通常は新たな条文によって回避される）や法典の書き換え（通常は後にさらに複雑化する形で修正される）など、単発的な試みにとどまることが多かった。&lt;/p&gt;&#10;&lt;p&gt;このような取り組みの規模を拡大し、長期的に定着させるには、2つの方法がある。1つ目は、シンガポールが行ったように、ソフトウェア/ITの都市化に触発されたアーキテクチャ原則と、（管理中心のアプローチではなく）ユーザー中心のアプローチを導入することで、行政生産を再構築することである。&lt;/p&gt;&#10;&lt;p&gt;2つ目は、「時間税」を評価し、例えば500億ユーロの削減といった目標を設定することです。まずは限られた手段から始めることができます。例えば、上位100の主要な手続きにかかる時間をサンプリングしてみるのも良いでしょう。「ノーモスコープ」という共同ツールを使えば、利用者が直面する手続き上の問題点を共有することも可能です。フランスの家計はかつてないほど逼迫しているため、生活の質の向上に貢献しない負担から解放する必要があります。&lt;/p&gt;&#10;&lt;p&gt;管理上の複雑さに関して言えば、それは「より多くの設計要素が必要で、より少ない配管工事が必要だ」ということを意味する。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/normoscope.webp" alt="エージェントデザインパターン" /&gt;&lt;/p&gt;&#10;&lt;h1 id="余談スケールアップにおける複雑性の整理"&gt;&#10; 余談：スケールアップにおける複雑性の整理&#10; &lt;a class="heading-link" href="#%e4%bd%99%e8%ab%87%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97%e3%81%ab%e3%81%8a%e3%81%91%e3%82%8b%e8%a4%87%e9%9b%91%e6%80%a7%e3%81%ae%e6%95%b4%e7%90%86"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;なぜ一部のスタートアップ企業は成長して成功を収める一方で、他の企業は苦戦するのか、私はしばしば疑問に思ってきました。その答えは、たいていの場合、適材適所の人材配置にあります。それを実現するためには、アーキテクトが実際にどのような役割を担うべきかを理解することが重要です。&lt;/p&gt;&#10;&lt;h2 id="スープキッチンそしてメニュー"&gt;&#10; スープ、キッチン、そしてメニュー&#10; &lt;a class="heading-link" href="#%e3%82%b9%e3%83%bc%e3%83%97%e3%82%ad%e3%83%83%e3%83%81%e3%83%b3%e3%81%9d%e3%81%97%e3%81%a6%e3%83%a1%e3%83%8b%e3%83%a5%e3%83%bc"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;スタートアップを、スープを提供するレストランに例えて考えてみましょう。最初のスープが大ヒットし、事業の成長を後押ししました。レストランが拡大するにつれ、料理人が増え、レシピも増え、物事はより複雑になっていきました。新しい料理人とレシピが増えるたびに、厨房の作業は遅くなっていきました。この問題を解決するため、スタートアップの創業者たちは、物事を軌道に乗せるためにプロジェクト管理オフィス（PMO）を設立することにしました。&lt;/p&gt;&#10;&lt;p&gt;PMOチームはすぐに、重要な何かが欠けていることに気づきました。それは、キッチンの運営方法に関する明確な計画です。彼らは、各調理担当者に具体的な責任を与え、詳細なタスクリストを作成し、見積もった作業量に基づいてマスタープランを作成することで、この問題を解決しようと試みました。しかし、どれもうまくいきませんでした。PMOは、その理由が分かりませんでした。すべて文書化されているのに、なぜ機能しないのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;問題は、その本にはスープの作り方は書いてあったものの、スープの中身が何であるべきかは書かれていなかったことだった。PMOは、もはや単に1種類のスープを作っているのではなく、製品開発者（PM）が作成したメニューに応じて、さまざまな料理を作るために使えるスープストックを作っているということに気づいていなかった。PMOチームは、本当の問題を解決する代わりに、計画なしに道路を増設するように、ただ単にプロセスを「配管」しているだけだった。&lt;/p&gt;&#10;&lt;p&gt;PMOが本当に必要としていたのは、北マンハッタンの道路のように、すべてがスムーズに運用され、時間とともに拡張できる、適切に設計されたシステムだった。PMOの過ちは、複雑さを整理するための計画の設計図を作成するアーキテクトが必要であることを認識していなかったことだった。&lt;/p&gt;&#10;&lt;p&gt;多くのスケールアップ企業では、エンジニアリングディレクター（https://www.hatica.io/blog/metrics-and-kpis-for-director-of-engineering/）が1人しかおらず、そのディレクターはアーキテクチャの設計だけでなく、チームの成長マインドセット（https://online.hbs.edu/blog/post/growth-mindset-vs-fixed-mindset）の確保にも責任を負っています。目標は、効率性を押し付けるのではなく、チームが効率性を主体的に担えるようにすることです。これらのステップが完了して初めて、スケールアップの準備が整うのです。&lt;/p&gt;&#10;&lt;p&gt;プロジェクト主導型組織&lt;/p&gt;&#10;&lt;p&gt;最近、HBRの記事「プロジェクト主導型組織」(&lt;a href="https://hbr.org/2026/01/the-project-driven-organization" class="external-link" target="_blank" rel="noopener"&gt;https://hbr.org/2026/01/the-project-driven-organization&lt;/a&gt;)を偶然見つけました。組織設計、リーダーシップ、価値創造という3つの要素を中心とした構造的なアプローチは素晴らしいと思います。しかし、一つ欠けている点があります。それは、アイデアを収益性の高い製品に変えるための戦略です。&lt;/p&gt;&#10;&lt;p&gt;下の図は、元のコンセプトを再構成したもので、アイデアを収益性の高い製品に変えるための戦略とも言える「ロードプラン」という要素を追加しました。また、異なるチーム間の橋渡し役となる「エンジニアリングチーム」も追加しました。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/project-driven-organizations.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;この図では、建築家が道路計画に意見を出しているのでしょうか？それとも、道路計画が建築家への意見として与えられているのでしょうか？あるいは、建築家がプロジェクトチームに意見を出しているのでしょうか？文脈によっては、どれも正解です。重要なのは、道路を建設するのはエンジニアリングチームであり、彼らはそれに従うための計画、つまり「具体化」するための設計図を必要としているということです。&lt;/p&gt;&#10;&lt;p&gt;プロジェクトを利益に変える&lt;/p&gt;&#10;&lt;p&gt;下の図は、キッチンの設計と整理の良し悪しを示しているのでしょうか？それとも、PMOがどれだけ効率的に運営し、利益につなげられるかを示しているのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/project-list.webp" alt="" /&gt; (画像提供: &lt;a href="https://www.theprojectgroup.com/blog/en/pmo-setup/" class="external-link" target="_blank" rel="noopener"&gt;&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="結論"&gt;&#10; 結論&#10; &lt;a class="heading-link" href="#%e7%b5%90%e8%ab%96"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;物事が複雑になりすぎて手に負えなくなったときは、次の2つのシンプルなルールで複雑さを整理することを考えてみてください。「もっと構造を設計し、配管は少なくする」！&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;hr&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="参考文献"&gt;&#10; 参考文献:&#10; &lt;a class="heading-link" href="#%e5%8f%82%e8%80%83%e6%96%87%e7%8c%ae"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://longterme.org/" class="external-link" target="_blank" rel="noopener"&gt;長期天文台&lt;/a&gt;&lt;/p&gt;</description></item><item><title>ニューロモルフィックIC：高レベルシステムアーキテクチャ</title><link>https://qsysarch.com/ja/posts/neuromorphic-ics-system-architecture/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/neuromorphic-ics-system-architecture/</guid><description>&lt;p&gt;最近、&lt;a href="https://neuralink.com/" class="external-link" target="_blank" rel="noopener"&gt;Neuralink&lt;/a&gt; について話していたときに、ニューロモルフィック処理ユニット、または NPU について耳にしました。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/neuromorphic-ics/innatera-pulsar-ic.png#right" alt="Innatera Pulsar IC" style="width: 100%; max-width: 300px;"/&gt; これらの NPU は量子コンピューティングとは何の関係もありませんが、新しい処理アーキテクチャからインスピレーションを得るのに少し時間を費やすのは面白いと思いました。実際、この分野の主要な IC ベンダーの 1 つは、&lt;a href="https://innatera.com/pulsar" class="external-link" target="_blank" rel="noopener"&gt;Innatera&lt;/a&gt; というオランダの会社です。Innatera の最新の IC、&lt;a href="https://innatera.com/pulsar" class="external-link" target="_blank" rel="noopener"&gt;Pulsar&lt;/a&gt; は、低消費電力のスパイクニューラルネットワークに基づいています (右の画像を参照)。&lt;/p&gt;&#10;&lt;p&gt;このメモでは、ニューロモルフィックICのアーキテクチャ、スパイクニューラルネットワークの設計、そしてこれらのデバイスをプログラムするために公開されているソフトウェアスタックについて、可能な限り多くの情報をリバースエンジニアリングして明らかにしようと思います。&lt;/p&gt;&#10;&lt;h1 id="ハードウェアアーキテクチャ"&gt;&#10; ハードウェアアーキテクチャ&#10; &lt;a class="heading-link" href="#%e3%83%8f%e3%83%bc%e3%83%89%e3%82%a6%e3%82%a7%e3%82%a2%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;これは、Pulsar IC のアーキテクチャ図を再描画する試みです (元の &lt;a href="https://www.embedded.com/innatera-pulsar-brings-brain-intelligence-to-the-edge/" class="external-link" target="_blank" rel="noopener"&gt;画像&lt;/a&gt;、&lt;a href="https://innatera.com/storage/app/media/Resources/Pulsar.pdf" class="external-link" target="_blank" rel="noopener"&gt;ホワイトペーパー&lt;/a&gt; からの知見を補足しています)。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/neuromorphic-ics/architecture-of-Innatera-Pulsar-neuromorphic-microcontrolle.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;RISC-V CPU を使用するというアイデアは気に入っています。これは、Innatera のチームが初日から正しいアーキテクチャ決定を下している明確な証拠です。Innatera の以前の &lt;a href="https://innatera.com/products/spiking-neural-processor-t1" class="external-link" target="_blank" rel="noopener"&gt;T1&lt;/a&gt; チップの図の 1 つでは、RISC-V CPU に &lt;a href="https://five-embeddev.com/riscv-user-isa-manual/Priv-v1.12/f.html" class="external-link" target="_blank" rel="noopener"&gt;F 拡張機能&lt;/a&gt; (浮動小数点演算サポート) がバンドルされています。&lt;/p&gt;&#10;&lt;p&gt;ICには多くの標準インターフェース（SPI、I2Cなど）と、スリープモードまたは省電力モードに入るときにICの一部をオン/オフする電源管理ユニット（PMU）が統合されています。残念ながら、実際の消費電力に関するデータは、_「1mW未満」_というボールパックの情報以外には見つかりませんでした。1.8Vの電源電圧を想定すると、これは500µA未満になります（&lt;em&gt;I=W/V&lt;/em&gt;）。また、「サイクルあたり」の電力指標が関係するかどうかも疑問です。この場合、100Hzの周波数（シナプス更新周期）を想定すると、平均してシナプス更新あたり5µAになります。&lt;/p&gt;&#10;&lt;p&gt;Pulsarの最新の図には、CNNとFFTという2つのアクセラレータが示されています。これらは、GEMM（汎用行列乗算器、ニューラルネットワーク計算の鍵となるもの）とSFU（特殊機能ユニット、FFT計算を高速化するために使用されるもの）とより広義に表現できると思います。詳細については、GPUアーキテクチャに関する&lt;a href="https://qsysarch.com/posts/cuda-compiler-architecture/" &gt;post&lt;/a&gt;を参照してください。また、RISC-Vのコプロセッサとして開発されたと思われるスパイクエンコーダ/デコーダもありますが、それ以上の詳細は見つかりませんでした。&lt;/p&gt;&#10;&lt;h1 id="スパイクニューラルネットワークアーキテクチャ"&gt;&#10; スパイクニューラルネットワークアーキテクチャ&#10; &lt;a class="heading-link" href="#%e3%82%b9%e3%83%91%e3%82%a4%e3%82%af%e3%83%8b%e3%83%a5%e3%83%bc%e3%83%a9%e3%83%ab%e3%83%8d%e3%83%83%e3%83%88%e3%83%af%e3%83%bc%e3%82%af%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;残る疑問は、スパイクニューラルネットワーク、または&lt;a href="https://en.wikipedia.org/wiki/Spiking_neural_network" class="external-link" target="_blank" rel="noopener"&gt;SNN&lt;/a&gt;についてです。これはどのように機能するのでしょうか？&lt;/p&gt;&#10;&lt;h2 id="メタファー"&gt;&#10; メタファー&#10; &lt;a class="heading-link" href="#%e3%83%a1%e3%82%bf%e3%83%95%e3%82%a1%e3%83%bc"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;em&gt;私は&lt;a href="https://gemini.google.com/" class="external-link" target="_blank" rel="noopener"&gt;Gemini&lt;/a&gt;に、スパイクニューラルネットワークについて8歳児にもわかるような比喩表現を考えてもらうよう頼みました。以下が私が得た話です。&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;脳を巨大な郵便局だと想像してみてください。「ニューロン」は、メモを運ぶ小さなメッセンジャーのようなものです。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;メッセンジャーとメモ:&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;通常のコンピュータプログラムでは、すべてのメッセンジャーが常に数字をやり取りしています。一方、スパイクニューラルネットワークでは、メッセンジャーは非常に静かでエネルギー効率が良く、何か重要なこと（例えば、小さな電気的なスパイク）が発生したときにのみ、短い「やあ！」というメッセージを送信します。&lt;/p&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;スパークメーター：&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;各メッセンジャーには、他のメッセンジャーから「ヘイ！」という声を聞くと溜まるメーターがあります。メーターが十分に溜まると（閾値に達すると）、そのメッセンジャーも興奮して「ヘイ！」と叫びます。叫んだ直後、メーターはリセットされるため、すぐに再び叫ぶことはできません（不応期）。&lt;/p&gt;&#10;&lt;p&gt;3．タイミングがすべて：&lt;/p&gt;&#10;&lt;p&gt;伝令が立て続けに「ヘイ！」という声を聞いたら、それは非常に重要なメッセージ（例えば「火事だ！」）であることを意味します。もし伝令が他の誰よりも少し早く「ヘイ！」と叫んだら、それは何か特別なことが起こっているという秘密の合図かもしれません（例えば「虎が来るぞ！」）。ですから、伝令は時間感覚を磨く必要があるのです。&lt;/p&gt;&#10;&lt;p&gt;4．学ぶことが鍵となる：&lt;/p&gt;&#10;&lt;p&gt;メッセンジャーはあなたと同じように学習します。例えば、メッセンジャーAが「ヘイ！」と叫んだ直後にメッセンジャーBが「ヘイ！」と叫んだ場合（何かが二人を興奮させたため）、二人の友情はより強固になり、メッセンジャーAのメッセージは次回メッセンジャーBがメーターをより早く満たすのに役立ちます。&lt;/p&gt;</description></item><item><title>GPUコンパイラアーキテクチャ：CUDA、Triton、DeepSeek</title><link>https://qsysarch.com/ja/posts/cuda-compiler-architecture/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/cuda-compiler-architecture/</guid><description>&lt;p&gt;NVIDIA GPU 向けにコンパイルする場合、CUDA はしばしばリファレンスコンパイルフレームワークとみなされます。しかし、コンパイラは実際にはどのように動作しているのでしょうか？GPU 用の「実行可能ファイル」を作成する際に、コンパイラはどのような命令セットアーキテクチャ (ISA) を生成する必要があるのでしょうか？また、コンパイラは実際にはどのように動作しているのでしょうか？CPU から起動して GPU 上で実行できるコードを生成するために、どのようなアーキテクチャが使用されているのでしょうか？ &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/cuda-q/cuda-logo.webp#right" alt="Cuda Q" style="width: 100%; max-width: 300px;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;この日曜朝のメモは、NVIDIA GPUコンパイラアーキテクチャの概要を説明することを目的としています。GPU命令セット、CUDAフレームワークにおけるNVCCコンパイラ、そして最後に、GPU命令セットをターゲットとする代替アーキテクチャについて解説します。&lt;/p&gt;&#10;&lt;h1 id="低レベルgpuアーキテクチャ"&gt;&#10; 低レベルGPUアーキテクチャ&#10; &lt;a class="heading-link" href="#%e4%bd%8e%e3%83%ac%e3%83%99%e3%83%abgpu%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;GPUのようなデバイスをターゲットにする場合、それをプログラムするための命令セットが必要です。NVIDIAの場合、このデバイスはストリーミングマルチプロセッサ（SM）であり、右の図に示されています。この図で興味深いのは、IN32加算器、特殊機能ユニット、GEMM+++テンソルコアなど、多くの並列ユニットが存在し、コンパイラはそれらが最も効率的な方法（アイドル時間を最小限に抑えること）で使用される（パイプライン処理される）ようにする必要があることです。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/cuda-q/streaming-multiprocessor.webp#right-500px" alt="ストリーミングマルチプロセッサアーキテクチャ" /&gt;&lt;/p&gt;&#10;&lt;p&gt;使用されている用語は以下のとおりです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ISA（命令セットアーキテクチャ）：命令の集合。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;マシンコード：命令をコンパクトかつバイナリ形式で表現したもの&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;アセンブリ言語：命令の簡潔さに欠けるテキスト表現&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;NVIDIA GPUには2種類のISA（命令セットアーキテクチャ）があります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://docs.nvidia.com/cuda/cuda-binary-utilities/index.html#instruction-set-ref" class="external-link" target="_blank" rel="noopener"&gt;PTX&lt;/a&gt;: 並列スレッド実行 - CUDAカーネルをコンパイルする際に使用される中間アセンブリ。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://modal.com/gpu-glossary/device-software/streaming-assembler" class="external-link" target="_blank" rel="noopener"&gt;SASS&lt;/a&gt;: ストリーミングアセンブリ。各GPUアーキテクチャに固有の低レベルアセンブリ。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;このカーネルをコンパイルしたいとしましょう。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="C&amp;#43;&amp;#43;"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-c++" data-lang="c++"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;__global__&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;normalizeVector&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;blockIdx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;blockDim&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;threadIdx&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;vx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;vy&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;len2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;vx&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;vx&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;vy&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;vy&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;invLen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rsqrtf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;len2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Use SFU fast reciprocal square root&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;z&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;invLen&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Normalized length&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;ここでの魔法は、&lt;code&gt;rsqrtf&lt;/code&gt; を SFU パイプラインにディスパッチすることです。これはどのように機能するのでしょうか？ 行 &lt;em&gt;float invLen = rsqrtf(len2);&lt;/em&gt; は、&lt;code&gt;rsqrt.approx.ftz.f32&lt;/code&gt; として PTX に変換され、次に &lt;code&gt;MUFU.RSQ&lt;/code&gt; として SASS に変換されます。これは、[godbolt](&lt;a href="https://godbolt.org/#g:!%28%28g:!%28%28g:!%28%28h:codeEditor,i:%28filename:%271%27,fontScale:14,fontUsePx:%270%27,j:1,lang:cuda,selection:%28endColumn:2,endLineNumber:15,positionColumn:2,positionLineNumber:15,selectionStartColumn:2,selectionStartL" class="external-link" target="_blank" rel="noopener"&gt;https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:cuda,selection:(endColumn:2,endLineNumber:15,positionColumn:2,positionLineNumber:15,selectionStartColumn:2,selectionStartL&lt;/a&gt; ineNumber:15,startColumn:2,startLineNumber:15),source:&amp;rsquo;&lt;strong&gt;global&lt;/strong&gt;+void+normalizeVector(float*+x,+float*+y,+float*+z,+int+n)%0A%7B%0A++++int+i+%3D+blockIdx.x+&lt;em&gt;+blockDim.x+%2B+threadIdx.x%3B%0A%0A++++float+vx+%3D+x%5Bi%5D%3B%0A++++float +vy+%3D+y%5Bi%5D%3B%0A++++float+len2+%3D+vx&lt;/em&gt;vx+%2B+vy&lt;em&gt;vy%3B%0A%0A++++//+Use+SFU+fast+reciprocal+square+root%0A++++flo at+invLen+%3D+rsqrtf(len2)%3B+%0A%0A++++//+正規化+the+vector%0A++++x%5Bi%5D+%3D+vx+&lt;/em&gt;+invLen%3B%0A++++y%5Bi%5D+%3D+ vy+*+invLen%3B%0A%7D&amp;rsquo;),l:&amp;lsquo;5&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;lsquo;CUDA+C%2B%2B+source+%231&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),k:33.333333333333336,l:&amp;lsquo;4&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,s:0,t:&amp;lsquo;0&amp;rsquo;),(g:!((h:compiler,i:(compiler:nvcc130u2,filters:(b:&amp;lsquo;0&amp;rsquo;,binary:&amp;lsquo;1&amp;rsquo;,binaryObject:&amp;lsquo;1&amp;rsquo;,commentOnly:&amp;lsquo;0&amp;rsquo;,debugCalls:&amp;lsquo;1&amp;rsquo;, demangle:&amp;lsquo;0&amp;rsquo;,directives:&amp;lsquo;0&amp;rsquo;,execute:&amp;lsquo;1&amp;rsquo;,intel:&amp;lsquo;0&amp;rsquo;,libraryCode:&amp;lsquo;0&amp;rsquo;,trim:&amp;lsquo;1&amp;rsquo;,verboseDemangling:&amp;lsquo;0&amp;rsquo;),flagsViewOpen:&amp;lsquo;1&amp;rsquo;,fontScale:14,fontUsePx:&amp;lsquo;0&amp;rsquo;,j:1,lang:cuda,libs:!(),options:&amp;rsquo;-arch+sm_90+-use_fast_math+-O3&amp;rsquo;,overrides:!(),selection:(en dColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:&amp;lsquo;5&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;+NVCC+13.0.2+(Editor+%231)&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),k:33.333333333333336,l:&amp;lsquo;4&amp;rsquo; ,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,s:0,t:&amp;lsquo;0&amp;rsquo;),(g:!((h:device,i:(compilerName:&amp;lsquo;NVCC+13.0.2&amp;rsquo;,device:&amp;lsquo;SASS+(sm_90)&amp;rsquo;,editorid:1,fontScale:14,fontUsePx:&amp;lsquo;0&amp;rsquo;,j:1,selection:(endColumn:6,endLineNumber:21,positionColumn:1,positionLineNumber:1,selectionStartColumn:6,s electionStartLineNumber:21,startColumn:1,startLineNumber:1),treeid:0),l:&amp;lsquo;5&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;lsquo;Device+Viewer+NVCC+13.0.2+(Editor+%231,+Compiler+%231)&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),k:33.33333333333333,l:&amp;lsquo;4&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,s:0,t:&amp;lsquo;0&amp;rsquo;)),l:&amp;lsquo;2&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),version:4).&lt;/p&gt;</description></item><item><title>パルス整形：DRAGパルス</title><link>https://qsysarch.com/ja/posts/the-drag-pulse/</link><pubDate>Sat, 08 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/the-drag-pulse/</guid><description>&lt;p&gt;量子ビットの忠実度を向上させるという点において、間接的な疑問の一つは、単純なガウス分布のようなパルスよりも複雑なパルスを「整形」することでゲートの忠実度を高めることができるかどうか、ということである。そしてその答えは、「_DRAG パルスを見てみましょう」である。&lt;/p&gt;&#10;&lt;p&gt;DRAG Pulse への関心の本当の理由は、Google の &lt;a href="https://research.google/pubs/a-28nm-bulk-cmos-4-to-8ghz-2mw-cryogenic-pulse-modulator-for-scalable-quantum-computing/" class="external-link" target="_blank" rel="noopener"&gt;Cryo Pulse Modulator&lt;/a&gt; に関する &lt;a href="https://www.youtube.com/watch?v=VA2HEUmkrKo" class="external-link" target="_blank" rel="noopener"&gt;動画&lt;/a&gt; プレゼンテーションにおける &lt;a href="https://research.google/people/107147/" class="external-link" target="_blank" rel="noopener"&gt;Joseph Bardin&lt;/a&gt; のコメントです。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;[21:08] 私たちが気づいたのは、ドラッグのようなことをしようとしなければ、対称なエンベロープさえあればよいということです。レイズドコサインやガウス関数はどちらも対称です。そこで、プログラム可能な電流源のアレイを構築し、ウェディングケーキのような電流波形を作成するための適切な有効化関数を用意しました。そして、振幅などをプログラムできるようにしました。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;これがGoogleのアーキテクチャです。そして、それは実に巧妙です。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/waveform-generation-approach.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/block-diagram.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;しかし、そのようなアーキテクチャを適応させて抗力パルスを生成するには何が必要なのでしょうか？この疑問を理解するには、まず抗力パルスとは何かを理解する必要があります。&lt;/p&gt;&#10;&lt;h1 id="数理モデル"&gt;&#10; 数理モデル&#10; &lt;a class="heading-link" href="#%e6%95%b0%e7%90%86%e3%83%a2%e3%83%87%e3%83%ab"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;DRAG（Derivative Removal by Adiabatic Gate）パルスは、標準的なガウスパルスに、そのパルスの直交成分にスケーリングされた微分を加えることによって構成されます。これにより、ガウスエンベロープとガウス微分という2つの成分からなるパルスが生成され、超伝導量子ビットにおける高エネルギー状態への不要なリークを低減し、位相誤差を補正するのに役立ちます。&lt;/p&gt;&#10;&lt;p&gt;DRAGパルスの構成要素 標準ガウスパルス：&lt;/p&gt;&#10;&lt;p&gt;パルスの基底部は標準的なガウス包絡線であり、これは滑らかなベル型の曲線です。これはパルスの「同位相」成分 \(i(t)\) です。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ガウス微分: パルスに第 2 の成分が追加されます。これは標準ガウスパルスの微分であり、\(\beta \) と呼ばれる係数でスケーリングされます。これが「直交」\(q(t)\) 成分です。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;合計パルス: 最終的な DRAG パルスは、これら 2 つのコンポーネント \(v(t)\) の組み合わせです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;導関数は次の式で表されます。&lt;/p&gt;&#10;\[ DRAG(t) = v(t)=i(t)+q(t) = i(t)+ \beta \frac{d(i(t))}{dt} \]&lt;p&gt;特に凝ったことはしていませんが、ドラッグパルスには多くの種類があること、そして標準的なドラッグパルスがガウス型ドラッグパルスであっても、さらに強力な構成を実現することは可能であるという点に注意する必要があります。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/drag-pulse/the-many-drag-pulse-types.webp" alt="多くの抗力パルスタイプ" /&gt; 出典: &lt;a href="https://journals.aps.org/prxquantum/pdf/10.1103/PRXQuantum.5.030353" class="external-link" target="_blank" rel="noopener"&gt;APS&lt;/a&gt;&lt;/p&gt;&#10;&lt;h1 id="プログラムモデル"&gt;&#10; プログラムモデル&#10; &lt;a class="heading-link" href="#%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%a0%e3%83%a2%e3%83%87%e3%83%ab"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;DRAGパルスがどのように構築されるかを理解できたので、量子制御システムを用いた実装について見ていきましょう。今回は、&lt;a href="https://docs.qblox.com/en/main/products/qblox_scheduler/index.html" class="external-link" target="_blank" rel="noopener"&gt;Qblox Scheduler&lt;/a&gt;を検証します。これは高レベルのコンパイラとして機能し、ユーザーは量子ビットとパルスの観点から実験を定義できると同時に、低レベルの機器制御の複雑さを抽象化します。&lt;/p&gt;&#10;&lt;p&gt;問題のコードは&lt;a href="https://gitlab.com/quantify-os/quantify-scheduler/-/blob/main/quantify_scheduler/waveforms.py?ref_type=heads#L176" class="external-link" target="_blank" rel="noopener"&gt;gitlab&lt;/a&gt;で入手できます。以下のコードは、元のコードを簡略化したものです。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Python"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;drag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ndarray&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;G_amp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;D_amp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nr_sigma&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;phase&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ndarray&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;mu&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;sigma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;nr_sigma&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# In-phase envelope&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;gauss_env&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;G_amp&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;np&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.5&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;sigma&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Quadrature envelope&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;deriv_gauss_env&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;D_amp&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;mu&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;sigma&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;gauss_env&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# generate pulses&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;drag_wave&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;gauss_env&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;deriv_gauss_env&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Apply phase rotation&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;rot_drag_wave&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rotate_wave&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;drag_wave&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;phase&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;phase&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;rot_drag_wave&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;これは実際には非常に簡単で、オリジナルのコードは機能面でさらに強力です。詳細については、オンラインの&lt;a href="https://docs.qblox.com/en/main/autoapi/qblox_scheduler/waveforms/index.html#qblox_scheduler.waveforms.drag" class="external-link" target="_blank" rel="noopener"&gt;ドキュメント&lt;/a&gt;を参照してください。&lt;/p&gt;</description></item><item><title>NVQLink：NVIDIAのGPU-量子統合システムアーキテクチャ</title><link>https://qsysarch.com/ja/posts/nvqlink-system-architecture/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/nvqlink-system-architecture/</guid><description>&lt;p&gt;私は、&lt;a href="https://qblox.com/newsroom/qblox-accelerates-utility-scale-quantum-computing-with-nvidia" class="external-link" target="_blank" rel="noopener"&gt;Qblox&lt;/a&gt; のチームの一員になれたことを大変嬉しく思っています。このチームは、&lt;a href="https://www.nvidia.com/en-us/solutions/quantum-computing/nvqlink/" class="external-link" target="_blank" rel="noopener"&gt;Nvidia&lt;/a&gt; と積極的に協力し、&lt;a href="https://nvidianews.nvidia.com/news/nvidia-nvqlink-quantum-gpu-computing" class="external-link" target="_blank" rel="noopener"&gt;NVQLink&lt;/a&gt; 標準を推進しています。これは、GPU、CPU、および QPU (量子プロセッサ、Qblox が開発している最前線の量子コントローラを含む) 上で計算される異種システムを相互接続する方法です。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/nvqlink/nvqlink1.webp' style='width:50%;margin:0;padding:0;'&gt;&lt;img src='https://qsysarch.com/images/nvqlink/nvqlink2.webp' style='width:50%;margin:0;padding:0;'&gt;&lt;/p&gt;&#10;&lt;h1 id="nvqlinkの概要"&gt;&#10; NVQLinkの概要&#10; &lt;a class="heading-link" href="#nvqlink%e3%81%ae%e6%a6%82%e8%a6%81"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;NVQLinkは、GPUと量子プロセッサを接続するための単なる「ケーブル」ではなく、ネットワークからソフトウェアスタックまで、異種デバイスを相互接続できる包括的なフレームワークです。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/nvqlink/connect-quantum-processing-units-qpus-with-gpus.webp" alt="NVQLink 高レベルシステムアーキテクチャ" /&gt; 画像提供: &lt;a href="https://www.naddod.com/blog/nvidia-nvqlink-introduction-connecting-quantum-and-gpu-computing" class="external-link" target="_blank" rel="noopener"&gt;Nannod&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="パフォーマンス仕様"&gt;&#10; パフォーマンス仕様&#10; &lt;a class="heading-link" href="#%e3%83%91%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%b3%e3%82%b9%e4%bb%95%e6%a7%98"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;主要な「ハードウェア」仕様では、ネットワークおよびコンピューティングリソースの性能が重視されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ネットワークスループット：GPUからQPUまで最大400Gb/s。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ネットワーク遅延：往復遅延（FPGA → GPU → FPGA）が4.0マイクロ秒未満。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;GPUハードウェア：NVIDIA GB200 Grace Blackwellスーパーチップをベースに構築されたリアルタイムホストで、非常に高いTFLOPS性能を備えています。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="nvqlinkが必要な理由"&gt;&#10; NVQLinkが必要な理由&#10; &lt;a class="heading-link" href="#nvqlink%e3%81%8c%e5%bf%85%e8%a6%81%e3%81%aa%e7%90%86%e7%94%b1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;あなたは「なぜこれが重要なのか？」と疑問に思うかもしれません。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;量子ハードウェアと高速化されたGPUコンピューティングを緊密に統合するためのオープンスタンダードを作成します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ハイブリッドワークフローを可能にします：ニューラルネットワークのキャリブレーション、量子誤り訂正（QEC）など。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;これは、ソフトウェアとハードウェアを1つに統合したオープンなプラットフォームを提供し、&lt;a href="https://developer.nvidia.com/cuda-q" class="external-link" target="_blank" rel="noopener"&gt;CUDA-Q&lt;/a&gt;のおかげで、誰もが&lt;a href="https://qsysarch.com/posts/4-rust-to-the-rescue/" &gt;知識の海&lt;/a&gt;に溺れることなく量子コンピュータとやり取りできるようにします。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h1 id="nvqlink仕様アーキテクチャ設計"&gt;&#10; NVQLink仕様：アーキテクチャ設計&#10; &lt;a class="heading-link" href="#nvqlink%e4%bb%95%e6%a7%98%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3%e8%a8%ad%e8%a8%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;NVQLinkのホワイトペーパーがhttps://arxiv.org/abs/2510.25213から入手可能になったので、提案されているアーキテクチャの詳細を詳しく見ていきましょう。&lt;/p&gt;&#10;&lt;p&gt;システムアーキテクチャ&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/nvqlink/nvqlink-system-architecture-diagram.webp" alt="NVQlinkシステムアーキテクチャとコンポーネント" /&gt; (ホワイトペーパーに掲載されている元の&lt;a href="https://qsysarch.com/images/nvqlink/nvqlink-system-architecture.webp" &gt;画像&lt;/a&gt;を基に作成したシステム図)&lt;/p&gt;&#10;&lt;p&gt;予想通り、詳細はNannodによる概要と一致しています。コンポーネントの観点から見ると、NVQLinkアーキテクチャはリアルタイムホスト（&lt;code&gt;RTH&lt;/code&gt;）とQPU制御システム（&lt;code&gt;QSC&lt;/code&gt;）で構成されています。これら2つのコンポーネントは、低遅延でスケーラブルなリアルタイムインターコネクト（&lt;code&gt;RTI&lt;/code&gt;）で接続されています。RTHには、CPUやGPUといった従来のHPCコンピューティングリソースが搭載されています。QSCには、通常、QPUを制御するパルス処理ユニット（&lt;code&gt;PPU&lt;/code&gt;）が含まれています。&lt;/p&gt;&#10;&lt;p&gt;この図では、重要なキーワードである「fn」と「NI」を紹介します。NVQLinkのメンタルモデル（「プログラミングモデル」）では、CPU、GPU、PPU（またはその他の専用IC/FPGA）はそれぞれ「デバイス」と呼ばれ、NVQLinkはこれらのデバイスのいずれに対してもリモートプロシージャコール（「コールバック」または「fn」）を実行できるようにします。これは非常に強力なソリューションであり、NVQLinkは異種システムを繋ぐ接着剤として機能します。「fn」ランタイムの実際の実装は高度に最適化されており、マーシャリングも自動的に処理されます。これにより、数マイクロ秒のレイテンシを実現できます。「NI」はネットワークインターフェースの略で、すべての関係者が統一された相互接続システムを構築するために使用できる、小型でオプションのネットワークカード/インターフェース/ケーブルとして概念化されています。&lt;/p&gt;&#10;&lt;h2 id="時間領域"&gt;&#10; 時間領域&#10; &lt;a class="heading-link" href="#%e6%99%82%e9%96%93%e9%a0%98%e5%9f%9f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;NVQLinkでは、時間領域という非常に重要な概念も導入されています。これは、システムに関わるすべての「処理ユニット」が「同じクロック」に従うとは限らないため必要となります。&lt;/p&gt;&#10;&lt;p&gt;クロック、つまり時間ドメインには、速いものから遅いものまで4つのカテゴリがあります。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/nvqlink/time-domains-vertical.webp#right" alt="NVQLink処理時間ドメイン" style="width: 100%; max-width: 250px;"/&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;物理時間領域 (PTD): 通常は QPU クロック。&lt;/p&gt;</description></item><item><title>量子ビットアレイとしてのQRAM</title><link>https://qsysarch.com/ja/posts/quantum-memory/</link><pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/quantum-memory/</guid><description>&lt;div style='float:right;max-width:420px;padding-left:10px;padding-top:30px;font-size:12px;text-align:center;line-height:1.2;'&gt;&lt;img src='https://qsysarch.com/images/next-scale-level/what-is-a-qubit.webp'&gt;キュービットとは何か？（出典：&lt;a href='https://azure.microsoft.com/en-gb/resources/cloud-computing-dictionary/what-is-a-qubit'&gt;マイクロソフト&lt;/a&gt;）&lt;/div&gt;&#10;&lt;p&gt;量子コンピューティング業界はまだ黎明期にあり、5年から10年以内に実用的な成果を達成することが期待されている、というのが一般的な認識です。この日曜日の朝のメモは、量子コンピューティングマシンの将来的なアーキテクチャの可能性についてブレインストーミングを行ったものです。&lt;/p&gt;&#10;&lt;p&gt;読み進める前に、これから述べることは起こりうる未来の展望であって、何が起こるか、あるいは何が起こるべきかを予測するものではないことを念頭に置いてください。スティーブ・ジョブズが言ったように、&lt;/p&gt;&#10;&lt;p&gt;未来を見据えて点と点をつなぐことはできません。点と点をつなぐことができるのは、過去を振り返った時だけです。だから、点と点が将来何らかの形でつながると信じるしかないのです。直感、運命、人生、カルマ、何でもいいので、何かを信じなければなりません。この考え方は私を裏切ったことは一度もなく、私の人生に大きな変化をもたらしました。&lt;/p&gt;&#10;&lt;h1 id="バックトゥザフューチャー-エボリューションズ"&gt;&#10; バック・トゥ・ザ・フューチャー エボリューションズ&#10; &lt;a class="heading-link" href="#%e3%83%90%e3%83%83%e3%82%af%e3%83%88%e3%82%a5%e3%82%b6%e3%83%95%e3%83%a5%e3%83%bc%e3%83%81%e3%83%a3%e3%83%bc-%e3%82%a8%e3%83%9c%e3%83%aa%e3%83%a5%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%ba"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;70年代、大型でかさばるメインフレームが普及していた時代を考えると、今日のコンピューティングシステムの姿とすぐに結びつくことができます。例えば、1966年のIBM &lt;a href="https://en.wikipedia.org/wiki/IBM_System/360_Model_91" class="external-link" target="_blank" rel="noopener"&gt;360/91&lt;/a&gt;と、2025年にG-QuATに導入されたKeysight &lt;a href="https://www.keysight.com/nl/en/about/newsroom/news-releases/2025/0729-pr25-keysight-installs-worlds-largest-commercial-quantum-control-system-at-aists-leading-edge-g-quat-center.html" class="external-link" target="_blank" rel="noopener"&gt;1000-qubit&lt;/a&gt;システムを比較してみましょう。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/next-scale-level/ibm-360-vs-keysight.webp" alt="IBM 360 (1669年) vs Keysight 1000量子ビットシステム (2025年)" /&gt;&lt;/p&gt;&#10;&lt;p&gt;では、将来の量子コンピューティングシステムがどのようなものになるべきか、考えてみるのはどうでしょうか？以下の図は、私の考えを示したものです。要は、複雑なビット記憶とそれらのビットにアクセスするためのコントローラで構成される現在のメモリチップと、今日の実際の量子制御システムの展開方法を比較することです。議論を呼ぶかもしれないのは、量子ビット制御を処理ユニットとしてではなく、メモリユニットとして捉えている点です。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/next-scale-level/quantum-computing-machine-2030.webp" alt="2030年の量子コンピューティングマシン" /&gt;&lt;/p&gt;&#10;&lt;p&gt;そこで私は、IBM S/360のメモリに関する&lt;a href="https://www.righto.com/2019/04/" class="external-link" target="_blank" rel="noopener"&gt;Ken Shirriff氏のブログ&lt;/a&gt;に出会いました。ブログとビデオの内容は本当に素晴らしく、メモリ技術がここまで進化していたとは想像もしていませんでした。そして、パルスを使ってコアメモリを「駆動」する方法を見ると、量子ビット「エンティティ」の制御と読み出しに使われる同様の技術を強く思い出します。そこで、私は量子ビット「エンティティ」を「量子ビットメモリ」と呼ぶことにします。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/next-scale-level/ibm-360-model-50-core-memory.webp" alt="IBM S/360 Model 50 の 64 KB コア アレイ内部" /&gt;&lt;/p&gt;&#10;&lt;p&gt;もちろん、シリコン量子ビット（または類似の方式）と制御エレクトロニクスを一体化したシリコンダイを実現するには、まだまだ長い道のりがある。現在の開発段階では、環境ノイズの影響を防ぐため、量子ビットは極低温で動作させる必要がある。そう、量子ビットは「敏感」な存在なのだ。さらに、制御エレクトロニクス自体もノイズが多く発熱するため、量子ビットのすぐそばに配置するのは好ましくない。&lt;/p&gt;&#10;&lt;p&gt;ノイズの問題が解決されれば（おそらく&lt;a href="https://quantumzeitgeist.com/how-quantum-computers-are-transforming-materials-science/" class="external-link" target="_blank" rel="noopener"&gt;材料科学&lt;/a&gt;におけるブレークスルーによって&lt;a href="https://www.rug.nl/research/zernike/education/topmasternanoscience/ns190lous.pdf" class="external-link" target="_blank" rel="noopener"&gt;強誘電体メモリ&lt;/a&gt;や&lt;a href="https://techxplore.com/news/2025-10-carbon-nanotube-based-transistors-thz.html" class="external-link" target="_blank" rel="noopener"&gt;テラヘルツトランジスタ&lt;/a&gt;など）、業界は[シリコン]で行われているように、高度なパッケージングを備えた集積回路の実現に向けて前進する必要があるだろう。フォトニクス](&lt;a href="https://www.tomshardware.com/tech-industry/semiconductors/amd-reportedly-establishes-usd280-million-silicon-photonics-hub-in-taiwan-new-r-and-d-center-could-accelerate-companys-co-packaged-optics-roadmap" class="external-link" target="_blank" rel="noopener"&gt;https://www.tomshardware.com/tech-industry/semiconductors/amd-reportedly-establishes-usd280-million-silicon-photonics-hub-in-taiwan-new-r-and-d-center-could-accelerate-companys-co-packaged-optics-roadmap&lt;/a&gt;)。これがどのように起こるか、いつ起こるかは私にはわかりませんが、メインフレームの進化を振り返ると、必ず起こると確信できます。そして、これが実現すれば、あらゆる電子機器に量子コンピューティング要素がバンドルされる道が開かれます。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;注記[2025-10-28]: 上記の図では、量子ビットがシリコン型モダリティに基づいているという暗黙の前提がありますが、必ずしもそうである必要はありません。たとえば、光学的にアドレス指定可能な量子ビットのモダリティには、極低温の課題ではなく、スケーラビリティと小型化の課題があります。そして、これらのモダリティでも &lt;a href="https://www.popularmechanics.com/technology/a69164560/mram-discovery-computing/" class="external-link" target="_blank" rel="noopener"&gt;ブレークスルー&lt;/a&gt; が起こることは間違いなく期待できます。&lt;a href="https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.6.013012" class="external-link" target="_blank" rel="noopener"&gt;光学的に制御される磁気抵抗RAM&lt;/a&gt; を考えてみてください。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;h1 id="qramが量子素子と呼ばれる所以は何ですか"&gt;&#10; QRAMが「量子素子」と呼ばれる所以は何ですか？&#10; &lt;a class="heading-link" href="#qram%e3%81%8c%e9%87%8f%e5%ad%90%e7%b4%a0%e5%ad%90%e3%81%a8%e5%91%bc%e3%81%b0%e3%82%8c%e3%82%8b%e6%89%80%e4%bb%a5%e3%81%af%e4%bd%95%e3%81%a7%e3%81%99%e3%81%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;この脱線は、重要な質問に答えなければ面白くありません。量子RAMが興味深い「量子素子」である理由は何か？ 標準RAMは、スタティックRAM（SRAM）、ダイナミックRAM（DRAM）、同期ダイナミックRAM（SDRAM）のいずれであっても、線形アドレス空間によってアドレス指定された配列にビットを読み書きするという非常に基本的な原理で動作します。&lt;/p&gt;&#10;&lt;p&gt;量子ビットも線形アドレス空間でアドレス指定できると仮定しましょう。この場合、この配列は単純な「ブールビット」配列よりもどのような点で興味深いのでしょうか？「量子ビット」について考える際に考慮すべき点のいくつかを以下に示します。&lt;/p&gt;&#10;&lt;div style='float:right;width:50%;padding-left:20px;'&gt;&lt;img src='https://qsysarch.com/images/next-scale-level/entanglement-vs-superposition.webp'&gt;クレジット：&lt;a href='https://www.newscientist.com/article/mg21929242-400-quantum-information-the-promise/'&gt;量子情報：その可能性&lt;/a&gt;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;量子もつれ：複数の量子ビットは量子もつれを示すことがあります。もつれた量子ビットは常に互いに相関し、単一のシステムを形成します。たとえそれらが無限に離れていても、一方の量子ビットの状態を測定することで、もう一方の量子ビットの状態を直接測定することなく知ることができます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;重ね合わせ：重ね合わせによって、量子アルゴリズムは干渉や量子もつれといった他の量子力学的現象を利用できるようになります。重ね合わせ、干渉、量子もつれが組み合わさることで、従来のコンピュータよりも指数関数的に高速に問題を解決できる計算能力が生まれます。&lt;/p&gt;&#10;&lt;p&gt;一般的に、真の量子概念は「量子もつれ」のみであるとされています。重ね合わせは、システムが2つ以上の状態を取り得ることを表現する手段に過ぎず、これらの状態は既知ではあるものの、観測することはできません。そして、いったん観測されると、システムは単一の確定した状態に「崩壊」します。重ね合わせ自体に特別なことは何もありません。特別なのは、量子もつれを用いることで「測定」することなく「観測」することができ、それによって量子ビットの量子特性を維持できるという点です。&lt;/p&gt;&#10;&lt;p&gt;では、このQRAMが「量子RAM」として認められるためには、「重ね合わせ状態の量子ビット」に対してどのようなインターフェースを公開する必要があるのでしょうか？&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;は、各量子ビットを単一量子ビットゲートで個別に制御することを意味し、「リセット」は擬似ゲートとして機能します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;は、内部で量子もつれを利用して、条件付きゲートでマルチキュービットを制御することを意味します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;は、各量子ビットを単一の確定した状態に縮小または「縮退」させることによって、各量子ビットを読み出すことを意味します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;これは物理学者の同僚たちが猛烈に反対するような、過度に単純化されたナイーブな見方であることは認めざるを得ません。そして、より適切な抽象化を用いて方程式を単純化する必要があることにも同意します。また、「量子ビット配列」を「量子メモリ」と呼ぶのはあまり好きではないことも認めざるを得ませんが、「QRAM」という名前は非常に魅力的で、強力な&lt;a href="https://hbr.org/2025/10/the-power-of-metaphors-when-introducing-change-initiatives" class="external-link" target="_blank" rel="noopener"&gt;メタファー&lt;/a&gt;でもあります。&lt;/p&gt;&#10;&lt;h1 id="プロセッサとメモリ"&gt;&#10; プロセッサとメモリ&#10; &lt;a class="heading-link" href="#%e3%83%97%e3%83%ad%e3%82%bb%e3%83%83%e3%82%b5%e3%81%a8%e3%83%a1%e3%83%a2%e3%83%aa"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;「メモリのメタファー」に関するジレンマの一つは、量子制御システムを「単純化」してメモリの補助的な部分とすることが実際に許容できるかどうか、あるいはGPU（グラフィックス処理ユニット）のように量子ビットを操作するQCU（量子制御ユニット）が必要かどうか、という点である。後者の場合、重点はゲートシーケンスの実行に置かれる。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/next-scale-level/quantum-memory-vs-quantum-control.webp" alt="量子メモリ vs 量子処理" /&gt;&lt;/p&gt;&#10;&lt;p&gt;もちろん、これは同じだと言う人もいるでしょう。最初のケースでは、プロセッサはメモリ配列内のコントローラに過ぎません。しかし、システムアーキテクチャの観点から重要なのは、公開されるインターフェースを強調することです。メモリの場合、実際のゲートシーケンサはCPU/GPUであり、QRAMとのやり取りはゲート（書き込み）と読み出し（読み出し）に基づいています。量子プロセッサの場合、シーケンスはQCUにあり、やり取りはゲートシーケンスに基づいています。前者が機能するためには、CPU/GPUがマルチキュービットゲートの一定レベルの同期性を処理する必要があります。&lt;/p&gt;&#10;&lt;h1 id="スケールアップ"&gt;&#10; スケールアップ&#10; &lt;a class="heading-link" href="#%e3%82%b9%e3%82%b1%e3%83%bc%e3%83%ab%e3%82%a2%e3%83%83%e3%83%97"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;量子ビットにおける多くの課題の一つは、量と信頼性の両面におけるスケールです。量とは、同じダイ上により多くの量子ビットをパッケージ化できる能力を指し、信頼性とは、より優れた特性を持つ量子ビットを作成できる能力を指します。デコヒーレンス時間については、あえて触れませんでした。デコヒーレンス時間が長いことが必ずしも有益とは限らないためです。これについては、今後のメモで詳しく説明します。&lt;/p&gt;&#10;&lt;p&gt;信頼性の話に戻りますが、最近のRAMにはコントローラ内に内部ECC（エラー訂正コード）が組み込まれていることに注目する価値があります。QRAMもコントローラにQEC（量子エラー訂正）を組み込むことでメリットが得られるでしょう。これにより「信頼性の高い量子メモリ」が実現します。&lt;/p&gt;</description></item><item><title>GPUDirect RDMA: RoCE パケットの寿命</title><link>https://qsysarch.com/ja/posts/gpu-direct-from-rdma-from-pcie-to-using-doca/</link><pubDate>Sat, 18 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/gpu-direct-from-rdma-from-pcie-to-using-doca/</guid><description>&lt;style&gt;&#10;img[src$='#center']&#10;{&#10;display: block;&#10;margin: 0.7rem auto;&#10;}&#10;img[src$='#right']&#10;{&#10;width: 50%;&#10;float: right;&#10;padding-left: 10px;&#10;}&#10;&lt;/style&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpudirect-rdma-pcie/nvidia-dgx-spark.webp#right" alt="" style="width: 100%; max-width: 200px;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;このメモは、RDMA の内部構造、特に &lt;a href="https://nvidianews.nvidia.com/news/nvidia-dgx-spark-arrives-for-worlds-ai-developers" class="external-link" target="_blank" rel="noopener"&gt;DGX Spark&lt;/a&gt; (右の画像) に統合された 200Gb connectX-7 などの PCIe サブシステムと相互接続する「RDMA 準拠 NIC」を作成するために必要なことを理解することを目的としています。&lt;/p&gt;&#10;&lt;h1 id="rdmaをクライアントサーバープロトコルとして使用する"&gt;&#10; RDMAを「クライアントサーバー」プロトコルとして使用する&#10; &lt;a class="heading-link" href="#rdma%e3%82%92%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e3%83%97%e3%83%ad%e3%83%88%e3%82%b3%e3%83%ab%e3%81%a8%e3%81%97%e3%81%a6%e4%bd%bf%e7%94%a8%e3%81%99%e3%82%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;このメモは、RDMAプロトコルの概要から始めましょう。&lt;/p&gt;&#10;&lt;h2 id="rdma設定"&gt;&#10; RDMA設定&#10; &lt;a class="heading-link" href="#rdma%e8%a8%ad%e5%ae%9a"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;RDMAデータチャネルを設定する際、メモリバッファは使用する前にネットワークカードに登録する必要があります。登録プロセスは以下の手順で構成されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;メモリをピン留めして、オペレーティングシステムによってスワップされないようにする。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;アドレス変換情報をNICに保存します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;メモリ領域のアクセス許可を設定します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;NICがRDMA動詞を実行する際に使用するリモートキーとローカルキーを作成します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="rdmaキューペア"&gt;&#10; RDMAキューペア&#10; &lt;a class="heading-link" href="#rdma%e3%82%ad%e3%83%a5%e3%83%bc%e3%83%9a%e3%82%a2"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;RDMA通信は3つのキューのセットに基づいています&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;SQ&lt;/code&gt;: 送信キュー&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;RQ&lt;/code&gt;: 受信キュー&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;CQ&lt;/code&gt;: 完了キュー&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;RDMAキューペア、または「QP」とは、送信キューと受信キューを指します。&lt;/p&gt;&#10;&lt;h2 id="rdmaワークキュー要素"&gt;&#10; RDMAワークキュー要素&#10; &lt;a class="heading-link" href="#rdma%e3%83%af%e3%83%bc%e3%82%af%e3%82%ad%e3%83%a5%e3%83%bc%e8%a6%81%e7%b4%a0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;アプリケーションは、ワークリクエスト（ワークキュー要素（&lt;code&gt;WQE&lt;/code&gt;）とも呼ばれる）を使用してジョブを発行します。ワークリクエストは、バッファへのポインタを持つ小さな構造体です。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;送信キューでは、送信するメッセージへのポインタです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;受信キューでは、受信したメッセージをどこに配置すべきかを示します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;作業依頼が完了すると、アダプタは完了キュー要素を作成し、それを完了キューに追加します。&lt;/p&gt;</description></item><item><title>量子誤り訂正：量子ビットの寿命</title><link>https://qsysarch.com/ja/posts/quantum-error-correction-the-life-of-a-qubit/</link><pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/quantum-error-correction-the-life-of-a-qubit/</guid><description>&lt;p&gt;量子誤り訂正（QEC）は、今日の量子コンピューティングにおいて最も活発な研究分野の一つです。QECの目的は、量子ビットに格納された繊細な量子情報を、ノイズやデコヒーレンスから保護することです。&lt;/p&gt;&#10;&lt;p&gt;量子ビットの信頼性の尺度はエラー確率に基づいており、今日の物理量子ビットは、10,000回のゲート操作につき約1回のエラー（10⁻⁴回）というオーダーのエラー率を達成できます。しかし、完全に効率的であるためには、ゲートエラー率は少なくとも10億回に1回（10⁻⁹回）、あるいは1兆回に1回（10⁻¹²回）に達する必要があります。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-error-correction/qubit-gate-error-probability.webp#center" alt="" style="width: 100%; max-width: 600px;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;このメモは、実装の観点から量子誤り訂正（QEC）を理解するための、簡潔で分かりやすいガイドを提供することを目的としています。最初のセクションでは、論理量子ビットを作成するために必要なさまざまな誤り訂正計算方法の概要を説明します。2番目のセクションでは、論理的に訂正された量子ビットに対するゲート操作の実装の可能性を検討します。そして最後のセクションでは、&lt;a href="https://nvidia.github.io/cudaqx/components/qec/introduction.html" class="external-link" target="_blank" rel="noopener"&gt;CUDA-QEC&lt;/a&gt;フレームワークと、量子誤り訂正システムを作成するためのプログラムによるアプローチを紹介します。&lt;/p&gt;&#10;&lt;h1 id="qecは何をどのように解決しようとしているのか"&gt;&#10; QECは何を、どのように解決しようとしているのか？&#10; &lt;a class="heading-link" href="#qec%e3%81%af%e4%bd%95%e3%82%92%e3%81%a9%e3%81%ae%e3%82%88%e3%81%86%e3%81%ab%e8%a7%a3%e6%b1%ba%e3%81%97%e3%82%88%e3%81%86%e3%81%a8%e3%81%97%e3%81%a6%e3%81%84%e3%82%8b%e3%81%ae%e3%81%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;QECの課題は、一見すると単純です。まずエラーが発生したことを検知し、次にそれを修正するだけです。ただし、これは量子ビットの量子状態を測定したり崩壊させたりすることなく行う必要があります。ここで、エンタングルした補助量子ビットの概念が登場します。&lt;/p&gt;&#10;&lt;p&gt;QECは、単一の量子ビットに情報を格納する代わりに、1つの論理量子ビットを複数の物理量子ビットにエンコードします。これらの物理量子ビットは、データ量子ビットと補助量子ビット（測定量子ビットとも呼ばれる）の2つのカテゴリに分けられます。量子ビットのグループは「エンタングルメント」状態を形成し、データ量子ビットの状態を崩壊させることなく補助量子ビットを読み出すことが可能になります。下の図では、赤い線が物理量子ビットへのいくつかの可能な論理量子ビットのマッピングを示しています。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-error-correction/logical-qubit-physical-mapping.webp#center" alt="" style="width: 100%; max-width: 600px;"/&gt;&lt;/p&gt;&#10;&lt;h2 id="行動様式"&gt;&#10; 行動様式&#10; &lt;a class="heading-link" href="#%e8%a1%8c%e5%8b%95%e6%a7%98%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;論理量子ビットを誤り訂正したいと仮定しましょう。論理量子ビットは複数の物理量子ビットに符号化されています。エラーが発生すると、物理量子ビットの1つが反転する可能性があります。反転はビット反転（X）の形、位相反転（Z）の形、またはその両方（Y）の形のいずれかで起こります。&lt;/p&gt;&#10;&lt;p&gt;フリップをチェックするために、QECは周期的な*&lt;a href="https://www.quera.com/glossary/syndrome-extraction" class="external-link" target="_blank" rel="noopener"&gt;シンドローム測定&lt;/a&gt;*を実行します。これは、データ量子ビットと相互作用する特定の補助量子ビットを測定するものです。まず補助量子ビットをデータ量子ビットとエンタングルさせ、次に読み出しを行います。エンタングルメントは、読み出しを実行するのに十分な短い期間だけ行われます。Googleの場合、このエンタングルメントはCZ（コントロールZ）ゲートを使用して実現され、CZゲート自体もエンタングルメントを利用しています。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-error-correction/one-surface-code-cycle.webp" alt="補助量子ビット測定&amp;gt;" /&gt; (画像出典: &lt;a href="https://arxiv.org/pdf/2207.06431" class="external-link" target="_blank" rel="noopener"&gt;Google Quantum AI - 表面コード論理量子ビットの実装&lt;/a&gt;)&lt;/p&gt;&#10;&lt;p&gt;症候群が特定されると、補正を実行できます。このために、古典的なアルゴリズムによって発生した可能性のあるエラーが特定されます。システムは、関連する補正（X、Y、またはZゲート）を適用します。Googleの場合、位相ずれ（T2?）エラーを軽減するために、追加の動的デカップリング（DD）が使用されます。&lt;/p&gt;&#10;&lt;h2 id="量子コード"&gt;&#10; 量子コード&#10; &lt;a class="heading-link" href="#%e9%87%8f%e5%ad%90%e3%82%b3%e3%83%bc%e3%83%89"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;データと測定用の量子ビットは非局所的に分散されており、1つまたは2つの量子ビットにエラーが発生してもグループの一貫性が損なわれません。この分散は「量子コード」と呼ばれます。実際のシステムでは、より大規模で高度なコードが使用されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://errorcorrectionzoo.org/c/shor_nine" class="external-link" target="_blank" rel="noopener"&gt;Shorコード&lt;/a&gt; (9量子ビット): ビット反転エラーと位相反転エラーの両方を訂正します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://errorcorrectionzoo.org/c/steane" class="external-link" target="_blank" rel="noopener"&gt;Steaneコード&lt;/a&gt; (7量子ビット): 初の完全量子誤り訂正コード。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://errorcorrectionzoo.org/c/surface" class="external-link" target="_blank" rel="noopener"&gt;表面符号&lt;/a&gt; (\(2n^2-1\) 量子ビット) — 量子ビットを2次元グリッド上に配置します。表面符号距離\(n\)は、同時に訂正できるエラーの数を表します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;実際には、各測定量子ビットは、古典アルゴリズムの判定ロジックに使用される安定化演算子を射影的に測定する役割を担っています。安定化符号は、古典的な誤り訂正における線形符号の量子版であり、パリティチェックを用いてノイズビットの誤りを検出します。&lt;/p&gt;&#10;&lt;h1 id="論理量子ビット上で量子アルゴリズムを実行する方法は"&gt;&#10; 論理量子ビット上で量子アルゴリズムを実行する方法は？&#10; &lt;a class="heading-link" href="#%e8%ab%96%e7%90%86%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88%e4%b8%8a%e3%81%a7%e9%87%8f%e5%ad%90%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0%e3%82%92%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b%e6%96%b9%e6%b3%95%e3%81%af"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;物理量子ビット上で量子アルゴリズムを実行するということは、物理量子ビット上で&lt;a href="https://qsysarch.com/posts/executing-a-quantum-algorithm/" &gt;ゲート&lt;/a&gt;を操作することを意味します。では、論理量子ビットを扱う場合はどうでしょうか？これは単純な質問のように思えるかもしれませんが、答えはそれほど単純ではなく、論理量子ビットゲートへのアプローチ方法は複数あります。まずは単一量子ビットゲートから始め、その後、複数量子ビットゲートの課題に取り組みましょう。&lt;/p&gt;&#10;&lt;h2 id="論理量子ビットへの単一量子ビットゲートの適用"&gt;&#10; 論理量子ビットへの単一量子ビットゲートの適用&#10; &lt;a class="heading-link" href="#%e8%ab%96%e7%90%86%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88%e3%81%b8%e3%81%ae%e5%8d%98%e4%b8%80%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88%e3%82%b2%e3%83%bc%e3%83%88%e3%81%ae%e9%81%a9%e7%94%a8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;論理ゲートの実装の種類：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.riverlane.com/news/speeding-up-amo-qubits-with-fast-transversal-logic" class="external-link" target="_blank" rel="noopener"&gt;横断ゲート&lt;/a&gt;: 横断ゲートは、各物理キュービットに対して独立して作用します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;論理量子ビットゲートは、n個の物理量子ビットそれぞれに同じゲートを適用することと同等です。例えば、7量子ビットのスティーン符号では、論理アダマールゲートは、7個の物理量子ビットそれぞれに物理的なHゲートを適用することによって実現されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2404.13202" class="external-link" target="_blank" rel="noopener"&gt;格子手術&lt;/a&gt; / &lt;a href="https://arxiv.org/abs/1311.0277" class="external-link" target="_blank" rel="noopener"&gt;トポロジカルコード&lt;/a&gt; &lt;img src='https://qsysarch.com/images/quantum-error-correction/surface-code-and-various-logical-entagling-gate-scheme.webp' style="width:520px;max-width:100%;float:right;padding-left:20px;"&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;表面符号では、論理量子ビットは物理量子ビットの大きなパッチとして符号化される。論理演算は、パッチの結合と分割、あるいは欠陥の編み込みによって実現され、これによって符号のトポロジーが変化する。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href='https://arxiv.org/pdf/2505.15907'&gt;arxiv.2505.15907&lt;/a&gt;に掲載されている右側の画像は、格子手術操作が、2つのコードパッチを端に沿って結合することによって実行される様子を示しています。この操作は、耐障害性を実現するためにO(d)ラウンドを必要とします。&lt;/p&gt;&#10;&lt;h2 id="論理量子ビットへのマルチ量子ビットゲートの適用"&gt;&#10; 論理量子ビットへのマルチ量子ビットゲートの適用&#10; &lt;a class="heading-link" href="#%e8%ab%96%e7%90%86%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88%e3%81%b8%e3%81%ae%e3%83%9e%e3%83%ab%e3%83%81%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88%e3%82%b2%e3%83%bc%e3%83%88%e3%81%ae%e9%81%a9%e7%94%a8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;*&lt;a&gt;横断型マルチ量子ビットゲート&lt;/a&gt;：多くの量子コード（例：Steane、Bacon–Shor）では、論理CNOTを横断的に実行できます：\( CNOT_L​=\sum_{i=1}^n ​CNOT(a_i​,b_i​) \)&lt;/p&gt;</description></item><item><title>極低温コンピュータおよびコントローラ</title><link>https://qsysarch.com/ja/posts/cryogenic-machines/</link><pubDate>Sun, 05 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/cryogenic-machines/</guid><description>&lt;div style='float:right;max-width:300px;padding-left:10px;text-align:center;line-height:1.2;'&gt;&#10;&lt;img src='https://qsysarch.com/images/cryogenic-stack-2.webp'&gt;&#10;&lt;p&gt;出典：多数の量子ビットを制御するための極低温インターフェース（ &lt;a href='https://arxiv.org/pdf/1912.01299'&gt;arXiv:1912.01299&lt;/a&gt; ）&lt;/p&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;量子ビットにはいくつかの種類があり、その中でも有望なものの1つが超伝導量子ビットである。&lt;/p&gt;&#10;&lt;p&gt;超伝導量子ビット方式の課題は、環境ノイズに非常に敏感であり、他の方式に比べて寿命が短いことである。さらに、超伝導量子ビットは極低温での動作を必要とするため、特殊な冷却システムが必要となる。&lt;/p&gt;&#10;&lt;p&gt;極低温システムの目的は、絶対零度（0.1 K未満）に近い温度に到達し、熱エネルギーによる干渉を最小限に抑えることです。量子ビットは繊細な存在であるため、干渉が少ないほど良いのです。&lt;/p&gt;&#10;&lt;h1 id="極低温量子qpu"&gt;&#10; 極低温量子QPU&#10; &lt;a class="heading-link" href="#%e6%a5%b5%e4%bd%8e%e6%b8%a9%e9%87%8f%e5%ad%90qpu"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;img src='https://qsysarch.com/images/bluefors-high-density-wiring.webp' style='float:right;max-width:280px;padding-left:10px;'&gt;&#10;&lt;p&gt;極低温に関しては、考慮すべき点がいくつかあります。まず、QPUを冷蔵庫内に設置し、制御スタックを室温で動作させるという点です。これは現在、&lt;a href="https://bluefors.com/" class="external-link" target="_blank" rel="noopener"&gt;Bluefors&lt;/a&gt;のソリューションで既に可能ですが、相互接続レベルでいわゆる「配線のボトルネック」が発生します。&lt;/p&gt;&#10;&lt;p&gt;幸いなことに、業界はこの課題への対応に非常に積極的で、高密度配線ソリューションが多数提供されており、冷蔵庫に統合されているものもあります（右の写真を参照）。&lt;/p&gt;&#10;&lt;h1 id="極低温デジタルアナログ変換器dac"&gt;&#10; 極低温デジタル・アナログ変換器（DAC）&#10; &lt;a class="heading-link" href="#%e6%a5%b5%e4%bd%8e%e6%b8%a9%e3%83%87%e3%82%b8%e3%82%bf%e3%83%ab%e3%82%a2%e3%83%8a%e3%83%ad%e3%82%b0%e5%a4%89%e6%8f%9b%e5%99%a8dac"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;2つ目の側面は、制御スタックをはるかに低い温度で動作させることです。低温動作の興味深い点は、量子ビットの干渉を防ぐためにノイズレベルを最小限に抑える必要があることです。そのため、クライオCMOSは、大規模量子コンピュータや配線のボトルネックによって制約を受けるその他のアプリケーションにとって、重要な基盤技術として注目されています。&lt;/p&gt;&#10;&lt;p&gt;下記の図は&lt;a href="https://ieeexplore.ieee.org/document/11037551" class="external-link" target="_blank" rel="noopener"&gt;TU Deflt&lt;/a&gt;からのもので、感度の高いアナログ信号は青色で示され、より堅牢なデジタル信号と電源/バイアス線はそれぞれ黒色と赤色で示されています。主な目的は、青色の信号を最小限に抑えることです。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/comparison-of-biasing-strategies.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;h1 id="極低温制御-アシックス"&gt;&#10; 極低温制御 アシックス&#10; &lt;a class="heading-link" href="#%e6%a5%b5%e4%bd%8e%e6%b8%a9%e5%88%b6%e5%be%a1-%e3%82%a2%e3%82%b7%e3%83%83%e3%82%af%e3%82%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;極低温ASICにおける多くの課題の一つは、極低温下におけるCMOS技術の物理的挙動（消費電力や熱負荷など）を低く抑える必要があることです。そのため、3つ目の課題は、極低温下で動作するASICを完全に制御することです。&lt;/p&gt;&#10;&lt;p&gt;例えば、下の図では、FPGAは現在4K（-269.15℃）に配置されていますが、FPGAがどれだけ発熱するかを考えると、DACだけを4Kに配置する場合（それ自体も大きな課題ですが！）と比べて、これは非常に大きな課題となります。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-readout-pcb.webp" alt="量子読み出し（QuRO）PCB" /&gt; (出典：&lt;a href="https://pure.tudelft.nl/ws/portalfiles/portal/52934784/dissertation_harald_V5_final.pdf" class="external-link" target="_blank" rel="noopener"&gt;量子プロセッサの読み出し用極低温電子機器&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="事例研究google量子プロセッサの極低温制御への道"&gt;&#10; 事例研究：Google：量子プロセッサの極低温制御への道&#10; &lt;a class="heading-link" href="#%e4%ba%8b%e4%be%8b%e7%a0%94%e7%a9%b6google%e9%87%8f%e5%ad%90%e3%83%97%e3%83%ad%e3%82%bb%e3%83%83%e3%82%b5%e3%81%ae%e6%a5%b5%e4%bd%8e%e6%b8%a9%e5%88%b6%e5%be%a1%e3%81%b8%e3%81%ae%e9%81%93"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;Google の &lt;a href="https://research.google/blog/on-the-path-to-cryogenic-control-of-quantum-processors/" class="external-link" target="_blank" rel="noopener"&gt;論文&lt;/a&gt; と &lt;a href="https://www.youtube.com/watch?v=VA2HEUmkrKo" class="external-link" target="_blank" rel="noopener"&gt;動画&lt;/a&gt; はすでにかなり古い (2019 年) ものですが、非常に重要な情報が満載です。&lt;/p&gt;&#10;&lt;p&gt;現在の「シングル量子ビット」制御・計測ハードウェアは、温度ステージング分布に合わせてスケールアップした場合（つまり、読み出し温度が300Kまたは約25℃の場合）、ケーブルのボトルネックが問題となります。右の図は、システムを72量子ビットシステムにスケールアップする際に必要なケーブルの本数と、量子ビットあたりの「コンポーネント」数（コンポーネントとはDAC、ADC、AWGなどを指します）の有用な概算値を示しています。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/typical-single-qubit-control-readout-hardware.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/materialization-of-a-72qubits-system.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;次の2枚のスライドは、Googleチームが提案した「クライオステージング」に関する分割案を示しています。これは、予想通り、制御を4Kに移行するという以前のコンセプトと一致しています。興味深いのは、Googleにとってデジタル領域が2つの部分に分割され、それぞれ4Kと300Kの両方で運用されるという点です。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/architecture-suitable-for-72qubits.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/possible-hardware-architecture-for-1m-qubits.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;デジタル制御の4K部分の詳細を調べた結果、GoogleはAWG（左図）に対して非常にシンプルでありながら巧妙なアプローチを考案しました。300K制御ドメインとの相互接続は、AWGサンプルを保存するためのメモリという形で実現されています。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/waveform-generation-approach.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/block-diagram.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;上記の提案で私が気に入っている点は、演算ロジック、すなわち古典的演算（CC）が300Kバイトに留まり、演算ロジックとリアルタイム信号生成間のインターフェースがメモリを用いて実装されていることです。このメモリは小さくする必要があるため、CCとAWGの間には密接な結合が必要となります。残念ながら、このインターフェースに関する公開情報は限られています。&lt;/p&gt;&#10;&lt;p&gt;＃ 結論&lt;/p&gt;&#10;&lt;p&gt;間違いなく、業界は5～10年以内に、電圧レギュレータ、クロック生成器、および極低温で動作する再構成可能なデジタルコアを含む完全なデジタルフロントエンドを備えた極低温ASIを製造できるようになるだろう。これは「ケーブル配線のボトルネック」を克服するのに役立つだろう。&lt;/p&gt;&#10;&lt;p&gt;一方、室温で動作可能な光学的アドレス指定可能な量子ビットなど、他の方式では、シリコン量子ビットと同等の性能を実現する画期的な進歩が見られる可能性がある。&lt;/p&gt;&#10;&lt;p&gt;いずれにせよ、この課題は10年以内に克服されると推測できる。&lt;/p&gt;&#10;&lt;p&gt;というわけで、この日曜日の朝のメモは、細かい点には一切触れていませんでしたが、量子実体（キュービット）を極低温で動作させる理由、課題、そして解決策を理解するための基礎を築きました。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h1 id="参考資料および関連文献"&gt;&#10; 参考資料および関連文献&#10; &lt;a class="heading-link" href="#%e5%8f%82%e8%80%83%e8%b3%87%e6%96%99%e3%81%8a%e3%82%88%e3%81%b3%e9%96%a2%e9%80%a3%e6%96%87%e7%8c%ae"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://ieeexplore.ieee.org/document/10783050" class="external-link" target="_blank" rel="noopener"&gt;電荷信号の低ノイズ読み出し用極低温フロントエンドASIC&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://indico.slac.stanford.edu/event/8288/contributions/7682/attachments/3750/10141/CPAD23%20CRYO%20ASIC%20for%20nEXO.pdf" class="external-link" target="_blank" rel="noopener"&gt;nEXO実験における電荷読み出し用システムオンチップ（SoC）&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://pure.tudelft.nl/ws/portalfiles/portal/52934784/dissertation_harald_V5_final.pdf" class="external-link" target="_blank" rel="noopener"&gt;量子プロセッサの読み出し用極低温エレクトロニクス&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://arxiv.org/pdf/1912.01299" class="external-link" target="_blank" rel="noopener"&gt;多数の量子ビットを制御するための極低温インターフェース&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=VA2HEUmkrKo" class="external-link" target="_blank" rel="noopener"&gt;極低温CMOS集積回路を用いたトランスモン量子ビットの制御&lt;/a&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;チャットGPTによる、コンピュータとマシンの違いに関する逆プロンプト機能。&lt;/p&gt;&#10;&lt;center&gt; &lt;img src='https://qsysarch.com/images/cryogenic-quantum-machine.webp' style='width:25%'&gt; &lt;img src='https://qsysarch.com/images/cryogenic-quantum-computer.webp' style='width:25%'&gt; &lt;/center&gt;&#10;&lt;p&gt;（プロンプト：「極低温量子コンピュータ」の漫画風イラストを描いてください」対「極低温量子マシン」の漫画風イラストを描いてください）&lt;/p&gt;</description></item><item><title>量子アルゴリズムにはどのマシンが適しているか？</title><link>https://qsysarch.com/ja/posts/executing-a-quantum-algorithm/</link><pubDate>Sun, 28 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/executing-a-quantum-algorithm/</guid><description>&lt;p&gt;古典計算機の世界では、チューリングマシンは通常、状態、テープ、読み書きヘッドを通してあらゆる古典計算機アルゴリズムを実行できる抽象的な機械として表現される。1950年代に登場した初期のコンピュータは、このようなチューリングアーキテクチャを実装した巨大なメインフレームだった。&lt;/p&gt;&#10;&lt;img src='https://qsysarch.com/images/dsir-ac-pilot-model-1960-npl.webp' style="width:380px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;では、量子アルゴリズムはどうでしょうか？それらを実装するには何が必要なのでしょうか？かつてのメインフレームが古典コンピュータにとってそうであったように、今日の量子制御スタックは量子コンピュータにとってそうである、という共通認識があります。メインフレームから、コンパクトで拡張性が高く効率的な量子コンピュータへの飛躍は、今後5年から10年以内に起こるだろう、という共通認識があります。&lt;/p&gt;&#10;&lt;p&gt;このメモは、量子アルゴリズムを実行するための要件を理解するための、簡潔で分かりやすいガイドを提供することを目的としています。これは、&lt;a href="https://qsysarch.com/posts/but-what-is-quantum-computing/" &gt;前回のメモ&lt;/a&gt;で説明された、3 blue 1 brow のグローバーアルゴリズムのビデオに関する「擬似」アルゴリズムに基づいています。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-algorithm.webp" alt="量子アルゴリズム" /&gt;&lt;/p&gt;&#10;&lt;p&gt;量子アルゴリズムを実行するための要件&lt;/p&gt;&#10;&lt;p&gt;上記の図には、注目すべき点がいくつかあります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.google.com/search?q=synchronicity&amp;#43;definition" class="external-link" target="_blank" rel="noopener"&gt;同期性&lt;/a&gt;: さまざまな量子ビット上の「単一量子ビットゲート」（長方形で表される）が同時に実行されるように見えるのは誤りです。ゲートがマルチ量子ビットの場合を除き、2つのゲートを同時に実行する必要はありません。したがって、「&lt;em&gt;制御ステージ&lt;/em&gt;」という言葉は誤解を招くものであり、「&lt;em&gt;制御ゲートシーケンス&lt;/em&gt;」と表現する方が適切です。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div style="width:250px;max-width:100%;float:right;padding-left:20px;line-height:1.1;font-size:80%;"&gt;&#10;&lt;p&gt;画像出典：&lt;a href="https://qblox.com/newsroom/speeding-up-your-experiment-with-active-reset-of-your-qubit" class="external-link" target="_blank" rel="noopener"&gt;Qblox ダブルスレッショルド条件付きリセット&lt;/a&gt;&lt;/p&gt;&#10;&lt;img src='https://qsysarch.com/images/qblox-2xthreshold-conditional-reset.1.webp' style="width:100%"&gt;&#10;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://qblox.com/newsroom/speeding-up-your-experiment-with-active-reset-of-your-qubit?utm_source=qsysarch.com&amp;amp;utm_medium=social" class="external-link" target="_blank" rel="noopener"&gt;初期化&lt;/a&gt; キュービットは最初に |0&amp;gt; の状態に「リセット」されます。ここで「リセット」という言葉には少し「魔法」のようなものがあり、ゲートと表現する方が適切でしょう。しかし、そのようなゲートは存在しないため、考えられる実装の 1 つは、同じキュービットの以前の読み出しに基づく条件付きゲートを使用することです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://medium.com/rigetti/lower-errors-longer-lifetimes-building-better-qubits-at-rigetti-d41598bce6e6" class="external-link" target="_blank" rel="noopener"&gt;キュービットの寿命&lt;/a&gt; キュービットは、時間の経過とともに安定しないことで知られています。これはデコヒーレンスと呼ばれ、「量子アルゴリズム」をキュービットのデコヒーレンス時間よりも速く実行する必要があります。この時間は、「&lt;a href="https://www.spinquanta.com/news-detail/main-types-of-qubits" class="external-link" target="_blank" rel="noopener"&gt;キュービットのモダリティ&lt;/a&gt;」に依存します。これについては、来週の別のメモで説明します。ここでは、「量子アルゴリズムの最大実行時間」を表す時間 &lt;em&gt;t&lt;/em&gt; があると仮定しましょう。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://www.tudelft.nl/over-tu-delft/strategie/vision-teams/quantum-computing/hardware-software/qubits-and-gates" class="external-link" target="_blank" rel="noopener"&gt;ゲート期間&lt;/a&gt; 単一量子ビットか複数量子ビットか、また量子ビットのモードによって、ゲート期間は非常に短くなることがあります。超伝導/スピン量子ビット（「高速モード」とも呼ばれる）の場合、期間は数百ナノ秒程度で、いくつかの&lt;a href="https://qutech.nl/lab/dicarlo-lab-welcome/" class="external-link" target="_blank" rel="noopener"&gt;研究室&lt;/a&gt;では、限界を約20ナノ秒まで押し上げようとしています。&lt;a href="https://qutech.nl/wp-content/uploads/2020/04/2.-Technical-Fact-Sheet-Quantum-Inspire-Spin-2.pdf" class="external-link" target="_blank" rel="noopener"&gt;spin-2&lt;/a&gt;の仕様を確認してください。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;img src='https://qsysarch.com/images/quantum-mid-circuit-measurement.webp' style="width:280px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://pennylane.ai/qml/demos/tutorial_mcm_introduction" class="external-link" target="_blank" rel="noopener"&gt;回路中間測定&lt;/a&gt; 一見すると、CNOT などのマルチキュービットゲートには矛盾があります。それは、観測可能性原理を破ることなく、またキュービットの重ね合わせ状態を縮約（「縮小」）することなく、ゲートの実行が別のゲートの状態に依存するという事実です。このトピック自体がメモの主題となるため、「機能するメソッドが存在する」と仮定しましょう。ただし、場合によっては、状態を古典的なブール値に「縮小」し、読み出し値をゲートへの入力として使用することが許容されます。これは回路中間測定と呼ばれ、通常は 2 本の線が付いた矢印で表されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;a href="https://qutech.nl/research-engineering/quantum-computing/quantum-error-correction/" class="external-link" target="_blank" rel="noopener"&gt;量子誤り訂正&lt;/a&gt; 量子誤り訂正（QEC）は、上記のアルゴリズムには明らかに含まれていません。現時点では、これが物理キュービットレベルで動作するアルゴリズムのメタ装飾なのか、論理キュービットで動作する量子マシンの固有の特性なのか、あるいはその両方なのかは不明です。この件については、メモで私の考えを明確にする必要があります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="標準化されたタイミング-t1-と-t2"&gt;&#10; 標準化されたタイミング: T1 と T2&#10; &lt;a class="heading-link" href="#%e6%a8%99%e6%ba%96%e5%8c%96%e3%81%95%e3%82%8c%e3%81%9f%e3%82%bf%e3%82%a4%e3%83%9f%e3%83%b3%e3%82%b0-t1-%e3%81%a8-t2"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;このメモは、2つの重要なタイミング、T1とT2を紹介せずには完成しません。&lt;/p&gt;&#10;&lt;div style="width:320px;max-width:100%;float:right;padding-left:20px;line-height:1.1;font-size:80%;"&gt;&lt;img src='https://qsysarch.com/images/t1-t2.1.webp' style="width:100%"&gt;&lt;a href='https://arxiv.org/pdf/2302.04053'&gt;画像出典：薄いInAs-Alハイブリッドナノワイヤに基づくゲートモン量子ビット&lt;/a&gt;&lt;/div&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;T1&lt;/em&gt; は、&lt;em&gt;緩和時間&lt;/em&gt; とも呼ばれ、量子ビットがエネルギーを失って励起状態から基底状態に遷移するのにかかる時間です。言い換えれば、「|1⟩ から |0⟩ までの時間」です。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;T2&lt;/em&gt; は、&lt;em&gt;デコヒーレンス時間&lt;/em&gt; とも呼ばれ、量子ビットの位相情報が保持される時間です。言い換えれば、重ね合わせ位相、または「魔法」状態が有効な時間です。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;T1が量子ビットのエネルギー損失を表すとすれば、T2は常にT1以下でなければなりません。では、T2からT1までの間に何が起こるのでしょうか？量子ビットはエネルギーを保持していますが、量子重ね合わせ状態を維持するには十分ではありません。&lt;/p&gt;&#10;&lt;p&gt;T1の用途は何なのか疑問に思います。T2を超えると、量子ビットは「有効な」量子状態を生成しなくなるからです。これは量子誤り訂正（QEC）に関連しているのかもしれません。QECがT2期間内に発生し、量子ビットの誤り訂正期間の最大値がT1になるようにするためでしょう。専門家と相談して、メモを更新する必要があります。&lt;/p&gt;&#10;&lt;h2 id="ラビとラムジーの実験"&gt;&#10; ラビとラムジーの実験&#10; &lt;a class="heading-link" href="#%e3%83%a9%e3%83%93%e3%81%a8%e3%83%a9%e3%83%a0%e3%82%b8%e3%83%bc%e3%81%ae%e5%ae%9f%e9%a8%93"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;このメモは、T1とT2に関連する2つの実験に言及しなければ不完全なものとなるだろう。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;ラビ&lt;/em&gt; &amp;amp; T1: T1 はラビ振動を使用して緩和時間を測定します。ラビシーケンスはスピンを初期状態から駆動し、その後、縦緩和 (T1) によるラビ振動の減衰を測定して、スピンが熱平衡にどれだけ早く戻るかを決定します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;ラムゼー&lt;/em&gt; &amp;amp; T2: T2 は、多くの場合、&lt;em&gt;ラムゼー干渉法&lt;/em&gt; によって特徴付けられます。&lt;/p&gt;</description></item><item><title>青3個、茶1個：グローバーのアルゴリズム</title><link>https://qsysarch.com/ja/posts/but-what-is-quantum-computing/</link><pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/but-what-is-quantum-computing/</guid><description>&lt;p&gt;では、量子コンピューティングとは一体何でしょうか？&lt;a href="https://3Blue1Brown.com" class="external-link" target="_blank" rel="noopener"&gt;3Blue1Brown.com&lt;/a&gt;の素晴らしい動画をご覧ください。&lt;/p&gt;&#10;&lt;iframe width="100%" height="415" src="https://www.youtube.com/embed/RQWpF2Gb-gU?si=uBsVrCvRZ_3oeh7p" title="YouTube動画プレーヤー" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10;&lt;p&gt;この講演から、特に参考になる図をいくつかご紹介します。&lt;/p&gt;&#10;&lt;h2 id="クラシックビット-vs-量子ビット"&gt;&#10; クラシックビット vs 量子ビット&#10; &lt;a class="heading-link" href="#%e3%82%af%e3%83%a9%e3%82%b7%e3%83%83%e3%82%af%e3%83%93%e3%83%83%e3%83%88-vs-%e9%87%8f%e5%ad%90%e3%83%93%e3%83%83%e3%83%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qubit-vs-cbit.webp" alt="クラシックビット vs 量子ビット" /&gt;&lt;/p&gt;&#10;&lt;h2 id="古典論理ゲートと量子ゲートの比較"&gt;&#10; 古典論理ゲートと量子ゲートの比較&#10; &lt;a class="heading-link" href="#%e5%8f%a4%e5%85%b8%e8%ab%96%e7%90%86%e3%82%b2%e3%83%bc%e3%83%88%e3%81%a8%e9%87%8f%e5%ad%90%e3%82%b2%e3%83%bc%e3%83%88%e3%81%ae%e6%af%94%e8%bc%83"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-gates-vs-classical-logic-gates.webp" alt="古典論理ゲートと量子ゲート" /&gt;&lt;/p&gt;&#10;&lt;h2 id="量子アルゴリズム"&gt;&#10; 量子アルゴリズム&#10; &lt;a class="heading-link" href="#%e9%87%8f%e5%ad%90%e3%82%a2%e3%83%ab%e3%82%b4%e3%83%aa%e3%82%ba%e3%83%a0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-algorithm.webp" alt="量子アルゴリズム" /&gt;&lt;/p&gt;&#10;&lt;h2 id="アダマールゲート"&gt;&#10; アダマールゲート&#10; &lt;a class="heading-link" href="#%e3%82%a2%e3%83%80%e3%83%9e%e3%83%bc%e3%83%ab%e3%82%b2%e3%83%bc%e3%83%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/hadamard-gate.webp" alt="アダマール量子ゲート" /&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;References:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/pdf/1804.03719" class="external-link" target="_blank" rel="noopener"&gt;Quantum Algorithm Implementations for Beginners&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://quantumcomputing.stackexchange.com/questions/7037/grovers-algorithm-in-a-nutshell" class="external-link" target="_blank" rel="noopener"&gt;Grover&amp;rsquo;s algorithm in a nutshell&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://lewisla.gitbook.io/learning-quantum/quantum-circuits/single-qubit-gates#phase-gate" class="external-link" target="_blank" rel="noopener"&gt;Learning Quantum: Qubit Gates&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>RoCEv2: InfiniBandトランスポートプロトコル</title><link>https://qsysarch.com/ja/posts/the-infiniband-transport-protocol-of-rocev2/</link><pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/the-infiniband-transport-protocol-of-rocev2/</guid><description>&lt;p&gt;私は以前、高性能ネットワーク向けテストシステムを開発する計測機器メーカーであるSpirent社に勤務していました。製品は&lt;a href="https://www.spirent.com/products/testcenter-hardware" class="external-link" target="_blank" rel="noopener"&gt;Test Center&lt;/a&gt;と呼ばれ、非常に優秀なチームと共に、RoCEv2システムのテストに使用されるシステムを開発していました。私の主な担当は、優先フロー制御（PFC）と、800GbpsのFPGAベースの「パケットアナライザおよびジェネレータ」（PGAとも呼ばれる）でPFCを有効にする方法でした。&lt;/p&gt;&#10;&lt;p&gt;しかし、私はレイヤー4を実際に見たことがなかったので、このメモでは、InfiniBandトランスポート層（L4）の主要な要素を明確にし、いくつかの図を用いて視覚化することで、このギャップを埋めようと試みます。&lt;/p&gt;&#10;&lt;h1 id="rocev2フレーム"&gt;&#10; RoCEv2フレーム&#10; &lt;a class="heading-link" href="#rocev2%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;まずは実際のRoCEv2フレームから見ていきましょう。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/rocev2-frame-format.webp" alt="RoCEv2フレーム" /&gt;&lt;/p&gt;&#10;&lt;h2 id="ベーストランスポートヘッダー-bth"&gt;&#10; ベーストランスポートヘッダー (BTH)&#10; &lt;a class="heading-link" href="#%e3%83%99%e3%83%bc%e3%82%b9%e3%83%88%e3%83%a9%e3%83%b3%e3%82%b9%e3%83%9d%e3%83%bc%e3%83%88%e3%83%98%e3%83%83%e3%83%80%e3%83%bc-bth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;BTHヘッダーに含まれる主要フィールド：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;オペコード: RDMA_WRITE、RDMA_READなどのRDMA操作の種類を指定するために使用されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;宛先キューペア: パケットの異なる宛先キューペアを区別するために使用されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;確認応答要求: 受信側がこのパケットに対してACKを返す必要があるかどうかを示します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;パケットシーケンス番号（PSN）：確実な配信のためのパケットシーケンス追跡に使用されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;UDPは信頼性の低いプロトコルであり、フレームが失われたり、順序が狂ったり、重複したりする可能性があるため、PSNを使用して正しい配信を保証します。しかし、これはIBTLがフレームの再送信を要求する方法が必要であることも意味します。これは、後述するAETHヘッダーを使用して実現されます。&lt;/p&gt;&#10;&lt;h2 id="拡張トランスポートヘッダー-eth"&gt;&#10; 拡張トランスポートヘッダー (ETH)&#10; &lt;a class="heading-link" href="#%e6%8b%a1%e5%bc%b5%e3%83%88%e3%83%a9%e3%83%b3%e3%82%b9%e3%83%9d%e3%83%bc%e3%83%88%e3%83%98%e3%83%83%e3%83%80%e3%83%bc-eth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;InfiniBandトランスポート層には、特定の機能に使用される拡張ヘッダーがいくつかあります。RDMAの場合、最も重要なのはRETHとAETHの2つです。&lt;/p&gt;&#10;&lt;h5 id="rdma拡張トランスポートヘッダーreth"&gt;&#10; RDMA拡張トランスポートヘッダー（RETH）&#10; &lt;a class="heading-link" href="#rdma%e6%8b%a1%e5%bc%b5%e3%83%88%e3%83%a9%e3%83%b3%e3%82%b9%e3%83%9d%e3%83%bc%e3%83%88%e3%83%98%e3%83%83%e3%83%80%e3%83%bcreth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h5&gt;&#10;&lt;img src='https://qsysarch.com/images/RoCEv2-IBTH-RETH-frame.webp' style="width:320px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;RDMA_WRITE操作にはいくつかの要素が必要であり、それらはRETH拡張ヘッダーのフィールドで表現されます。このヘッダーは、受信側のハードウェアに対して、書き込み操作の詳細（以下を含む）を伝えます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;仮想アドレス：データが書き込まれるメモリ上のアドレス&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;リモートキー (R_Key): メモリ領域へのアクセス権限を検証するアクセスキー&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;長さ：転送するデータのサイズ&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h5 id="ack-拡張トランスポート-ヘッダー-aeth"&gt;&#10; ACK 拡張トランスポート ヘッダー (AETH)&#10; &lt;a class="heading-link" href="#ack-%e6%8b%a1%e5%bc%b5%e3%83%88%e3%83%a9%e3%83%b3%e3%82%b9%e3%83%9d%e3%83%bc%e3%83%88-%e3%83%98%e3%83%83%e3%83%80%e3%83%bc-aeth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h5&gt;&#10;&lt;p&gt;前述のとおり、IBTLは信頼性の低い送信の場合に送信者に通知する必要があります。これは、以下のフィールドを含むEATH拡張機能を使用して行われます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;シンドローム: フロー制御情報とともに、成功 (ACK)、エラー状態 (NAK)、または受信側準備未完了 (RNR) ステータスを示す応答コードを含むフィールド&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;メッセージシーケンス番号 (MSN): 直近に完了したメッセージのシーケンス番号を示し、シーケンス番号が小さいメッセージはすべて正常に受信されたことを意味します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h4 id="カスタム拡張機能"&gt;&#10; カスタム拡張機能&#10; &lt;a class="heading-link" href="#%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h4&gt;&#10;&lt;p&gt;&lt;a href="https://www.afs.enea.it/asantoro/V1r1_2_1.Release_12062007.pdf" class="external-link" target="_blank" rel="noopener"&gt;IBTL仕様書&lt;/a&gt;（第9章を参照）には、かなりの数の拡張機能が含まれており、そのうちのいくつかは私の注意を引きました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;比較と交換: &lt;a href="https://en.wikipedia.org/wiki/Compare-and-swap" class="external-link" target="_blank" rel="noopener"&gt;ロックフリー&lt;/a&gt;同期が可能になります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;送信と書き込み：前者は制御フローに使用され、後者はデータフローに使用されます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;即時拡張：転送されるメモリとともにサイドチャネルメタデータの交換を可能にする。&lt;/p&gt;</description></item><item><title>量子実体構成要素システム</title><link>https://qsysarch.com/ja/posts/quantum-entity-component-system/</link><pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/quantum-entity-component-system/</guid><description>&lt;p&gt;最近、&lt;a href="https://news.ycombinator.com/from?site=hyperion.rs" class="external-link" target="_blank" rel="noopener"&gt;ycombinator&lt;/a&gt;でエンティティコンポーネントシステム（ECS）パラダイム（略称ECS）に関する投稿を見かけました。&lt;a href="https://www.umlboard.com/design-patterns/entity-component-system.html" class="external-link" target="_blank" rel="noopener"&gt;概念&lt;/a&gt;を詳しく読んだ後、最初に頭に浮かんだのは、このようなパラダイムを量子コンピューティングシステムの世界にどう当てはめることができるのか、そしてもし当てはめることができるとしたら、そもそも意味があるのかどうか、ということでした。&lt;/p&gt;&#10;&lt;p&gt;いつものように、ChatGPTに「量子制御システムに適用されたエンティティコンポーネントシステム」（左）とその反対である「エンティティコンポーネントシステムによって制御される量子キュービット」（右）の視覚化を依頼し始めました。最初のケースでは「人間」がシステムであり、2番目のケースではキュービットがシステムであるように見えること以外に、意味を理解するのは難しいです。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/quantum-entity-component-system/ecs1.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/quantum-entity-component-system/ecs2.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;エンティティコンポーネントシステム（ECS）に戻ると、ECSの主な利点は、継承よりもコンポジションを重視し、関心の分離を徹底し、非常にデータ指向のアプローチを採用している点です。ECSアーキテクチャでは、主に2つの理由から、振る舞いロジックをシステムに分離しています。&lt;/p&gt;&#10;&lt;p&gt;まず、システム中心の設計により、局所性を向上させ、複数のコンポーネントを並列で効率的に処理できるようにすることで、パフォーマンスが最適化されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;第二に、コンポーネント間の相互作用はコンポーネント間の直接的な依存関係ではなく、システムを介してのみ発生するため、コンポーネント間の分離が強制されます。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;そこで、この設計パターンを量子コンピューティングシステムにどのように適用できるか、ブレインストーミングを試みました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;エンティティ: キュービット&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;コンポーネント：量子ビットの制御および読み出し表現&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;システム: コンポーネントに対して操作を行い、その状態を変更する「メソッド」。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-entity-component-system/ecs-uml.webp" alt="Quantum Entity Component System" /&gt;&lt;/p&gt;&#10;&lt;p&gt;考慮すべき点はいくつかあります。例えば、物理量子ビットではなく論理量子ビットを公開する場合、これがどのように機能するか、また、現在の要件と将来の要件に基づいて、量子ビット数で表したシステムの規模を考慮して、どのような粒度が必要か、といった点です。&lt;/p&gt;&#10;&lt;p&gt;全体として、「量子実体構成要素システム」（QECS）に関するこの脱線は簡略化されたアプローチではあるが、日曜日の朝の気軽なブレインストーミングの出発点として機能し、議論を前進させるのに役立つ。&lt;/p&gt;&#10;&lt;p&gt;ECSについてもっと詳しく知りたい場合は、&lt;a href="https://www.umlboard.com/design-patterns/entity-component-system.html" class="external-link" target="_blank" rel="noopener"&gt;UML board&lt;/a&gt;の素晴らしい記事をご覧ください。内容と図解は、私に大きなインスピレーションを与えてくれました。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;References:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://en.wikipedia.org/wiki/Entity_component_system" class="external-link" target="_blank" rel="noopener"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bevy-cheatbook.github.io/programming/ecs-intro.html" class="external-link" target="_blank" rel="noopener"&gt;Bevy&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://bevy.org/learn/quick-start/getting-started/ecs/" class="external-link" target="_blank" rel="noopener"&gt;Bevy&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://doc.photonengine.com/quantum/current/quantum-intro" class="external-link" target="_blank" rel="noopener"&gt;Photon Engine&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://www.umlboard.com/design-patterns/entity-component-system.html" class="external-link" target="_blank" rel="noopener"&gt;UML Board&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;DrawIO diagrams used in this memo:&lt;/p&gt;&#10;&lt;div class="drawio-snipet"&gt;&#10;&lt;img src="https://qsysarch.com/images/quantum-entity-component-system/ecs-uml.webp"&gt;&lt;br&gt;&#10;&lt;a href='https://qsysarch.com/images/quantum-entity-component-system/ecs-uml.drawio'&gt;.drawio&lt;/a&gt; &#10;&lt;a href='https://qsysarch.com/images/quantum-entity-component-system/ecs-uml.webp'&gt;.webp&lt;/a&gt; &#10;&lt;a href='https://qsysarch.com/images/quantum-entity-component-system/ecs-uml.svg'&gt;.svg&lt;/a&gt;&lt;br&gt;ecs uml&lt;/a&gt;&#10;&lt;/div&gt;</description></item><item><title>RDMAとInfiniBandの複雑な世界</title><link>https://qsysarch.com/ja/posts/the-confusing-world-of-rdma-and-infiniband/</link><pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/the-confusing-world-of-rdma-and-infiniband/</guid><description>&lt;img src='https://qsysarch.com/images/gpu-infiniband-nvlink.webp' style="width:380px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;GPUの文脈におけるRDMAに関連するバズワードは数多く存在します。GPUダイレクト、NVLink、NVLink Fusion、InfiniBand、Quantum InfiniBand、GPUNetIO、DOCAなどです。これらは紛らわしいものですが、必ずしもそうである必要はないのかもしれません。&lt;/p&gt;&#10;&lt;p&gt;この記事は個人的なメモ形式で書かれており、様々な技術について説明し、いくつかの図を用いて視覚化することを試みています。&lt;/p&gt;&#10;&lt;h1 id="gpu-directとrdmaマーケティングとテクノロジー"&gt;&#10; GPU DirectとRDMA：マーケティングとテクノロジー。&#10; &lt;a class="heading-link" href="#gpu-direct%e3%81%a8rdma%e3%83%9e%e3%83%bc%e3%82%b1%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e3%81%a8%e3%83%86%e3%82%af%e3%83%8e%e3%83%ad%e3%82%b8%e3%83%bc"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;では、まずはNVIDIA公式ドキュメントの紛らわしい&lt;a href="https://developer.nvidia.com/blog/unlocking-gpu-accelerated-rdma-with-nvidia-doca-gpunetio/" class="external-link" target="_blank" rel="noopener"&gt;GPUNetIO&lt;/a&gt;ページから始めましょう。&lt;/p&gt;&#10;&lt;p&gt;RDMAという略語は、一方のコンピュータのオペレーティングシステムを介さずに、もう一方のコンピュータのメモリへリモートで直接メモリアクセスを可能にするプロトコルを表しています。…これは、RDMAプロトコルとは無関係なGPUDirect RDMAと混同してはいけません。&lt;/p&gt;&#10;&lt;p&gt;なるほど、つまりGPUDirect RDMAはRDMAプロトコルとは異なるんですね！でも、GPUDirect RDMAは少なくともRDMAプロトコルを使用しているのでしょうか？そうだといいのですが。そうでなければ、本当に混乱してしまいます。&lt;/p&gt;&#10;&lt;p&gt;GPUDirect RDMAは、NVIDIAが提供するGPUDirectテクノロジーファミリーに含まれる技術の一つです。これにより、ネットワークカードはCPUメモリのコピーやオペレーティングシステムのルーチンを介さずに、GPUメモリに直接アクセスしてデータを送受信できます。GPUDirect RDMAは、イーサネット、InfiniBand、またはRoCEに対応したあらゆるネットワークフレームワークで有効化できます。&lt;/p&gt;&#10;&lt;p&gt;さて、少なくともGPUDirect RDMAはイーサネット（ETH）でもInfiniBand（IB）でも、どのトランスポート層でも実装できることは明らかです。では、GPUNetIOとは何でしょうか？そして、RDMAとどのように関係しているのでしょうか？答えは簡単です。GPUNetIOは、その名前が示すように、ネットワークカード上でGPU Direct RDMAを実装する&lt;em&gt;ネットワーク&lt;/em&gt;ベースのものです。これは、GPU Directがネットワークカードから駆動される必要があるという意味ではなく、GPUNetIOがネットワークカードの種類に特化したバージョンであるという意味です。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpunetio-packet-xfer.webp" alt="GPUNetIO: GPU中心のデータ転送" /&gt;&lt;/p&gt;&#10;&lt;p&gt;上記の図の GPUNetIO &lt;a href="https://docs.nvidia.com/doca/sdk/doca&amp;#43;gpunetio/index.html" class="external-link" target="_blank" rel="noopener"&gt;ドキュメント&lt;/a&gt; にある「CUDA」ボックスは少し分かりにくいです。これは GPU 上で実行されるカーネルだと推測されますが、ドキュメントに何が書かれているか確認してみましょう。&lt;/p&gt;&#10;&lt;p&gt;従来のアプローチでは、CPU 中心のモデルに依存することが多く、CPU は NIC と連携して GPUDirect RDMA を使用して GPU メモリにパケットを受信します。その後、CPU は GPU 上の CUDA カーネルにパケットの処理を通知します。… DOCA GPUNetIO は、CPU をクリティカル パスから排除する GPU 中心のソリューションを提供することで、この課題に対処します。&lt;/p&gt;&#10;&lt;p&gt;私にはまだ完全には理解できていません。クリティカルパスは「GPU中心」とありますが、クリティカルパスとは何でしょうか？図に示されているステップ(1)から(4)のことでしょうか？そして、CPUは依然として何のために必要なのでしょうか？答えを見つけるには、「非同期カーネル開始」モードを確認する必要があります。これは、「&lt;em&gt;GPU CUDAカーネルがネットワーク通信を制御してデータを送受信する&lt;/em&gt;」可能性として説明されています。GPUDirect IKAは以下を可能にします。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;GPUはイーサネット通信（イーサネット/IP/UDP/TCP/ICMP）を制御できます。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;GPUはRDMA通信を制御できます（InfiniBandまたはRoCEをサポート）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;アプリケーションのクリティカルパスではCPUの介入は不要です&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;つまり、これは100％明確です。&lt;/p&gt;&#10;&lt;img src='https://qsysarch.com/images/gpunetio-and-doca.webp' style="width:280px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;GPU Direct RDMAは、CPUによるステージングコピーなしで、GPUメモリとの間で直接データ転送を可能にします。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;GPU Direct AKIは、GPUがネットワークカードを「制御」することを可能にします。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;GPUNetIOは、GPUダイレクトRDMAとAKIの両方のテクノロジーを処理するソフトウェアコンポーネントです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;DOCAは、NVIDIAがGPUNetIO対応ハードウェア（その他）をプログラミングするために提供するSDKです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;混乱の原因は、「AKI」を「GPU Direct RDMA + AKI」と表記すべきであるという事実にあると思われます。なぜなら、AKIはCPUをバイパスできるRDMA機能を補完するものだからです。&lt;/p&gt;</description></item><item><title>錆びの秘訣：より正確な種類？</title><link>https://qsysarch.com/ja/posts/0004-rust-to-the-rescue/</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/0004-rust-to-the-rescue/</guid><description>&lt;img src='https://qsysarch.com/images/cpu-gpu-simd.webp' style="width:280px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;Raph Levien は、非常に巧妙な Rust ベースの SIMD 設計を使用して、最速の &lt;a href="https://medium.com/@raphlinus/inside-the-fastest-font-renderer-in-the-world-75ae5270c445" class="external-link" target="_blank" rel="noopener"&gt;グリフ レンダリング エンジン&lt;/a&gt; を超効率的に実装したことで有名です。彼の作品は、2023 年に &lt;a href="https://www.linkedin.com/company/bestechnic/" class="external-link" target="_blank" rel="noopener"&gt;Bestechnics&lt;/a&gt; で SIMD GPU を設計していたときに、私に大きなインスピレーションを与えてくれました。その後、Ralf Levien はこのグリフ レンダリングの &lt;a href="https://raphlinus.github.io/rust/graphics/gpu/2020/06/13/fast-2d-rendering.html" class="external-link" target="_blank" rel="noopener"&gt;GPU&lt;/a&gt; バージョンにも取り組みました。&lt;/p&gt;&#10;&lt;p&gt;そこで、彼の最新の講演「&lt;em&gt;Rustはいかにして勝利したか：高性能で信頼性の高いソフトウェアを求めて&lt;/em&gt;」(&lt;a href="https://www.youtube.com/watch?v=k_-6KI3m31M" class="external-link" target="_blank" rel="noopener"&gt;https://www.youtube.com/watch?v=k_-6KI3m31M&lt;/a&gt;)を偶然見つけたとき、私は1時間かけてその講演を見て、学ぶ価値のある洞察を何か得ようと決心しました。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/rust-secret-sauce.webp" alt="Rust Secret Sauce: より正確なタイプ" /&gt;&lt;/p&gt;&#10;&lt;h1 id="問題提起"&gt;&#10; 問題提起&#10; &lt;a class="heading-link" href="#%e5%95%8f%e9%a1%8c%e6%8f%90%e8%b5%b7"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;激戦区（溺れるゾーンとも呼ばれる）は、&lt;em&gt;Rustの秘伝のソース：より正確なタイプ&lt;/em&gt;というタイトルのスライドから始まり、およそ55:00頃です。&lt;/p&gt;&#10;&lt;img src='https://qsysarch.com/images/progressive-insight-and-the-drowing-zone.webp' style="width:500px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;56:50で、Raphは「ここで&lt;em&gt;アフィン&lt;/em&gt;型が登場します。クローン可能性を『このインスタンスが1つ存在する』としてモデル化したいのです。そして、この型を使うことで、関数シグネチャで所有権の処理方法を細かく指定できます。最後の例は省略しますが、面白いですよね…」と述べています。&lt;/p&gt;&#10;&lt;p&gt;私は決してRustのエキスパートを気取っているわけではありませんし、Goの方が少し好きだという自覚もあります。そこで質問なのですが、&lt;a href="https://users.rust-lang.org/t/what-are-affine-types-in-rust/23755" class="external-link" target="_blank" rel="noopener"&gt;&lt;em&gt;アフィン型&lt;/em&gt;&lt;/a&gt; が実際に何を意味するのか、理解できるでしょうか？また、膨大な知識の海に溺れることなく、平易な言葉で説明してもらえるでしょうか？&lt;/p&gt;&#10;&lt;p&gt;YouTubeのコメントで指摘されているもう一つの疑問点ですが、最後の関数の戻り値の型は、&lt;code&gt;Cow&amp;lt;&amp;amp;'a [T]&amp;gt;&lt;/code&gt;ではなく&lt;code&gt;Cow&amp;lt;'a, [T]&amp;gt;&lt;/code&gt;であるべきのようです。正直なところ、これは量子アルゴリズムよりも複雑に思えます。しかし、もしかしたらそうである必要はないのかもしれません。&lt;/p&gt;&#10;&lt;p&gt;それでは、これらの「より正確なタイプの秘訣」の例を詳しく見ていきましょう。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;fn α( l: &amp;amp;[T] ) → Vec&amp;lt;T&amp;gt; &lt;/code&gt;: 常に割り当てを行い、入力には影響しません&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;fn β( l: Vec&amp;lt;T&amp;gt; ) → Vec&amp;lt;T&amp;gt; &lt;/code&gt;: 入力を消費し、割り当てを再利用します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;fn δ( l: &amp;amp;mut Vec&amp;lt;T&amp;gt; )&lt;/code&gt;: 割り当てなし、入力ベクトルを変更するだけ&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;fn ω( l: &amp;amp;'a [T]) → Cow&amp;lt;'a,[T]&amp;gt;&lt;/code&gt;: 割り当てが発生する可能性がある。重複が末尾のみにある場合は割り当てを回避する。&lt;/p&gt;</description></item><item><title>量子システムを改善するためにAIを活用する</title><link>https://qsysarch.com/ja/posts/using-ai-to-improve-quantum-systems/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/using-ai-to-improve-quantum-systems/</guid><description>&lt;img src='https://qsysarch.com/images/qcs-NN-tight-coupling.webp' style="width:420px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;AI、より正確にはニューラルネットワーク（NN）の利用は、2025年のあらゆるシステムにおいて、当然のことながらほぼ必須の要素となるでしょう。当然ながら、このテーマに関する研究論文は数多く発表されています。しかし、最新の研究では、量子制御システムへのニューラルネットワークの高性能な統合を可能にすることで、その限界をさらに押し広げています。&lt;/p&gt;&#10;&lt;p&gt;この記事は、シンガポール量子技術センター&lt;a href="https://www.cqt.sg/" class="external-link" target="_blank" rel="noopener"&gt;CQT/NUS&lt;/a&gt;の研究、特にアーサー・ストラウス氏の研究に基づいています。私は前回の&lt;a href="https://www.sqa-conference.org/" class="external-link" target="_blank" rel="noopener"&gt;SQA&lt;/a&gt;イベントで、ストラウス氏と意見交換をする機会に恵まれました。&lt;/p&gt;&#10;&lt;h1 id="強化学習が救世主となる"&gt;&#10; 強化学習が救世主となる&#10; &lt;a class="heading-link" href="#%e5%bc%b7%e5%8c%96%e5%ad%a6%e7%bf%92%e3%81%8c%e6%95%91%e4%b8%96%e4%b8%bb%e3%81%a8%e3%81%aa%e3%82%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;彼らのアイデアは実に興味深いものです。強化学習のアプローチを用いて、量子制御システムが量子ビット制御（ゲートとも呼ばれる）を調整できるようにし、制御効率を最大化することを目的とした報酬システムに基づいて制御を行うというものです。なぜこれが重要なのか疑問に思うかもしれません。前の記事（&lt;a href="https://qsysarch.com/posts/2-wheres-my-qubit/" &gt;link&lt;/a&gt;）で説明したように、量子ビットは非常に繊細な「実体」であり、細心の注意が必要です。そして、ここでニューラルネットワークが登場し、この注意の質（忠実度とも呼ばれる）を定量化するのに役立ちます。&lt;/p&gt;&#10;&lt;p&gt;これはどのように機能するのでしょうか？強化学習は、反復的な環境→エージェント報酬システム（下の図の「a」）を介して学習される観察/行動のサイクルに基づいており、通常はGPUで実行され、学習後は量子制御システム（下の図の「b」）上の密結合行列乗算器（または&lt;a href="https://arxiv.org/html/2406.02528v1" class="external-link" target="_blank" rel="noopener"&gt;しない&lt;/a&gt;!)で実行されます。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/quantum-reinforcement-learning.webp" alt="スピン量子ビットと量子ドット回路" /&gt; クレジット: &lt;a href="https://www.nature.com/articles/s42005-021-00684-3" class="external-link" target="_blank" rel="noopener"&gt;Nature&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;観測（キュービット読み出しとも呼ばれる）によって量子状態が破壊されるため、学習サイクルではまずキュービットの状態をリセットし、制御ゲートを実行し、キュービットの状態を読み出し、その情報をエージェントに供給します。&lt;/p&gt;&#10;&lt;h2 id="rlシステム主要コンポーネント"&gt;&#10; RLシステム：主要コンポーネント&#10; &lt;a class="heading-link" href="#rl%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e4%b8%bb%e8%a6%81%e3%82%b3%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%8d%e3%83%b3%e3%83%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;強化学習の4つの構成要素を詳しく見ていきましょう。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;環境&lt;/em&gt;とは、量子コントローラと量子ビット自体を指します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;これらの操作は、RF発生器エンジンのさまざまな「つまみ」またはパルスパラメータを調整することです。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;*観測とは、環境によって操作された後の量子ビットの特性のことです。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;エージェントは、観測された量子ビットの特性に反応し、それに応じてパルスパラメータを調整するポリシーを学習します。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="強化学習システム学習方法"&gt;&#10; 強化学習システム：学習方法&#10; &lt;a class="heading-link" href="#%e5%bc%b7%e5%8c%96%e5%ad%a6%e7%bf%92%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%ad%a6%e7%bf%92%e6%96%b9%e6%b3%95"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;強化学習の手法は、大きく分けて価値ベース型と方策勾配ベース型の2つのカテゴリーに分類できる。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://gibberblot.github.io/rl-notes/single-agent/value-iteration.html" class="external-link" target="_blank" rel="noopener"&gt;価値ベース&lt;/a&gt;手法は、価値関数を推定し、そこからポリシーを導出することに重点を置いています。&lt;a href="https://gibberblot.github.io/rl-notes/single-agent/policy-based.html" class="external-link" target="_blank" rel="noopener"&gt;ポリシー勾配&lt;/a&gt;手法は、勾配上昇法によって期待累積報酬を最大化することで、ポリシーを直接最適化します。&lt;/p&gt;&#10;&lt;p&gt;ポリシー反復の利点は、計算コストは高くなりますが、価値ベースの方法よりもはるかに速く収束することです。そこで、計算複雑度を低減するポリシー勾配アルゴリズムが登場します。&lt;em&gt;reinforce&lt;/em&gt; アルゴリズムを含むポリシー勾配アルゴリズムの例を以下に示します。&lt;/p&gt;&#10;&lt;img src='https://qsysarch.com/images/reinforcement-learning-01.webp' style=""&gt;&#10;&lt;p&gt;上記の図において、「s」は状態、「a」は行動、「r」は報酬を表します。&lt;/p&gt;&#10;&lt;h2 id="強化学習システム反復とエピソード"&gt;&#10; 強化学習システム：反復とエピソード&#10; &lt;a class="heading-link" href="#%e5%bc%b7%e5%8c%96%e5%ad%a6%e7%bf%92%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e5%8f%8d%e5%be%a9%e3%81%a8%e3%82%a8%e3%83%94%e3%82%bd%e3%83%bc%e3%83%89"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;強化学習において、エピソードとイテレーションは異なる概念である。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;エピソード:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;エピソードとは、エージェントと環境との間の一連の完全な相互作用であり、初期状態から始まり、終端状態（または最大時間範囲）で終了します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;例: チェスのゲームでは、1エピソードは完全なゲーム、つまり開始盤面からチェックメイト、引き分け、または投了までを指します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;反復:&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;一部の論文やコードでは、1回の反復はエージェントと環境の相互作用の1つの時間ステップ（状態→行動→報酬→次の状態）を意味する場合があります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;最適化の文脈では、1回の反復とは、学習アルゴリズムの1回の更新ステップ（例えば、複数のエピソードや遷移に基づく勾配降下法の1ステップ）を意味する場合があります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;img src='https://qsysarch.com/images/reinforcement-learning-02.webp' style=""&gt;&#10;&lt;p&gt;それでは、エピソードのサンプリングから始めて、これらのアイデアを一つずつ実行に移していきましょう。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;エピソードは、キュービットが &lt;em&gt;|O&amp;gt;&lt;/em&gt; 状態にあるところから始まります。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;観察・行動ループを開始する&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;エージェントは量子ビットの状態を観測する&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;そして、そのポリシーに従って次のパルスセグメントのパラメータを選択します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;実際に動作を体験して探求する：&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;決定論的に「最善の」行動（例えば、最も確率の高い行動）を選択する代わりに、サンプリングとは、エージェントが確率に従って、その分布からランダムに1つの行動を選択することを意味します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;このサンプリングは、&lt;em&gt;reinforce&lt;/em&gt; メソッドにおいて不可欠です。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;スコア&lt;/em&gt;関数を計算します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;ネットワークパラメータを特定の方向に微調整した場合に、選択された行動が発生する可能性がどれだけ高くなる（または低くなる）かを測定する。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;つまり、サンプリングされた動作に対して∇(𝜃)を評価します。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;パルスプログラムの終了時に報酬を計算します。&lt;/p&gt;&#10;&lt;p&gt;方策勾配強化学習では、スコアと報酬が共に学習の更新を促進する。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;報酬：環境からの外部フィードバック（タスクのパフォーマンス）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;スコア&lt;/em&gt;: ポリシーのパラメータに対する内部感度（対数確率の勾配）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h1 id="実践的な徹底解説フラックスとジャックス"&gt;&#10; 実践的な徹底解説：フラックスとジャックス&#10; &lt;a class="heading-link" href="#%e5%ae%9f%e8%b7%b5%e7%9a%84%e3%81%aa%e5%be%b9%e5%ba%95%e8%a7%a3%e8%aa%ac%e3%83%95%e3%83%a9%e3%83%83%e3%82%af%e3%82%b9%e3%81%a8%e3%82%b8%e3%83%a3%e3%83%83%e3%82%af%e3%82%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;完成予定&lt;/p&gt;</description></item><item><title>について</title><link>https://qsysarch.com/ja/about/</link><pubDate>Mon, 18 Aug 2025 11:01:21 -0400</pubDate><guid>https://qsysarch.com/ja/about/</guid><description>&lt;div style="float: right;vertical-align: middle;padding-left: 20px;text-align: center;"&gt; &lt;img src="https://qsysarch.com/images/quantum-computing.svg" height="150" style="vertical-align: middle;"&gt; &lt;br&gt; &lt;img src="https://qsysarch.com/images/netswitch.png" height="80" style="vertical-align: middle;"&gt; &lt;br&gt; &lt;img src="https://qsysarch.com/images/quantum-computing.svg" height="150" style="vertical-align: middle;"&gt; &lt;/div&gt;&#10;&lt;p&gt;ロナンです。&lt;a href="https://equal1.com/" class="external-link" target="_blank" rel="noopener"&gt;Equal1&lt;/a&gt;で量子ソフトウェアエンジニアリングを統括しています。私たちは、高度なスピンベース技術を用いて、完全統合型の量子コンピュータを設計・構築しています。Equal1は、アイルランド、アメリカ、カナダ、日本、ルーマニア、そして私が住んでいるオランダにオフィスを構えています。以前は、量子制御システムを開発する&lt;a href="https://qblox.com/" class="external-link" target="_blank" rel="noopener"&gt;Qblox&lt;/a&gt;で働いていました。&lt;/p&gt;&#10;&lt;p&gt;Equal1では、高性能量子コンピュータ「RacQ」を稼働させるフルスタックシステムの構築に注力しています。このシステムは、数千個の論理補正量子ビット、さらにはそれ以上の規模まで拡張できるように設計されています。量子プロセッサ（QPU）の「頭脳」とも呼ばれています。&lt;/p&gt;&#10;&lt;p&gt;毎日新しいことを学べる上に、知識豊富で優秀な同僚たちと一緒に仕事ができるので、私の仕事はとても魅力的です。このブログを始めたのは、私が学んだことを皆さんと共有するためです。もちろん、秘密を漏らすつもりはありませんよ！&lt;/p&gt;&#10;&lt;p&gt;お気軽にronanまでメールしてください。ronan&lt;i id='d' style='font-transform: italic'&gt;&lt;/i&gt;さらに詳しく知りたい場合は、&lt;a href="https://www.linkedin.com/in/ronanj/" class="external-link" target="_blank" rel="noopener"&gt;LinkedIn&lt;/a&gt;でつながってください！&lt;/p&gt;&#10;&lt;script&gt;&#10;document.getElementById('d').innerHTML = "@"+window.location.hostname;&#10;&lt;/script&gt;&#10;&lt;center&gt;***&lt;/center&gt;&#10;&lt;p&gt;&lt;em&gt;Disclaimer&lt;/em&gt;: While I work at Equal1 by the day, this blog is a personal project and does not reflect the views of my employer. The thoughts, ramblings, and opinions shared here are mine alone and haven&amp;rsquo;t been vetted, approved or modified by anyone but myself.&lt;/p&gt;&#10;&lt;style&gt;&#10;.ml-embedded {&#10;border:1px solid black;&#10;background-color: #f6f6f6;&#10;text-align: center;&#10;border-radius: 5px;&#10;margin: 20px 0px;&#10;}&#10;&lt;/style&gt;&#10;&lt;div class="ml-embedded" data-form="PlCUKW"&gt; &lt;/div&gt;&#10;&lt;center&gt;***&lt;/center&gt;&#10;&lt;h1 id="システムアーキテクチャの概要"&gt;&#10; システムアーキテクチャの概要&#10; &lt;a class="heading-link" href="#%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e3%82%a2%e3%83%bc%e3%82%ad%e3%83%86%e3%82%af%e3%83%81%e3%83%a3%e3%81%ae%e6%a6%82%e8%a6%81"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="見出しへのリンク"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;見出しへのリンク&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;Qblox在籍時の私の役割はシステムアーキテクトでした。以下は、当時の私の役割に関するメモです。&lt;/p&gt;</description></item><item><title>私の量子ビットはどこ？</title><link>https://qsysarch.com/ja/posts/0002-wheres-my-qubit/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/0002-wheres-my-qubit/</guid><description>&lt;p&gt;量子ビットの興味深い点のひとつは、それらがどこにあるのか常に正確に把握できるとは限らないということです。とはいえ、これは驚くべきことではありません。量子コンピューティングはまだ開発の初期段階にあるからです。トランジスタの研究が行われていた時代を思い出してみてください。当時、トランジスタが期待どおりに機能しているかどうかを判断するために、大型の試験装置が使用されていました。量子ビットについても、現在ではそれと似たような状況です。&lt;/p&gt;&#10;&lt;p&gt;要は、実際に量子ビットと「会話」できているかどうかを確認するには、多くの調整が必要だということです。「会話」と書きましたが、量子ビットはノイズに非常に敏感なので、おそらく「ささやき声」の方が適切な表現だったでしょう。しかし実際には、「量子ビットとの会話」は慣習的に「制御と読み出し」と表現されます。&lt;/p&gt;&#10;&lt;p&gt;その考え方は単純だ。まず、特定の周波数で量子ビットにささやきかけ、量子ビットが反応して「量子ビット」を読み出すかどうかを見る。反応する場合もあれば、しない場合もある。つまり、量子ビットを見つけるには多くの調整作業が必要であり、それが現代の量子物理学者や実験家が多くの時間を費やしている作業なのだ。&lt;/p&gt;&#10;&lt;center&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/josephson-qubit-readout.png" alt="キュービット読み出し信号" /&gt; クレジット: &lt;a href="https://www.nature.com/articles/ncomms11417" class="external-link" target="_blank" rel="noopener"&gt;ジョセフソンパラメトリック発振器によるキュービット読み出し&lt;/a&gt;&lt;/p&gt;&#10;&lt;/center&gt;&#10;&lt;p&gt;さらに興味深いのは、1つの量子ビットが「発見」されると、ゲームは続き、プロセッサ（ここでは「QPU」または量子処理ユニットと呼ぶ）に配置された一連の量子ビットの中から1つの量子ビットを見つけ出す必要があるということです。&lt;/p&gt;&#10;&lt;center&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/spin-qubits-quantum-dot.png" alt="スピン量子ビットと量子ドット回路" style="width: 100%; max-width: 500px;"/&gt; クレジット: &lt;a href="https://qdev.nbi.ku.dk/research/solid-state_qubits/" class="external-link" target="_blank" rel="noopener"&gt;ニールス・ボーア研究所&lt;/a&gt;&lt;/p&gt;&#10;&lt;/center&gt;&#10;&lt;p&gt;一見すると単純そうに見えますが、量子ビット信号間の干渉を起こさずに、同時にすべての量子ビットにささやくように指示しなければならないことを考えてみてください。ここで語るべきことはたくさんありますが、これはこのブログの範囲を超えています。興味があれば、&lt;a href="https://arxiv.org/pdf/2412.01183v3" class="external-link" target="_blank" rel="noopener"&gt;超伝導量子チップのためのニューラルネットワークベースの周波数最適化&lt;/a&gt;という論文から始めてみてください。&lt;/p&gt;&#10;&lt;p&gt;ここで覚えておくべき重要な点は、量子コンピュータを開発する前に、まず量子ビットの制御と読み出しに関して予測可能な性能を持つ量子演算ユニット（QPU）を製造できなければならないということです。この分野では現在多くの進展が見られるため、この課題は今後5年以内に解決されると期待できます。&lt;/p&gt;&#10;&lt;p&gt;一方、必要なチューニング作業には素晴らしい点があり、そこでAI/MLが重要な役割を果たします。これについては次回の記事で詳しく解説しますので、お楽しみに！&lt;/p&gt;</description></item><item><title>qsysarch.com の利用開始</title><link>https://qsysarch.com/ja/posts/0001-getting-started/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/0001-getting-started/</guid><description>&lt;p&gt;このブログは、量子コンピュータを自作するための実践的で分かりやすいガイドとなることを目指しています。&lt;/p&gt;&#10;&lt;p&gt;量子コンピュータの構築が簡単なことだと言いたいわけではありません。むしろ、専門家ではない人にも量子コンピュータの構築方法を分かりやすく説明できる方法があれば、非常に役立つだろうということです。私は、標準的なデスクトップコンピュータの構築方法に例えるのが好きです。CPU、メモリ、ディスク、GPU、これらすべてがマザーボード上に搭載されています。では、量子コンピュータはどうでしょうか？同様の方法で構築できるのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;量子コンピュータが構築できた場合（そして、私は今後5年以内に実現することを願っています）、次の大きな疑問は、それをどのように活用し、有用な結果を得るかということです。通常の（古典的な）コンピュータで使用しているC言語のような、一般的なプログラミング言語を使用できるのでしょうか？それとも、量子的な結果や観測を扱うためには、新しい思考方法やメンタルモデルが必要なのでしょうか？&lt;/p&gt;&#10;&lt;p&gt;このブログで取り上げたい主な質問は2つあります。量子コンピュータを構築するために必要なものと、それをどのように活用するかです。量子物理学の知識はなくても構いませんが、通常のコンピュータがどのように構築され、最終的にどのようにプログラムされるか（あるいは最近では「バイブコーディング」と呼ばれるもの）についてはご存知であることを前提とします。&lt;/p&gt;&#10;&lt;p&gt;自己紹介を少しさせてください。私はデルフトにある成長企業Qbloxで、量子制御スタックの開発に携わっています。ハードウェアとソフトウェアの両方を含むシステムアーキテクチャを担当し、ソフトウェアが可能な限り効率的に動作するように最適化することに注力しています。とてもやりがいのある仕事なので、このブログで学んだことを皆さんと共有したいと思っています。もちろん、秘密を漏らすつもりはありません。&lt;/p&gt;&#10;&lt;p&gt;Kickstarterプロジェクトの一環として、私が勤務する会社の競合企業であるQuantum Machinesが最近投稿したコミックストリップを紹介したいと思います。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qm-step5.jpeg" alt="quantum-for-dummies" /&gt; (画像クレジット: &lt;a href="https://www.linkedin.com/posts/nathan-levy_java-kotlin-software-activity-7351322194876014592-9AHV?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAAA6rd0BajjuLiGtz4MFPiUjNbnRLFMpIzM%27" class="external-link" target="_blank" rel="noopener"&gt;QM&lt;/a&gt;)&lt;/p&gt;&#10;&lt;p&gt;この漫画は、量子コンピュータを「制御する」ことの難しさを、興味深い比喩で表現しています。それは、「何百ものユーザー（量子コントローラ）が何千もの量子ビット（量子素子）を並列かつ完全にパイプライン化された同期状態で制御し、しかもナノ秒単位の精度で動作させる」というものです。さらに興味深いのは、これらの数が5年後（2030年）には1000倍にもなるため、この課題はますます刺激的なものになるということです。&lt;/p&gt;</description></item><item><title/><link>https://qsysarch.com/ja/epigraph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/epigraph/</guid><description>&lt;h1&gt;量子ビットを超えて：スケーラブルで異種混在型の&lt;b&gt;量子&lt;/b&gt;コンピューティング&lt;b&gt;システムの&lt;/b&gt;&lt;b&gt;設計&lt;/b&gt;&lt;/h1&gt;&#10;&lt;p&gt;量子コンピューティングは、量子ビットを操作する魔法のような量子処理ユニット（QPU）として描かれることが多い。しかし実際には、量子優位性を実現するには、多くの高性能かつ多様なシステムが連携して機能する必要がある。このブログでは、このエコシステムについて探究する。&lt;/p&gt;</description></item><item><title>自律走行車のための強靭なネットワーク</title><link>https://qsysarch.com/ja/posts/resilient-networking-for-autonoumous-vehicules/</link><pubDate>Sat, 01 Jan 0000 00:00:00 +0000</pubDate><guid>https://qsysarch.com/ja/posts/resilient-networking-for-autonoumous-vehicules/</guid><description>&lt;p&gt;これは、&lt;a href="https://unece.org/sites/default/files/2023-03/ECE-TRANS-WP.1-2023-Presentation-21e.pdf" class="external-link" target="_blank" rel="noopener"&gt;VayNet&lt;/a&gt;のネットワークアーキテクチャの非常に簡単な概要です。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/resilient-networking/autonomous-vehicule-resilient-networking-architecture.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;4重冗長ネットワークチャネル（スマートパケットスプレーチャネル多重化を使用）の使用に加え、TCPスタック内の「ECN」（明示的制御通知）メカニズムを使用して、&lt;a href="https://en.wikipedia.org/wiki/L4S" class="external-link" target="_blank" rel="noopener"&gt;L4S&lt;/a&gt;、別名低遅延、低損失、スケーラブルネットワークスタックの使用も宣伝しています。&lt;a href="https://amarisoft.com/" class="external-link" target="_blank" rel="noopener"&gt;Amarisoft&lt;/a&gt;を使用してエミュレート環境でL4Sの効率を検証する方法を見るのは興味深いでしょう。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/resilient-networking/l4s.webp" alt="" /&gt; (画像出典: &lt;a href="https://www.nokia.com/bell-labs/research/l4s/" class="external-link" target="_blank" rel="noopener"&gt;Nokia Bell Labs&lt;/a&gt;)&lt;/p&gt;&#10;&lt;p&gt;また、ニューラルネットワークに基づくルーティングの利用についても言及する価値がある。おそらく強化学習を用いて、ネットワーク接続性（遅延とRSSIで測定）を最大化することで経路を最適化し、車両が都市部の「セルラーシャドウ」エリアに陥るのを防ぐのだろう。&lt;/p&gt;&#10;&lt;p&gt;最後に、遠隔操作はフェイルセーフである必要があり、つまり、最小リスク操縦（MRM）システムが車両内で自律的に動作できる必要がある。&lt;/p&gt;&#10;&lt;p&gt;このメモで使用されているDrawIO図：&lt;/p&gt;&#10;&lt;div class="drawio-snipet"&gt;&#10;&lt;img src="https://qsysarch.com/images/resilient-networking/autonomous-vehicule-resilient-networking-architecture.webp"&gt;&lt;br&gt;&#10;&lt;a href='https://qsysarch.com/images/resilient-networking/autonomous-vehicule-resilient-networking-architecture.drawio'&gt;.drawio&lt;/a&gt; &#10;&lt;a href='https://qsysarch.com/images/resilient-networking/autonomous-vehicule-resilient-networking-architecture.webp'&gt;.webp&lt;/a&gt; &#10;&lt;a href='https://qsysarch.com/images/resilient-networking/autonomous-vehicule-resilient-networking-architecture.svg'&gt;.svg&lt;/a&gt;&lt;br&gt;autonomous vehicule resilient networking architecture&lt;/a&gt;&#10;&lt;/div&gt;</description></item></channel></rss>