<?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/zh-hk/</link><description>Recent content on QSysArch - Quantum Computer System Architecture</description><generator>Hugo</generator><language>zh-hk</language><lastBuildDate>Fri, 31 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://qsysarch.com/zh-hk/index.xml" rel="self" type="application/rss+xml"/><item><title>QPU：量子處理單元</title><link>https://qsysarch.com/zh-hk/qpu/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/qpu/</guid><description>&lt;p&gt;要找到超導量子位元晶片矽片的圖片並不總是那麼容易。本頁面旨在收集公開可用的圖片，專門針對超導量子位元（超導量子位元和自旋量子位元）。&lt;/p&gt;&#10;&lt;p&gt;註：此項目仍在進行中 - 最後更新：2026年7月&lt;/p&gt;&#10;&lt;h2 id="麻省理工學院電子研究實驗室-rle"&gt;&#10; 麻省理工學院電子研究實驗室 (RLE)&#10; &lt;a class="heading-link" href="#%e9%ba%bb%e7%9c%81%e7%90%86%e5%b7%a5%e5%ad%b8%e9%99%a2%e9%9b%bb%e5%ad%90%e7%a0%94%e7%a9%b6%e5%af%a6%e9%a9%97%e5%ae%a4-rle"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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) 左圖：單一通道的放大圖。 (c) 諧振器與饋線之間電容耦合區域的放大圖。 (d) 射頻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="#%e8%98%87%e9%bb%8e%e4%b8%96%e8%81%af%e9%82%a6%e7%90%86%e5%b7%a5%e5%ad%b8%e9%99%a2%e9%87%8f%e5%ad%90%e8%a3%9d%e7%bd%ae%e5%af%a6%e9%a9%97%e5%ae%a4"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;量子裝置實驗室&lt;/a&gt;小組。&lt;/p&gt;&#10;&lt;p&gt;左圖：8量子位元量子處理器，利用單一偵測通道實現多路復用讀出。右圖：如圖所示，將17個量子位元（黃色部分）排列成特定結構，即可實現距離為3的糾錯表面碼。尺寸為14.3毫米×14.3毫米。&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毫米×14.3毫米。 " style="width: 100%; max-width: 31%;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;QuTech / Vandersypen 實驗室&lt;/p&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; ![帶有片上諧振器和量子點的量子晶片的光學顯微鏡照片](/images/qpu-chip/qutech-2019-02.jpg &amp;ldquo;49%&amp;rdquo;&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：量子糾錯邏輯量子位元（第一部分）</title><link>https://qsysarch.com/zh-hk/posts/quantum-error-correction-fondation-concepts/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;Riverlane&lt;/a&gt;&lt;/div&gt;&#10;&lt;p&gt;但實際上，這第一步遠非顯而易見。如何創建和維護這些邏輯量子位元？例如，從量子控制系統（QCS）的角度來看（例如 QM &lt;a href="https://www.quantum-machines.co/products/opx1000/" class="external-link" target="_blank" rel="noopener"&gt;OPX1000&lt;/a&gt;、ZI 的 [ZQCS](&lt;a href="https://www.zhinst.com/europe/en/products/zqcs-quantum-conptro-quant" class="external-link" target="_blank" rel="noopener"&gt;https://www.zhinst.com/europe/en/products/zqcs-quantum-conptro-quant&lt;/a&gt; Cluster](&lt;a href="https://qblox.com/products/cluster" class="external-link" target="_blank" rel="noopener"&gt;https://qblox.com/products/cluster&lt;/a&gt;)），「操作」或「協調」邏輯量子位元需要什麼？一旦這個邏輯量子位元“準備就緒”，又該如何透過由單量子位元閘和雙量子位元閘組成的量子電路來使用它進行量子計算？這個問題看似簡單，但實際上卻關乎硬體控制系統，以及軟體棧，尤其是編譯器：我們現在是否擁有多個編譯器，一個用於物理量子位元，一個用於邏輯量子位元？此外，在由混合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="#%e5%bd%a2%e6%88%90%e9%82%8f%e8%bc%af%e9%87%8f%e5%ad%90%e6%af%94%e7%89%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;輔助量子位元（黑色圓圈）執行非破壞性奇偶校驗。表面 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="#qec-%e4%bd%9c%e7%82%ba%e4%b8%80%e7%a8%ae%e5%8d%94%e8%ad%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;：每個輔助量子位元用於測量一個泡利&lt;em&gt;算符&lt;/em&gt;，或穩定器：表面碼有兩個穩定器：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;是奇偶校驗穩定器&lt;em&gt;運算子&lt;/em&gt;測量結果的體現。每個測量週期都會產生一個伴隨式位元。&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="#%e5%b0%8f%e6%b8%ac%e9%a9%97%e8%aa%b0%e6%98%af%e9%87%8f%e5%ad%90%e4%bd%8d%e5%85%83%e7%9a%84%e7%bd%aa%e9%ad%81%e7%a6%8d%e9%a6%96"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;在此背景下，請參考下圖（圖片&lt;sub&gt;來源&lt;/sub&gt;：[Laurent Prost &lt;sub&gt;]&lt;/sub&gt; (&lt;a href="https://www.linkedin.com/posts/laurent-prost-product-manager_just-because-ai-generated-content-looks-good-activity-7459167604172083200-good-E" class="external-link" target="_blank" rel="noopener"&gt;https://www.linkedin.com/posts/laurent-prost-product-manager_just-because-ai-generated-content-looks-good-activity-7459167604172083200-good-E&lt;/a&gt; &lt;sub&gt;.&lt;/sub&gt; (&lt;a href="https://alice-bob.com/platform/" class="external-link" target="_blank" rel="noopener"&gt;https://alice-bob.com/platform/&lt;/a&gt;)）。 Z1Z2 和&lt;sub&gt;Z2Z3&lt;/sub&gt;分別代表量子位元 1 和量子位元 2 之間以及量子位元 2 和量子位元 3 之間的聯合奇偶校驗（穩定器）測量。與先前的二維平面圖不同，該圖假設每個物理量子位元僅與其他一個量子位元相連，這表明這是一個一維重複碼。&lt;/p&gt;</description></item><item><title>半導體計量學：原子尺度測量</title><link>https://qsysarch.com/zh-hk/posts/semiconductor-metrology/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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%e9%87%8f%e6%8a%80%e8%a1%93"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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%b8%e9%a1%af%e5%be%ae%e9%8f%a12d"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;傳統的光學顯微鏡（用於生物學）需要光線直接穿過（“透射”）樣本才能檢測相位變化。然而，矽片完全不透明且反射率很高。由於光線無法穿過矽片，因此這些標準系統無法使用。&lt;/p&gt;&#10;&lt;p&gt;晶圓檢測並非直接檢測晶圓表面，而是利用反射光，並有幾種不同的方法：明場、暗場和微分乾涉對比 (DIC)。明場偵測使用垂直照射到晶圓上並反射回來的光線，而暗場偵測則使用以較大傾斜角度照射到晶圓上的光線，這種方法可以檢測凸起的缺陷，例如顆粒污染、細微刮痕和微缺陷。&lt;/p&gt;&#10;&lt;p&gt;對於晶圓而言，最有趣的顯微鏡是微分乾涉對比顯微鏡（DICC）。它利用偏振光和特製的沃拉斯頓棱鏡將光線分成兩束，使其在晶圓表面反射，然後重新組合。透過對晶圓進行類似三維的觀察，它可以揭示微觀的高度差異和表面紋理。 &#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顯微鏡&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h2 id="掃描電子顯微鏡-sem--imagesasic-metrologyscanning-electron-microscopewebpright-hwebp"&gt;&#10; 掃描電子顯微鏡 (SEM) &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/scanning-electron-microscope-internal.webp#right-h300px" alt="" /&gt; ![](/images//asic-metrology/scanning-electron-microscope.webp#right-h.webp.&#10; &lt;a class="heading-link" href="#%e6%8e%83%e6%8f%8f%e9%9b%bb%e5%ad%90%e9%a1%af%e5%be%ae%e9%8f%a1-sem--imagesasic-metrologyscanning-electron-microscopewebpright-hwebp"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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）需要用極細的電子束逐點「掃描」晶圓，然後重建圖像，每個像素的亮度取決於從晶圓上相應位置檢測到的電子數量。掃描過程不使用機械部件，而是利用磁線圈產生磁場，將電子束聚焦到僅幾奈米寬的光點上（與老式笨重的CRT電視機有些類似）。&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%e5%8a%9b%e9%a1%af%e5%be%ae%e9%8f%a1-afm"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;原子力顯微鏡 (AFM) 與掃描電子顯微鏡 (SEM) 有著本質區別：AFM 不使用電子束，而是利用柔性懸臂樑上的超細探針，在原子尺度上「感知」並繪製表面形貌圖，就像盲人閱讀盲文一樣。 AFM 測量的是表面形貌。&lt;/p&gt;&#10;&lt;p&gt;與掃描電子顯微鏡（SEM）類似，原子力顯微鏡（AFM）也是逐點掃描表面。然而，AFM 並非記錄發射的電子，而是測量多個參數，包括探針高度、懸臂梁偏轉和相互作用力，從而產生真正的三維表面圖。&lt;/p&gt;&#10;&lt;p&gt;懸臂梁可以以多種模式與可觀測對象相互作用：在接觸模式下，探針尖端與晶圓保持持續接觸；在輕敲模式下，懸臂梁在其共振頻率附近振盪，與表面的短暫接觸會改變其振盪幅度；此外，還有一種非接觸模式，該模式利用吸引力作為測量原理，但其信噪比通常較低。&lt;/p&gt;</description></item><item><title>xPUs：人工智慧推理硬體加速微架構</title><link>https://qsysarch.com/zh-hk/posts/ai-inference-hardware-acceleration-architecture/</link><pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/posts/ai-inference-hardware-acceleration-architecture/</guid><description>&lt;p&gt;xPU：它是專用處理單元 (PU) 的一個統稱，其中「x」可以代表任何針對特定工作負載定制的運算架構。常見的變體包括 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;這份超短備忘錄旨在深入分析應用於人工智慧推理的 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="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;在檢視人工智慧推理ASIC的市場格局時，最有價值的指標或許並非原始效能，而是供應商的差異化優勢能否在未來3-5年內保持競爭力。從這個角度來看，可以歸納出三個集群：&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;：Extropic、Normal Computing、Unconvential、Mottronix、Akhetonics！ &lt;a href="https://qsysarch.com/images/gpxpus/xPUs-manufacturer-logos.webp" &gt;部分 xPU 製造商&lt;/a&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="#%e9%80%9a%e7%94%a8%e5%b9%b3%e5%8f%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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%e6%95%b4%e5%90%88%e5%95%86"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;</description></item><item><title>量子位元模式：Transmon QPU架構</title><link>https://qsysarch.com/zh-hk/posts/qubit-modalities-transmon-qpi-architecture/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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 架構或模式，因此我將從常見的模式開始：超導 Transmon 量子位元。&lt;/p&gt;&#10;&lt;p&gt;作為參考，右上角的圖片是&lt;a href="https://www.technologyreview.com/2008/12/22/216817/moores-law" class="external-link" target="_blank" rel="noopener"&gt;Fairchild&lt;/a&gt;公司1961年推出的4電晶體積體電路。乍一看，如今的超導量子位元似乎與這款積體電路一樣複雜。事實上，量子產業的發展似乎又回到了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="摩爾定律：矽整合從 60 年代至今的發展歷程" /&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%97%8d%e5%9c%96"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;下圖展示了一個假想的雙量子位元可調超導量子位元（transmon）的組成部分。之所以採用雙量子位元架構，是因為它既可以控制單一量子位元（單量子位元閘），也可以糾纏多個量子位元（雙量子位元閘）。&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 量子位元傳輸子量子處理器架構" /&gt;&lt;/p&gt;&#10;&lt;p&gt;頂部的“5 條線”用於控制（操縱）量子位元狀態以及兩個量子位元之間的相互作用。底部的線用於執行量子位元讀出（即量子位元波函數的坍縮，這是一個破壞性過程）。&lt;/p&gt;&#10;&lt;p&gt;請注意，上圖假設 transmon 架構是可調的，但情況並非總是如此；有些架構不使用可調量子位元，例如 &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及其如何使超導量子乾涉裝置成為可能的詳細論述。有興趣的讀者可以參考&lt;a href="https://www.youtube.com/watch?v=0kl3ucjh2Uw" class="external-link" target="_blank" rel="noopener"&gt;超導：SQUIDS&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-802" 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="#%e9%87%8f%e5%ad%90%e4%bd%8d%e5%85%83%e6%8e%a7%e5%88%b6%e9%81%8e%e7%a8%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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%a9%85%e5%8b%95%e7%b7%9axy-%e6%8e%a7%e5%88%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;對於超導量子位元，XY驅動線透過微波脈衝（4-6 GHz）的弱電容耦合來操縱量子位元。它充當片上天線，施加振盪電場來驅動布洛赫球的旋轉。&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;</description></item><item><title>插圖</title><link>https://qsysarch.com/zh-hk/illustrations/</link><pubDate>Sat, 04 Apr 2026 18:44:19 +0200</pubDate><guid>https://qsysarch.com/zh-hk/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/zh-hk/posts/gemm-kernels/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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="#%e7%90%86%e8%a7%a3%e6%a8%b8%e7%b4%a0%e7%9f%a9%e9%99%a3%e4%b9%98%e6%b3%95%e5%99%a8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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/zh-hk/posts/capacity-and-efficiency-engineering/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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="#%e7%94%a2%e8%83%bd%e8%88%87%e6%95%88%e7%8e%87%e5%b7%a5%e7%a8%8b%e6%94%af%e6%9f%b1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;容量與效率工程建立在三大核心支柱之上：可觀測性、建模和規劃。&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%a7%80%e6%b8%ac%e6%80%a7-%e5%ae%b9%e9%87%8f%e8%88%87%e6%95%88%e7%8e%87%e5%b7%a5%e7%a8%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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/observation-sampling.webp" alt="觀測抽樣" /&gt;&lt;/p&gt;&#10;&lt;p&gt;對於非計算系統而言，有效的可觀測性能夠解釋專案延期的原因。可觀測資料很可能是 ISO9001 標準規定的技術和非技術文檔，這些文檔解釋了專案每個階段所做的可追蹤決策。&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="#%e5%bb%ba%e6%a8%a1-%e5%ae%b9%e9%87%8f%e8%88%87%e6%95%88%e7%8e%87%e5%b7%a5%e7%a8%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="模擬 vs 模擬" /&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%a6%8f%e5%8a%83-%e5%ae%b9%e9%87%8f%e8%88%87%e6%95%88%e7%8e%87%e5%b7%a5%e7%a8%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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/zh-hk/posts/tpu-architecture/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;在人工智慧能耗巨大的今天，張量處理單元（TPU）的出現改變了遊戲規則。它是谷歌專門為機器學習任務定制設計的晶片。&lt;/p&gt;&#10;&lt;p&gt;這份簡短的備忘錄旨在提供 TPU 架構的高階系統視圖，以及自 2016 年誕生以來 TPU 的發展演進。&lt;/p&gt;&#10;&lt;p&gt;我還會嘗試回答這個關鍵問題：既然我們已經有了GPU，為什麼還需要TPU？ TPU有哪些GPU所不具備的優勢？它們與神經形態積體電路相比如何？除了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="張量處理單元隨時間演變" /&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%e5%ad%98%e5%9c%a8%e7%9a%84%e6%84%8f%e7%be%a9%e4%bb%a5%e5%8f%8a%e5%ae%83%e8%a7%a3%e6%b1%ba%e4%ba%86%e5%93%aa%e4%ba%9b%e5%95%8f%e9%a1%8c"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;TPU 與 GPU 有著相同的目標：透過實現大規模並行性來克服摩爾定律減緩帶來的限制：與可用於處理通用運算的傳統 CPU 不同，傳統 CPU 在一定程度上透過多核心概念實現了一定程度的並行性（這要歸功於丹納德縮放定律），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 的核心是脈動陣列，它是一個處理單元矩陣（通常稱為 &lt;em&gt;PE&lt;/em&gt;，在右圖中表示為 &lt;em&gt;MAC&lt;/em&gt;），可以執行平行計算。&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-%e7%9a%84%e6%bc%94%e8%ae%8a"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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%e7%ac%ac%e4%b8%80%e4%bb%a3-tpu"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;TPUv1只花了15個月就開發完成，其主要目標是提升神經網路的推理能力（並非學習能力，而僅僅是推理能力）。為此，Google需要矩陣乘法器，並且不僅要確保高速運行，還要降低功耗。降低功耗的關鍵在於提高記憶體局部性，例如減少外部記憶體和TPU記憶體之間不必要的資料傳輸。這將提高單位控制時間的運算強度，即減少TPU等待資料的空閒時間。&lt;/p&gt;</description></item><item><title>Python AST 重寫：編譯時不降低級別</title><link>https://qsysarch.com/zh-hk/posts/python-ast-rewriting/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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抽象語法樹astapi"&gt;&#10; Python抽象語法樹（AST）API&#10; &lt;a class="heading-link" href="#python%e6%8a%bd%e8%b1%a1%e8%aa%9e%e6%b3%95%e6%a8%b9astapi"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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 中的節點大致分為四大類：&lt;/p&gt;&#10;&lt;h2 id="字面量或常數"&gt;&#10; 字面量或常數&#10; &lt;a class="heading-link" href="#%e5%ad%97%e9%9d%a2%e9%87%8f%e6%88%96%e5%b8%b8%e6%95%b8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="#%e8%ae%8a%e6%95%b8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="#%e8%a1%a8%e9%81%94%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;</description></item><item><title>組織複雜度：多一些架構，少一些管道</title><link>https://qsysarch.com/zh-hk/posts/organizing-complexity/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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="#%e5%be%9e%e6%9b%bc%e5%93%88%e9%a0%93%e5%9f%8e%e5%b8%82%e8%a6%8f%e5%8a%83%e4%b8%ad%e5%ad%b8%e7%bf%92"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;曼哈頓南部狹窄、不規則的街道——街道名稱難以預測，交叉路口角度也千差萬別——與紐約其他地區形成鮮明對比，紐約其他地區街道呈網格狀，街道（從第一街到第220街）和大道（從第一街到第十二街）寬闊，並以直角相交。&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="#%e6%95%b8%e4%bd%8d%e7%b3%bb%e7%b5%b1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="#%e6%ad%a3%e5%b8%b8%e9%8f%a1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;在法國，企業和用戶承受著歐洲最高的行政繁瑣程度之一，根據法國長期觀察站估計，這相當於GDP的6個百分點（約1700億歐元）。過去的簡化措施往往是一次性的，無論是透過審查（通常被新的文本所掩蓋）還是重寫法律條文（通常隨後又被修改，增加了複雜性）。&lt;/p&gt;&#10;&lt;p&gt;有兩種途徑可以擴大這項工作的規模並使其長期有效。第一種途徑是重組行政生產，引入受軟體/資訊技術城市化啟發的架構原則和以使用者為中心的方法（而非以行政為中心的方法），正如新加坡所做的那樣。&lt;/p&gt;&#10;&lt;p&gt;第二點是評估「時間稅」並設定目標—例如，減少500億歐元。可以從有限的手段入手－例如，抽樣調查前100項主要手續所花費的時間。一個名為「規範鏡」（normoscope）的協作工具還可以讓使用者分享他們在辦理手續時遇到的不足之處。鑑於法國家庭的經濟狀況比以往任何時候都更加拮据，我們需要幫助他們擺脫那些對生活品質沒有好處的負擔。&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="#%e9%a1%8c%e5%a4%96%e8%a9%b1%e5%a6%82%e4%bd%95%e7%b5%84%e7%b9%94%e8%a6%8f%e6%a8%a1%e5%8c%96%e4%bc%81%e6%a5%ad%e4%b8%ad%e7%9a%84%e8%a4%87%e9%9b%9c%e6%80%a7"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="#%e6%b9%af%e5%bb%9a%e6%88%bf%e5%92%8c%e8%8f%9c%e5%96%ae"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;把新創公司想像成專營湯的餐廳。第一道湯大獲成功，帶動了餐廳的發展。隨著餐廳規模的擴大，廚師人數增加，食譜也隨之增多，營運變得更加複雜。每增加一位新廚師和一道新食譜，廚房的運作速度就會減慢。為了解決這個問題，新創公司的創辦人決定設立一個專案管理辦公室（PMO），以確保一切步入正軌。&lt;/p&gt;</description></item><item><title>神經形態積體電路：高階系統架構</title><link>https://qsysarch.com/zh-hk/posts/neuromorphic-ics-system-architecture/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/posts/neuromorphic-ics-system-architecture/</guid><description>&lt;p&gt;最近在討論Neuralink公司時，我聽說了神經形態處理單元（NPU）。 Innatera Pulsar晶片（見右圖）雖然與量子運算無關，但我認為花點時間了解這種新的處理架構會很有趣。事實上，該領域領先的積體電路供應商之一是一家名為Innatera的荷蘭公司。 Innatera最新的晶片Pulsar是基於低功耗脈衝神經網路（見右圖）。&lt;/p&gt;&#10;&lt;p&gt;在本備忘錄中，我將嘗試逆向工程盡可能多的信息，以了解這些神經形態積體電路的架構、脈衝神經網路的設計以及用於對這些設備進行程式設計的軟體堆疊。&lt;/p&gt;&#10;&lt;h1 id="硬體架構"&gt;&#10; 硬體架構&#10; &lt;a class="heading-link" href="#%e7%a1%ac%e9%ab%94%e6%9e%b6%e6%a7%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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/" class="external-link" target="_blank" rel="noopener"&gt;https://innatera.com/storage/app/media/Resources/&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; 晶片的一張示意圖中，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;此積體電路整合了多種標準介面（SPI、I2C 等）和一個電源管理單元 (PMU)，用於在進入「睡眠模式」或「省電模式」時開啟或關閉積體電路的某些部分。遺憾的是，除了一個球形電池組顯示“小於 1mW”之外，我找不到任何關於實際功耗的數據。假設供電電壓為 1.8V，則電流將小於 500 µA（I=W/V）。我還想知道「每個週期」的功耗指標是否相關：在這種情況下，假設頻率為 100Hz（突觸更新週期），則平均每次突觸更新的電流為 5 µA。&lt;/p&gt;&#10;&lt;p&gt;Pulsar 最新發布的架構圖顯示了兩個加速器：一個 CNN 和一個 FFT。我認為更廣義的描述應該是 GEMM（通用矩陣乘法器，神經網路運算的關鍵）和 SFU（特殊功能單元，用於加速 FFT 計算）。更多資訊請查看關於 GPU 架構的&lt;a href="https://qsysarch.com/posts/cuda-compiler-architecture/" &gt;帖子&lt;/a&gt;。此外，還有一個脈衝編碼器-解碼器，它似乎是作為 RISC-V 的協處理器開發的，但我沒有找到更多細節。&lt;/p&gt;&#10;&lt;h1 id="脈衝神經網路架構"&gt;&#10; 脈衝神經網路架構&#10; &lt;a class="heading-link" href="#%e8%84%88%e8%a1%9d%e7%a5%9e%e7%b6%93%e7%b6%b2%e8%b7%af%e6%9e%b6%e6%a7%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;剩下的問題是關於脈衝神經網路（Spiking Neural Network，簡稱 SNN）：它是如何運作的？&lt;/p&gt;&#10;&lt;h2 id="比喻"&gt;&#10; 比喻&#10; &lt;a class="heading-link" href="#%e6%af%94%e5%96%bb"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;我請 Gemini 用比喻向 8 歲的孩子解釋脈衝神經網路。以下是他們給的比喻：&lt;/p&gt;</description></item><item><title>GPU編譯器架構：CUDA、Triton和DeepSeek</title><link>https://qsysarch.com/zh-hk/posts/cuda-compiler-architecture/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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="#%e5%ba%95%e5%b1%a4gpu%e6%9e%b6%e6%a7%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;ISA（指令集架構）：指令集。&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;p&gt;NVIDIA GPU 有兩種指令集架構 (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;: Streaming ASSembly（串流彙編）。底層彙編語言，特定於每個 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;code&gt;_float invLen = rsqrtf(len2);_&lt;/code&gt; 這行程式碼會被轉換成 PTX 格式的 &lt;code&gt;rsqrt.approx.ftz.f32&lt;/code&gt;，然後轉換成 SASS 格式的 &lt;code&gt;MUFU.RSQ&lt;/code&gt;，如下圖所示（來自[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" 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&lt;/a&gt;, selection:(endColumn:2,endLineNumber:15,positionColumn:2,positionLineNumber:15,selectionStartColumn:2,selectionStartL 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+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++++//+使用+SFU+快速+倒數+平方+根%0A++++flo at+invLen+%3D+rsqrtf(len2)%3B+%0A%0A++++//+標準化+向量%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;rsquo;&amp;rsquo;n,&amp;rsquo;&amp;rsquo;,0:0:&amp;rsquo;,&amp;rsquo;&amp;rsquo;,0:0&amp;rsquo;,&amp;rsquo;n,&amp;rsquo;&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;,0:&amp;rsquo;s 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;,f ontScale: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,sta rtColumn: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;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,fon tUsePx:&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+(Edito r+%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;,0:&amp;rsquo;&amp;rsquo;,&amp;lsquo;&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>脈衝整形：DRAG脈衝</title><link>https://qsysarch.com/zh-hk/posts/the-drag-pulse/</link><pubDate>Sat, 08 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/posts/the-drag-pulse/</guid><description>&lt;p&gt;談到提高量子位元保真度，一個間接的問題是：能否透過「整形」比&lt;em&gt;簡單&lt;/em&gt;的高斯脈衝更複雜的脈衝來提高閘保真度？答案是：「讓我們來看看_DRAG脈衝」！&lt;/p&gt;&#10;&lt;p&gt;人們對 DRAG Pulse 感興趣的真正原因是 Joseph Bardin 在關於 Google 的 &lt;a href="https://research.google/pubs/a-28nm-bulk-cmos-4-to-8ghz-2mw-cryogenic-pulse-modulator-for-scalable-quantum-computing/ing" 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;/p&gt;&#10;&lt;p&gt;[21:08] 我們意識到，如果我們不去嘗試諸如拖曳之類的操作，我們只需要一個對稱的包絡線。升餘弦或高斯函數－它們都是對稱的。所以我們建造了一個可編程電流源陣列，然後使用相應的使能函數來創建這種類似婚禮蛋糕形狀的電流波形。這樣我們就可以對振幅等等進行程式設計。&lt;/p&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%b8%e5%ad%b8%e6%a8%a1%e5%9e%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;DRAG（絕熱門導數消除）脈衝由一個標準高斯脈衝及其正交分量加上此脈衝的縮放導數構成。這產生一個雙分量脈衝，一個分量是高斯包絡，另一個分量是高斯導數，這有助於減少向高能態的不必要洩漏，並校正超導量子位元中的相位誤差。&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;高斯導數：在脈衝中加入第二個分量，它是標準高斯脈衝的導數，並乘以一個稱為 \(\beta \) 的因子。這就是「正交」 \(q(t)\) 分量。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;總脈衝：最終的 DRAG 脈衝是這兩個分量 \(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="#%e7%a8%8b%e5%bc%8f%e5%8c%96%e6%a8%a1%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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：英偉達的GPU-量子統一系統架構</title><link>https://qsysarch.com/zh-hk/posts/nvqlink-system-architecture/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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; 團隊的一員，該團隊一直以來都在積極與 [Nvidia](&lt;a href="https://www.nvidia.com/en-us/solutions/quantus/sum-link" class="external-link" target="_blank" rel="noopener"&gt;https://www.nvidia.com/en-us/solutions/quantus/sum-link&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%e6%a6%82%e8%a6%bd"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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; 圖片來源：[Nandod](&lt;a href="https://www.naddod.com/blog/nvidia-nvqlink-introduction-connecting-quantum" class="external-link" target="_blank" rel="noopener"&gt;https://www.naddod.com/blog/nvidia-nvqlink-introduction-connecting-quantum&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="效能規格"&gt;&#10; 效能規格&#10; &lt;a class="heading-link" href="#%e6%95%88%e8%83%bd%e8%a6%8f%e6%a0%bc"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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 最高可達 400 Gb/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="#%e7%82%ba%e4%bb%80%e9%ba%bc%e9%9c%80%e8%a6%81-nvqlink"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;它提供了一個將軟體和硬體整合在一起的開放平台，使任何人都能與量子電腦進行交互，而無需淹沒在浩瀚的知識海洋中，這要歸功於&lt;a href="https://developer.nvidia.com/cuda-q" class="external-link" target="_blank" rel="noopener"&gt;Cuda-Q&lt;/a&gt;。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>QRAM 作為量子位元陣列</title><link>https://qsysarch.com/zh-hk/posts/quantum-memory/</link><pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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="#%e5%9b%9e%e5%88%b0%e6%9c%aa%e4%be%86%e6%bc%94%e5%8c%96"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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-largest-commercial-quantum-control-system-at-aists-leading-edge-g-quat-center.html" class="external-link" target="_blank" rel="noopener"&gt;1000量子位元&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;我正是在這裡偶然發現了 Ken Shirriff 關於 IBM S/360 記憶體的部落格（https://www.righto.com/2019/04/）。部落格和影片的內容簡直太棒了——我從未想過記憶體技術已經發展到如此程度。而且，了解如何使用脈衝來“驅動”核心內存，讓我想起了用於控制和讀取量子比特“實體”（我稱之為“量子比特內存”）的類似技術。&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://www.tomshardware.com/tech-industry/semiconductors/amd-reportedly-establishes-usd280-million-silicon-photonics-hub-in-taiwan-new-r-and-d-center-could-accelerate-compan-co-roadpackage" 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-compan-co-roadpackage&lt;/a&gt;)。我不敢妄言這將如何發生，更不敢斷言何時發生，但回顧大型主機的發展歷程，我們可以確信它終將到來。一旦實現，所有電子設備都將與量子計算元件捆綁在一起。&lt;/p&gt;&#10;&lt;p&gt;註[2025-10-28]：上圖隱含假設量子位元是基於矽基元件，但這並非必然。例如，光尋址量子位元元件面臨的挑戰並非低溫技術，而是可擴展性和小型化。而且，我們完全可以預期這些裝置也會取得突破性進展－例如光控磁阻隨機存取記憶體（mram-discovery-computing）。&lt;/p&gt;&#10;&lt;h1 id="是什麼讓qram成為量子元件"&gt;&#10; 是什麼讓QRAM成為「量子元件」？&#10; &lt;a class="heading-link" href="#%e6%98%af%e4%bb%80%e9%ba%bc%e8%ae%93qram%e6%88%90%e7%82%ba%e9%87%8f%e5%ad%90%e5%85%83%e4%bb%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;如果不回答這個關鍵問題，這段題外話就毫無意義：量子隨機存取記憶體（Quantum RAM）為何如此引人注目？無論是靜態隨機存取記憶體（SRAM）、動態隨機存取記憶體（DRAM）或是同步動態隨機存取記憶體（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;&#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;那麼，要讓 QRAM 符合「量子隨機存取記憶體」的定義，它需要在「疊加態量子位元」上公開什麼樣的介面呢？&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="#%e8%99%95%e7%90%86%e5%99%a8%e8%88%87%e8%a8%98%e6%86%b6%e9%ab%94"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;關於「記憶體隱喻」的一個難題是，是否可以接受「簡化」量子控制系統，使其成為記憶體的輔助部分。或者是否需要一個量子控制單元（QCU），它像圖形處理器（GPU）一樣處理量子位元，在這種情況下，重點在於執行閘序列。&lt;/p&gt;</description></item><item><title>GPUDirect RDMA：RoCE 封包的生命週期</title><link>https://qsysarch.com/zh-hk/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/zh-hk/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 的內部原理，特別是創建與 PCIe 子系統互連的「符合 RDMA 標準的網卡」所需的技術，例如與 &lt;a href="https://nvidianews.nvidia.com/news/nvidia-dgx-spark-arrives-for-worlds-ai-devperselo" class="external-link" target="_blank" rel="noopener"&gt;DGX Spark&lt;/a&gt; 整合的 2000-2000-000000033）圖。&lt;/p&gt;&#10;&lt;h1 id="rdma-作為客戶端伺服器協定"&gt;&#10; RDMA 作為「客戶端/伺服器」協定&#10; &lt;a class="heading-link" href="#rdma-%e4%bd%9c%e7%82%ba%e5%ae%a2%e6%88%b6%e7%ab%af%e4%bc%ba%e6%9c%8d%e5%99%a8%e5%8d%94%e5%ae%9a"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;將位址轉換資訊儲存於網路卡。&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;建立遠端金鑰+本機金鑰，供網路卡在執行 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-%e4%bd%87%e5%88%97%e5%b0%8d"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;RDMA 通訊基於一組三個隊列。&lt;/p&gt;</description></item><item><title>量子糾錯：量子位元的生命週期</title><link>https://qsysarch.com/zh-hk/posts/quantum-error-correction-the-life-of-a-qubit/</link><pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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^{-4}\)）。然而，為了達到完全高效，門錯誤率至少需要達到十億分之一（\(10^{-9}\)），甚至萬億分之一（\(10^{-12}\)）。&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) 指南。第一部分概述了創建邏輯量子位元所需的各種糾錯計算方法。第二部分探討了在邏輯糾錯後的量子位元上實現閘操作的可能性。最後一部分介紹了 &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;p&gt;QEC試圖解決什麼問題，以及如何解決？&lt;/p&gt;&#10;&lt;p&gt;乍看之下，量子糾錯演算法（QEC）面臨的挑戰很簡單：先偵測錯誤何時發生，然後修正它。但問題是，這一切都必須在不測量或坍縮量子位元量子態的情況下完成。這就是糾纏輔助量子位元概念發揮作用的地方：&lt;/p&gt;&#10;&lt;p&gt;量子糾纏計算（QEC）並非將資訊儲存在單一量子位元中，而是將一個邏輯量子位元編碼到多個物理量子位元上，這些物理量子位元分為兩類：資料量子位元和輔助量子位元（也稱為測量量子位元）。這組量子位元形成糾纏態，使得讀取輔助量子位元而不破壞資料量子位元的狀態成為可能。下圖中的紅線展示了幾種可能的邏輯量子位元到物理量子位元的映射關係。&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="#%e6%93%8d%e4%bd%9c%e6%96%b9%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;假設我們要對一個邏輯量子位元進行糾錯，該邏輯量子位元被編碼成多個實體量子位元。當發生錯誤時，其中一個實體量子位元可能會翻轉，翻轉形式可以是位元翻轉（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的案例中，也使用了額外的動態解耦 (DD) 來減輕失相 (T2?) 錯誤。&lt;/p&gt;&#10;&lt;p&gt;量子編碼&lt;/p&gt;&#10;&lt;p&gt;資料和測量量子位元以非局域方式分佈，使得一個或兩個量子位元的錯誤不會破壞群的_一致性_。這種分佈稱為_&lt;a href="https://www.murphyniu.com/qec" class="external-link" target="_blank" rel="noopener"&gt;量子碼&lt;/a&gt;_。實際系統使用更大、更複雜的碼：&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\) 個量子位元)－它將量子位元排列在二維網格上。表面碼距離 \(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="#%e5%a6%82%e4%bd%95%e5%9c%a8%e9%82%8f%e8%bc%af%e9%87%8f%e5%ad%90%e4%bd%8d%e5%85%83%e4%b8%8a%e5%9f%b7%e8%a1%8c%e9%87%8f%e5%ad%90%e6%bc%94%e7%ae%97%e6%b3%95"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;</description></item><item><title>低溫計算機和控制器</title><link>https://qsysarch.com/zh-hk/posts/cryogenic-machines/</link><pubDate>Sun, 05 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;量子位元有多種類型，其中一種很有前途的類型是超導量子位元。&lt;/p&gt;&#10;&lt;p&gt;超導量子位元模式的挑戰在於其對環境雜訊高度敏感，且壽命比其他模式更短。此外，超導量子位元需要在低溫下運行，因此需要使用專門的冷卻系統。&lt;/p&gt;&#10;&lt;p&gt;低溫系統的目標是達到接近絕對零度（&amp;lt; 0.1 K），從而最大限度地減少熱能的干擾。量子位元是敏感元件，因此幹擾越小越好。&lt;/p&gt;&#10;&lt;h1 id="低溫量子qpu"&gt;&#10; 低溫量子QPU&#10; &lt;a class="heading-link" href="#%e4%bd%8e%e6%ba%ab%e9%87%8f%e5%ad%90qpu"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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）置於冰箱中，而控制堆疊則在室溫下運作。目前，Bluefors 的解決方案已經可以實現這一點，但這會在互連層面造成所謂的「佈線瓶頸」。&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="#%e4%bd%8e%e6%ba%ab%e6%95%b8%e4%bd%8d%e9%a1%9e%e6%af%94%e8%bd%89%e6%8f%9b%e5%99%a8-dac"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;第二個方面是在更低的溫度下運行控制堆疊。低溫運轉的優點在於，必須將雜訊水準降至最低，以防止量子位元之間的干擾。因此，低溫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="#%e4%bd%8e%e6%ba%ab%e6%8e%a7%e5%88%b6%e4%ba%9e%e7%91%9f%e5%a3%ab"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;低溫專用積體電路（ASIC）面臨的許多挑戰之一是，必須將CMOS技術在低溫下的物理特性（包括功耗和熱預算）保持在較低水準。因此，第三個面向是完全控制ASIC在低溫下的運作。&lt;/p&gt;&#10;&lt;p&gt;例如，在下面的圖中，FPGA 現在位於 4K (-269.15 °C)，考慮到 FPGA 的發熱量，這與僅將 DAC 置於 4K 相比，就成了一個巨大的挑戰（而 DAC 本身也是一個巨大的挑戰！）。&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_Vws/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="#%e6%a1%88%e4%be%8b%e7%a0%94%e7%a9%b6google%e9%82%81%e5%90%91%e9%87%8f%e5%ad%90%e8%99%95%e7%90%86%e5%99%a8%e4%bd%8e%e6%ba%ab%e6%8e%a7%e5%88%b6%e4%b9%8b%e8%b7%af"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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°C 下讀出）時，佈線瓶頸會顯現出來。右圖顯示了將系統擴展到 72 量子位元系統時所需的電纜數量，以及每個量子位元「組件」（組件指的是 DAC、ADC、AWG 等）數量的一個有用近似值。&lt;/p&gt;</description></item><item><title>哪種機器適合量子演算法？</title><link>https://qsysarch.com/zh-hk/posts/executing-a-quantum-algorithm/</link><pubDate>Sun, 28 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/posts/executing-a-quantum-algorithm/</guid><description>&lt;p&gt;在經典電腦領域，圖靈機通常被描述為一種抽象機器，它能夠透過狀態、磁帶和讀寫磁頭來實現任何經典電腦演算法。最早的電腦可以追溯到20世紀50年代，它們是採用這種圖靈架構的大型主機。&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的Grover演算法影片。&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;h2 id="執行量子演算法的要求"&gt;&#10; 執行量子演算法的要求&#10; &lt;a class="heading-link" href="#%e5%9f%b7%e8%a1%8c%e9%87%8f%e5%ad%90%e6%bc%94%e7%ae%97%e6%b3%95%e7%9a%84%e8%a6%81%e6%b1%82"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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.google.com/search?q=synchronicity&amp;#43;definition" class="external-link" target="_blank" rel="noopener"&gt;同步性&lt;/a&gt;: 各個量子位元上的「單量子位元閘」（以矩形表示）看似同時執行，這是不正確的。除非是多量子位元閘，否則並不需要同時執行兩個閘。因此，「&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; 狀態。這裡的“重置”一詞略帶“魔力”，它更準確地說應該被描述為一個門。但由於這樣的閘門並不存在，一種可能的實現方式是基於先前對相同量子位元的讀取結果，使用一個條件閘。&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;”，我將在下週的另一份備忘錄中詳細介紹。就我們而言，我們假設存在一個時間_t_，它代表「量子演算法的最大持續時間」。&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;自旋-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 閘）似乎存在一個矛盾：一個閘的執行依賴於另一個閘的狀態，但又不違反可觀測性原理，也不導致量子位元疊加態坍縮（「崩塌」）。這個主題本身就足以寫成一份備忘錄，所以我們假設「有一個可行的方法」。然而，在某些情況下，將狀態「約化」為經典的布林值，並將讀出值作為門的輸入是可以接受的。這被稱為電路中測量，通常用帶有兩條線的箭頭表示。&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%e6%99%82%e9%96%93t1-%e5%92%8c-t2"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;若不介紹兩個關鍵時間點_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混合奈米線的Gatemon量子位元&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;，也稱為_弛豫時間_，是量子位元失去能量並從激發態落到基態所需的時間；換句話說，就是「從|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;/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;p&gt;拉比和拉姆齊的實驗&lt;/p&gt;&#10;&lt;p&gt;如果這份備忘錄沒有提及與 T1 和 T2 相關的兩個實驗，那就不完整了。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;Rabi&lt;/em&gt; 和 T1：T1 利用 Rabi 振盪來測量弛豫時間：Rabi 序列驅動自旋從初始狀態出發，然後測量由於縱向弛豫引起的 Rabi 振盪的衰減 (T1)，以確定自旋恢復到熱平衡的速度。&lt;/p&gt;</description></item><item><title>3藍1棕：格羅佛演算法</title><link>https://qsysarch.com/zh-hk/posts/but-what-is-quantum-computing/</link><pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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="經典比特與量子位元"&gt;&#10; 經典比特與量子位元&#10; &lt;a class="heading-link" href="#%e7%b6%93%e5%85%b8%e6%af%94%e7%89%b9%e8%88%87%e9%87%8f%e5%ad%90%e4%bd%8d%e5%85%83"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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%82%b3%e7%b5%b1%e9%82%8f%e8%bc%af%e9%96%98%e8%88%87%e9%87%8f%e5%ad%90%e9%96%98"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="經典邏輯閘 vs 量子閘" /&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/quantum-algorithm.webp" alt="量子演算法" /&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/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/zh-hk/posts/the-infiniband-transport-protocol-of-rocev2/</link><pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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）。&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%e6%a1%86%e6%9e%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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="#%e5%9f%ba%e6%9c%ac%e5%82%b3%e8%bc%b8%e9%a0%ad-bth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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 操作的類型，例如 RDMA_WRITE、RDMA_READ 等。&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%93%b4%e5%b1%95%e5%82%b3%e8%bc%b8%e9%a0%ad-eth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;InfiniBand傳輸層包含多個擴展頭部，用於特定功能。對於RDMA而言，最值得關注的兩個擴充頭部是RETH和AETH。&lt;/p&gt;&#10;&lt;h5 id="rdma-擴充傳輸頭-reth"&gt;&#10; RDMA 擴充傳輸頭 (RETH)&#10; &lt;a class="heading-link" href="#rdma-%e6%93%b4%e5%85%85%e5%82%b3%e8%bc%b8%e9%a0%ad-reth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;</description></item><item><title>量子實體組件系統</title><link>https://qsysarch.com/zh-hk/posts/quantum-entity-component-system/</link><pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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通常簡稱為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 請求可視化「應用於量子控制系統的實體組件系統」（左圖）及其對立面「由實體組件系統控制的量子位元」（右圖）。除了注意到在第一種情況下，「人」是系統，而在第二種情況下，量子位元似乎是系統之外，很難理解這些圖像的含義。&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 架構將行為邏輯分離到各個系統中，主要有兩個原因：&lt;/p&gt;&#10;&lt;p&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;&#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="量子實體組件系統" /&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/zh-hk/posts/the-confusing-world-of-rdma-and-infiniband/</link><pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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-direct、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-%e8%88%87-rdma%e8%a1%8c%e9%8a%b7%e8%88%87%e7%a7%91%e6%8a%80"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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 是遠端直接記憶體存取協定的縮寫，該協定允許從一台電腦的記憶體向另一台電腦的記憶體進行遠端直接記憶體訪問，而無需任何一台電腦的作業系統參與。 ……請勿將其與 GPUDirect RDMA 混淆，後者與 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 技術家族中的一項技術。它使網卡能夠直接存取 GPU 內存，繞過 CPU 內存複製和作業系統例程，從而實現資料的收發。任何支援乙太網路、InfiniBand 或 RoCE 的網路框架都可以啟用 GPUDirect RDMA。&lt;/p&gt;&#10;&lt;p&gt;好的，至少有一點很明確：GPUDirect RDMA 可以實現在任何傳輸層上，無論是乙太網路 (ETH) 還是 InfiniBand (IB)。但是，GPUNetIO 是什麼？它與 RDMA 又有什麼關係呢？答案很簡單。顧名思義，GPUNetIO 是基於網路的 GPU Direct RDMA 實現，透過網路卡實現。這並不意味著 GPU Direct 必須由網路卡驅動，而只是說 GPUNetIO 是針對特定網路卡類型的專用版本。&lt;/p&gt;</description></item><item><title>Rust的秘訣在於：更精確的類型？</title><link>https://qsysarch.com/zh-hk/posts/0004-rust-to-the-rescue/</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;Ralf Levien 以其高效實現的全球最快字形渲染引擎而聞名，該引擎採用了非常巧妙的基於 Rust 的 SIMD 設計。 2023 年我在 Bestechnics 設計 SIMD GPU 時，他的工作給了我很大的啟發。後來，Ralf Levien 也開發了該字形渲染引擎的 GPU 版本。&lt;/p&gt;&#10;&lt;p&gt;所以，當我偶然看到他關於「Rust 如何獲勝：追求高效能、高可靠性軟體」的最新演講時，我決定花一個小時觀看演講，並從中汲取任何值得學習的見解。&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: More precise types" /&gt;&lt;/p&gt;&#10;&lt;h1 id="問題陳述"&gt;&#10; 問題陳述&#10; &lt;a class="heading-link" href="#%e5%95%8f%e9%a1%8c%e9%99%b3%e8%bf%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;緊張的部分（也稱為溺水區）大約從 55:00 開始，幻燈片標題為「&lt;em&gt;Rust 秘方：更精確的字體&lt;/em&gt;」。&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;/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;affine type&lt;/em&gt;&lt;/a&gt; 的真正意義嗎？能否用簡單易懂的語言解釋一下，而不用讓我淹沒在浩瀚的知識海洋中？&lt;/p&gt;&#10;&lt;p&gt;YouTube評論裡也提到了一個問題：最後一個函數的回傳類型應該是&lt;code&gt;Cow&amp;lt;'a, [T]&amp;gt;&lt;/code&gt;，而不是&lt;code&gt;Cow&amp;lt;&amp;amp;'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;</description></item><item><title>利用人工智慧改進量子系統</title><link>https://qsysarch.com/zh-hk/posts/using-ai-to-improve-quantum-systems/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;使用人工智慧，更準確地說是神經網路（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; 的工作為基礎，更具體地說是以 Arthur Strauss 的研究為基礎。我有幸在上一次 &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%b8%e7%bf%92%e4%be%86%e5%b9%ab%e5%bf%99"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;這是如何工作的？強化學習基於觀察/動作的循環，透過迭代的環境 -&amp;gt; 智能體獎勵系統（下圖中的“a”）進行學習，通常使用 GPU 運行，然後，一旦學習完成，就在緊密耦合的矩陣乘法器（或&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="強化學習系統關鍵組件"&gt;&#10; 強化學習系統：關鍵組件&#10; &lt;a class="heading-link" href="#%e5%bc%b7%e5%8c%96%e5%ad%b8%e7%bf%92%e7%b3%bb%e7%b5%b1%e9%97%9c%e9%8d%b5%e7%b5%84%e4%bb%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;讓我們詳細了解強化學習的 4 個組成部分：&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;代理* 學習對觀察到的量子位元特徵做出反應的策略，並相應地調整脈衝參數。&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%b8%e7%bf%92%e7%b3%bb%e7%b5%b1%e5%ad%b8%e7%bf%92%e6%96%b9%e6%b3%95"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;強化學習方法通常可以分為兩大類：基於價值的方法和基於策略梯度的方法。&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%b8%e7%bf%92%e7%b3%bb%e7%b5%b1%e8%bf%ad%e4%bb%a3%e8%88%87%e5%9b%9e%e5%90%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="Link to heading"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;Link to heading&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;例如：在西洋棋比賽中，一集就是一局完整的比賽－從棋盤開始到將死、和棋或認輸為止。&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;li&gt;&#10;&lt;p&gt;在最佳化上下文中，一次迭代可能意味著學習演算法的一次更新步驟（例如，一次梯度下降步驟，該步驟可能基於多個回合或轉換）。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>關於</title><link>https://qsysarch.com/zh-hk/about/</link><pubDate>Mon, 18 Aug 2025 11:01:21 -0400</pubDate><guid>https://qsysarch.com/zh-hk/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;我是 Ronan，在 Equal1 公司負責量子軟體工程。我們利用先進的自旋技術設計和建構完全整合的量子電腦。 Equal1 在愛爾蘭、美國、加拿大、日本、羅馬尼亞和我居住的荷蘭都設有辦事處。在此之前，我曾在 Qblox 公司工作，該公司致力於開發量子控制系統。&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&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;</description></item><item><title>我的量子比特在哪裡？</title><link>https://qsysarch.com/zh-hk/posts/0002-wheres-my-qubit/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;更有趣的是，一旦「找到」一個量子比特，遊戲就會繼續，玩家必須在處理器（我們稱之為「QPU」或量子處理單元）中的一組量子位元中找到一個量子位元。&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）。目前該領域進展迅速，因此我們完全有理由相信，這項挑戰將在未來五年內解決。&lt;/p&gt;&#10;&lt;p&gt;同時，還有一些非常棒的調優工作需要完成——而人工智慧/機器學習正是在這裡發揮作用。我們將在下一篇文章中深入探討這一點。敬請期待！&lt;/p&gt;</description></item><item><title>qsysarch.com 入門指南</title><link>https://qsysarch.com/zh-hk/posts/0001-getting-started/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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;如果我們能夠製造出量子電腦（我希望這能在未來五年內實現），那麼下一個重大問題是：如何使用它並從中獲得有用的結果？我們能否使用像C語言這樣在普通（經典）計算機上使用的常規程式語言？或者，我們需要用一種全新的思考方式或思考模型來處理量子運算的結果和觀測資料？&lt;/p&gt;&#10;&lt;p&gt;我想在這篇部落格中探討兩個主要問題：建立量子電腦需要哪些條件以及如何使用它。我假設你沒有任何量子物理背景，但你熟悉普通電腦的建構和程式設計方式（或現在更準確地說是「振動編碼」）。&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; (圖片來源：[QM](&lt;a href="https://www.linkedin.com/posts/nathan-levy_java-kotlin-software-activity-735132219487601" class="external-link" target="_blank" rel="noopener"&gt;https://www.linkedin.com/posts/nathan-levy_java-kotlin-software-activity-735132219487601&lt;/a&gt; 4592-9AHV?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAAA6rd0BajjuLiGtz4MFPiUjNbnRLFMpIzM&amp;rsquo;))&lt;/p&gt;&#10;&lt;p&gt;這則漫畫用一個有趣的比喻來描述「驅動」量子電腦所面臨的挑戰：它被描述為「驅動數百名用戶（量子控制器）並行、完美流水線化地同步操控數千個量子位元（量子元件），所有這一切都要達到奈秒的精度」。更令人感興趣的是，這些數字將在五年內（2030年）乘以一千倍，因此挑戰將變得越來越令人興奮。&lt;/p&gt;</description></item><item><title/><link>https://qsysarch.com/zh-hk/epigraph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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/zh-hk/posts/resilient-networking-for-autonoumous-vehicules/</link><pubDate>Sat, 01 Jan 0000 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-hk/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 倍冗餘網路通道（採用智慧封包噴射通道重複使用技術）之外，他們還宣傳使用了 L4S（低延遲、低丟包、可擴展網路協定堆疊），該協定堆疊利用 TCP 協定堆疊中的「ECN」（明確控制通知）機制。如果能使用 Amarisoft（https://amarisoft.com/）在模擬環境中驗證 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;諾基亞貝爾實驗室&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>