<?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-cn/</link><description>Recent content on QSysArch - Quantum Computer System Architecture</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 31 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://qsysarch.com/zh-cn/index.xml" rel="self" type="application/rss+xml"/><item><title>QPU：量子处理单元</title><link>https://qsysarch.com/zh-cn/qpu/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%a6%e9%99%a2%e7%94%b5%e5%ad%90%e7%a0%94%e7%a9%b6%e5%ae%9e%e9%aa%8c%e5%ae%a4-rle"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://arxiv.org/pdf/2306.02571" class="external-link" target="_blank" rel="noopener"&gt;波导量子电动力学&lt;/a&gt;: 量子比特层（左）和中介层（右）的光学图像，其中量子比特和不同的信号线以伪彩色显示。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/mit-2023-1.webp" alt="" style="width: 100%; max-width: 49%;"/&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/mit-2023-2.webp" alt="" style="width: 100%; max-width: 49%;"/&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://arxiv.org/pdf/2605.24272" class="external-link" target="_blank" rel="noopener"&gt;铝制微波超导量子干涉器件（SQUID）多路复用器&lt;/a&gt;: 多路复用器器件照片。(a) 多路复用器芯片全貌。(b) 左图：单个通道的放大图。(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%8b%8f%e9%bb%8e%e4%b8%96%e8%81%94%e9%82%a6%e7%90%86%e5%b7%a5%e5%ad%a6%e9%99%a2%e9%87%8f%e5%ad%90%e5%99%a8%e4%bb%b6%e5%ae%9e%e9%aa%8c%e5%ae%a4"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;以下图片来自&lt;a href="https://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; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qpu-chip/qutech-2019-02.jpg" alt="带有片上谐振器和量子点的量子芯片的光学显微镜照片" style="width: 100%; max-width: 49%;"/&gt;&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;链接：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://equs.mit.edu/" class="external-link" target="_blank" rel="noopener"&gt;https://equs.mit.edu/&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>QEC：量子纠错逻辑量子比特（第一部分）</title><link>https://qsysarch.com/zh-cn/posts/quantum-error-correction-fondation-concepts/</link><pubDate>Sat, 18 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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 的 &lt;a href="https://www.zhinst.com/europe/en/products/zqcs-quantum-control-system/" class="external-link" target="_blank" rel="noopener"&gt;ZQCS&lt;/a&gt; 或 Qblox &lt;a href="https://qblox.com/products/cluster" class="external-link" target="_blank" rel="noopener"&gt;Q1 Cluster&lt;/a&gt;），“操作”或“协调”逻辑量子比特需要什么？一旦这个逻辑量子比特“准备就绪”，又该如何通过由单量子比特门和双量子比特门组成的量子电路来使用它进行量子计算？这个问题看似简单，但实际上却关乎硬件控制系统，以及软件栈，尤其是编译器：我们现在是否拥有多个编译器，一个用于物理量子比特，一个用于逻辑量子比特？此外，在由混合GPU/QPU和QCS组成的异构环境中，当需要处理10000个物理量子比特时，编译器需要付出怎样的努力才能应对这种扩展复杂性？这些问题看似简单，答案却并不简单！&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%80%bb%e8%be%91%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;什么是“逻辑量子比特”？创建逻辑量子比特首先要将物理量子比特分组，每个量子比特都被赋予特定的角色。有些量子比特用作辅助量子比特，而另一些则用作数据量子比特或主量子比特。&lt;/p&gt;&#10;&lt;p&gt;这种分组通常用右侧的图表表示，图中显示的是“基于距离 3 的表面代码 17”（图片来源：&lt;a href="https://arxiv.org/pdf/2307.09463" class="external-link" target="_blank" rel="noopener"&gt;Irréversible Inc&lt;/a&gt;）。&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qec-control/surface-code.webp#right-500px" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;以下是适用于表面代码的基本结构：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;数据量子比特&lt;/strong&gt;（白色圆圈）存储量子信息。表面 17 包含 9 个数据量子比特。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;辅助量子比特（黑色圆圈）执行非破坏性奇偶校验。表面 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%e4%b8%ba%e4%b8%80%e7%a7%8d%e5%8d%8f%e8%ae%ae"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;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%b5%8b%e9%aa%8c%e8%b0%81%e6%98%af%e9%87%8f%e5%ad%90%e6%af%94%e7%89%b9%e7%9a%84%e7%bd%aa%e9%ad%81%e7%a5%b8%e9%a6%96"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;在此背景下，请参考下图（图片来源：&lt;a href="https://www.linkedin.com/posts/laurent-prost-product-manager_just-because-ai-generated-content-looks-good-activity-7459167604172083200-XPy0/" class="external-link" target="_blank" rel="noopener"&gt;Laurent Prost&lt;/a&gt; &lt;sub&gt;，&lt;/sub&gt;来自 [Alice &lt;sub&gt;&amp;amp;&lt;/sub&gt; Bob &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-cn/posts/semiconductor-metrology/</link><pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%ae%a1%e9%87%8f%e6%8a%80%e6%9c%af"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;以下是一些用于质量测量的技术和仪器，以及它们在测量过程中的作用概述：&lt;/p&gt;&#10;&lt;h2 id="光学显微镜2d"&gt;&#10; 光学显微镜（~2D） &#10;&lt;img class="glightbox" src="https://qsysarch.com/images//asic-metrology/optical-microscope.webp#right-h200px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#%e5%85%89%e5%ad%a6%e6%98%be%e5%be%ae%e9%95%9c2d"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;传统的光学显微镜（用于生物学）需要光线直接穿过（“透射”）样本才能检测相位变化。然而，硅片完全不透明且反射率很高。由于光线无法穿过硅片，因此这些标准系统无法使用。&lt;/p&gt;&#10;&lt;p&gt;晶圆检测并非直接检测晶圆表面，而是利用反射光，并有几种不同的方法：明场、暗场和微分干涉对比 (DIC)。明场检测使用垂直照射到晶圆上并反射回来的光线，而暗场检测则使用以较大倾斜角度照射到晶圆上的光线，这种方法可以检测凸起的缺陷，例如颗粒污染、细微划痕和微缺陷。&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;尼康显微镜&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h2 id="扫描电子显微镜-sem"&gt;&#10; 扫描电子显微镜 (SEM) &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/scanning-electron-microscope-internal.webp#right-h300px" alt="" /&gt; &#10;&lt;img class="glightbox" src="https://qsysarch.com/images//asic-metrology/scanning-electron-microscope.webp#right-h200px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#%e6%89%ab%e6%8f%8f%e7%94%b5%e5%ad%90%e6%98%be%e5%be%ae%e9%95%9c-sem"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;扫描电子显微镜 (SEM) 是半导体制造中最常用的仪器之一，因为它能够观察比光学显微镜小得多的特征（分辨率高 100 倍）。SEM 不使用光学显微镜，而是使用聚焦电子束扫描晶圆表面，从而生成晶圆形貌和成分的高分辨率三维图像。&lt;/p&gt;&#10;&lt;p&gt;与可以“一次性成像”的光学显微镜不同，扫描电子显微镜（SEM）需要用极细的电子束逐点“扫描”晶圆，然后重建图像，每个像素的亮度取决于从晶圆上相应位置检测到的电子数量。扫描过程不使用机械部件，而是利用磁线圈产生磁场，将电子束聚焦到仅几纳米宽的光斑上（与老式笨重的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%e6%98%be%e5%be%ae%e9%95%9c-afm"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;原子力显微镜 (AFM) 与扫描电子显微镜 (SEM) 有着本质区别：AFM 不使用电子束，而是利用柔性悬臂梁上的超细探针，在原子尺度上“感知”并绘制表面形貌图，就像盲人阅读盲文一样。AFM 测量的是表面形貌。&lt;/p&gt;&#10;&lt;p&gt;与扫描电镜（SEM）类似，原子力显微镜（AFM）也是逐点扫描表面。然而，AFM 并非记录发射的电子，而是测量多个参数，包括探针高度、悬臂梁偏转和相互作用力，从而生成真正的三维表面图。&lt;/p&gt;&#10;&lt;p&gt;悬臂梁可以以多种模式与可观测对象相互作用：在接触模式下，探针尖端与晶圆保持持续接触；在轻敲模式下，悬臂梁在其共振频率附近振荡，与表面的短暂接触会改变其振荡幅度；此外，还有一种非接触模式，该模式利用吸引力作为测量原理，但其信噪比通常较低。&lt;/p&gt;&#10;&lt;h2 id="x射线衍射-xrd"&gt;&#10; X射线衍射 (XRD) &#10;&lt;img class="glightbox" src="https://qsysarch.com/images/asic-metrology/xray-diffractometer.webp#right-500px" alt="" /&gt;&#10; &lt;a class="heading-link" href="#x%e5%b0%84%e7%ba%bf%e8%a1%8d%e5%b0%84-xrd"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;X射线衍射（XRD）与以前的仪器非常不同，以前的仪器主要检测晶片的表面，而XRD探测材料内部的晶体（或原子）结构。&lt;/p&gt;&#10;&lt;p&gt;它是用于检测硅片晶体取向、晶格间距、应变和晶体质量等参数的最重要的无损检测仪器之一。X射线衍射（XRD）必不可少，因为即使硅片在“表面显微镜”下看起来完美无瑕，XRD也能检测到晶格的细微变化，而这些变化会对晶体管的性能和生产良率产生显著影响。&lt;/p&gt;&#10;&lt;div style='clear:both'&gt;&#10;&lt;p&gt;＃＃ 概括&lt;/p&gt;&#10;&lt;style&gt;&#10;table { width: 100%; }&#10;table, table tr * { border: 1px solid #888;}&#10;table tr td{ padding: 3px; text-align:center;}&#10;&#10;&lt;/style&gt;&#10;&lt;p&gt;| 方法 | # | 分辨率 | 速度 | 成本 | 典型用途 | | &amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash; | &amp;mdash;- | &amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash; | &amp;mdash;&amp;mdash;&amp;mdash; | &amp;mdash;- | &amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash; | | 光学 | ~ 2D | ~0.2 µm | 非常快 | 低 | 常规晶圆检测 | | 扫描电子显微镜 (SEM) | ~ 2D | 1–10 nm | 慢 | 高 | 详细缺陷分析 | | 原子力显微镜 (AFM) | 3D | &amp;lt;1 nm（垂直） | 非常慢 | 高 | 表面粗糙度测量 | | X射线 | 3D | 可变 | 中等 | 高 | 内部结构检测 |&lt;/p&gt;</description></item><item><title>xPUs：人工智能推理硬件加速微架构</title><link>https://qsysarch.com/zh-cn/posts/ai-inference-hardware-acceleration-architecture/</link><pubDate>Sun, 28 Jun 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%9c%ba%e6%a6%82%e5%86%b5"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;在审视人工智能推理ASIC的市场格局时，最有价值的指标或许并非原始性能，而是供应商的差异化优势能否在未来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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://www.nvidia.com/" class="external-link" target="_blank" rel="noopener"&gt;NVIDIA&lt;/a&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;架构：GPU（2024 年采用 Blackwell 架构）&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;核心优势：生态系统锁定、软件栈深度、完整的系统集成&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;目标工作负载：通用 — 大规模 LLM 训练和推理 - 图形着色器&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;缺点：成本高、功耗高；未针对稀疏计算进行优化&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/nvidia-blackwell-microarchitecture.webp" alt="NVIDIA Blackwell 微架构" /&gt;&lt;/p&gt;&#10;&lt;h3 id="垂直整合商"&gt;&#10; 垂直整合商&#10; &lt;a class="heading-link" href="#%e5%9e%82%e7%9b%b4%e6%95%b4%e5%90%88%e5%95%86"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://cloud.google.com/tpu" 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;架构：TPU，定制ASIC（脉动）&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;目标工作负载：Google Cloud 工作负载、Gemini 推理&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;漏洞：仅可通过 Google 云获得；无法从 Google 购买 TPU 内核。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpxpus/google-ironwood-tpu.webp" alt="Google TPU Ironwood：2025 年 TPU 微架构" /&gt;&lt;/p&gt;</description></item><item><title>量子比特模式：Transmon QPU架构</title><link>https://qsysarch.com/zh-cn/posts/qubit-modalities-transmon-qpi-architecture/</link><pubDate>Sun, 14 Jun 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%93%9d%e5%9b%be"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;下图展示了一个假想的双量子比特可调超导量子比特（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-8" class="external-link" target="_blank" rel="noopener"&gt;隧道结中约瑟夫森谐波的观测&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="量子比特控制过程"&gt;&#10; 量子比特控制过程&#10; &lt;a class="heading-link" href="#%e9%87%8f%e5%ad%90%e6%af%94%e7%89%b9%e6%8e%a7%e5%88%b6%e8%bf%87%e7%a8%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;每条控制线承载不同类型的信号，因此使用的部件（如阻尼器（衰减器）和滤波器）会因您处理的是驱动线、耦合器控制线还是量子比特控制线而有所不同。&lt;/p&gt;&#10;&lt;h2 id="1-驱动线xy-控制"&gt;&#10; 1. 驱动线（XY 控制）&#10; &lt;a class="heading-link" href="#1-%e9%a9%b1%e5%8a%a8%e7%ba%bfxy-%e6%8e%a7%e5%88%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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;&#10;&lt;p&gt;要创建 X 门，控制模块（例如 Qblox &lt;a href="https://qblox.com/modules/qcm-rf" class="external-link" target="_blank" rel="noopener"&gt;QCM-RF&lt;/a&gt;）只需将 &lt;code&gt;I&lt;/code&gt; 通道完全开启，并将 &lt;code&gt;Q&lt;/code&gt; 通道保持关闭即可。要创建 Y 门，则需要将 &lt;code&gt;I&lt;/code&gt; 通道关闭，并将 &lt;code&gt;Q&lt;/code&gt; 通道完全开启。当然，实际操作要复杂得多，并且需要确保进行 &lt;a href="https://ar5iv.labs.arxiv.org/html/2008.07265" class="external-link" target="_blank" rel="noopener"&gt;IQ 混频器校准&lt;/a&gt;，以防止 X 门和 Y 门之间发生泄漏。&lt;/p&gt;</description></item><item><title>插图</title><link>https://qsysarch.com/zh-cn/illustrations/</link><pubDate>Sat, 04 Apr 2026 18:44:19 +0200</pubDate><guid>https://qsysarch.com/zh-cn/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-cn/posts/gemm-kernels/</link><pubDate>Sat, 28 Mar 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%9c%b4%e7%b4%a0%e7%9f%a9%e9%98%b5%e4%b9%98%e6%b3%95%e5%99%a8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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-cn/posts/capacity-and-efficiency-engineering/</link><pubDate>Sun, 22 Mar 2026 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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="#%e4%ba%a7%e8%83%bd%e5%92%8c%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;容量与效率工程建立在三大核心支柱之上：可观测性、建模和规划。&lt;/p&gt;&#10;&lt;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%82%e6%b5%8b%e6%80%a7-%e5%ae%b9%e9%87%8f%e5%92%8c%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;可观测性是对系统进行实证分析。在计算机系统中，日志经常与可观测性混淆，但它们只是其中的一部分。例如，&lt;a href="https://opentelemetry.io/" class="external-link" target="_blank" rel="noopener"&gt;OpenTelemetry&lt;/a&gt;标准涵盖了多种可观测的“信号”：日志、指标、追踪和冗余信息。对于计算机工程和工程（CEE）而言，有效的可观测性应提供：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;资源使用情况：观察和跟踪资源消耗情况。观察结果应具体说明资源的使用内容、使用时间、使用者以及是否发生任何错误。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;性能指标：跟踪关键性能指标（KPI），例如延迟和吞吐量。包括良率、浪费率或错误率。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;瓶颈识别：找出系统中降低吞吐量的制约因素。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;关键在于能够对系统进行事后分析，并且无论在高负载、维护还是空闲期间，都必须进行分析。详细了解发生了什么、何时发生以及为什么发生至关重要。如果没有这些可观察的数据，就无法确定系统故障的根本原因。&lt;/p&gt;&#10;&lt;p&gt;当然，要收集完整系统的全部观测数据并非易事：观测成本可能非常高昂，甚至可能具有破坏性（例如在量子计算中，测量系统会改变其状态——这种现象被称为观测者效应）。这意味着，仅仅是观测系统这一行为本身就可能改变其行为并降低其性能。解决这个问题的方法是采样（仅收集部分事件的数据，而非全部事件）。其核心思想是将采样率（数据收集频率）作为可调的系统参数，如下图所示（图片来源：&lt;a href="https://opentelemetry.io/docs/concepts/sampling/" class="external-link" target="_blank" rel="noopener"&gt;OpenTelemetry&lt;/a&gt;）。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/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%e5%92%8c%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;在可观测性建立之后，就可以开始理解系统的分析参数行为。这种行为构成了下一个支柱的基础：它可以被描述并转化为参数模型。下一步是明确在给定一组参数或条件的情况下，这样的模型需要提供什么：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;性能：系统能够提供的最大吞吐量和延迟是多少？&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;运行成本：以分配的资源数量来衡量，运行该系统需要多少成本？该成本可能因一天中的不同时间而异。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;重新配置：更新系统参数会产生哪些瞬态影响（暂时性影响）？例如，分配新服务器或 QPU 并对其进行正确配置时。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;关键在于模拟系统行为并观察其在不同运行条件下的性能。由于该模型包含了资源成本，因此可以展现这些条件下的成本权衡。这些信息对于规划阶段至关重要。&lt;/p&gt;&#10;&lt;p&gt;这里值得一提的是_仿真_和_模拟_之间的区别。从宏观层面来说，模拟创建了一个系统的模拟版本，而仿真则基于系统的抽象模型进行操作。使用模拟，由于输入相同，因此可以将模拟性能与实际性能进行比较。我认为在CEE的语境下，模型主要指的是模拟器。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/capacity-and-efficiency-engineering/simulation-vs-emulation.webp" alt="仿真 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%a7%84%e5%88%92-%e5%ae%b9%e9%87%8f%e5%92%8c%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;有了模型，就可以开始规划系统运行了。利用模型模拟各种情况，找出最优方案。根据这些结果，策略性地分配资源以满足需求。一个好的计划应该包含需求预测、成本管理和故障保护措施。预测用于预测未来的使用情况、流量或需求。成本控制用于控制资源过度配置，同时确保高峰时段的容量。故障保护措施则提供缓冲，以应对意外需求。&lt;/p&gt;&#10;&lt;p&gt;关键在于高效可靠地运行系统，应对峰值负载而不发生故障，确保成本效益，通过预测容量实现主动重新配置，并提供足够的缓冲来应对意外事件。&lt;/p&gt;&#10;&lt;p&gt;该计划结合了最佳情况（需求符合预期）和最差情况（需求高于或低于预期）。这种方法实现了产能的成本效益最优配置。&lt;/p&gt;&#10;&lt;h1 id="微调模型"&gt;&#10; 微调模型&#10; &lt;a class="heading-link" href="#%e5%be%ae%e8%b0%83%e6%a8%a1%e5%9e%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;先有鸡还是先有蛋的问题&lt;/p&gt;</description></item><item><title>张量处理单元 (TPU)：高级系统架构</title><link>https://qsysarch.com/zh-cn/posts/tpu-architecture/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%e4%b9%89%e4%bb%a5%e5%8f%8a%e5%ae%83%e8%a7%a3%e5%86%b3%e4%ba%86%e5%93%aa%e4%ba%9b%e9%97%ae%e9%a2%98"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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%e5%8f%98"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;TPUv1仅用了15个月就开发完成，其主要目标是提升神经网络的推理能力（并非学习能力，而仅仅是推理能力）。为此，谷歌需要矩阵乘法器，并且不仅要保证高速运行，还要降低功耗。降低功耗的关键在于提高内存局部性，例如减少外部存储器和TPU内存之间不必要的数据传输。这将提高单位控制时间的运算强度，即减少TPU等待数据的空闲时间。&lt;/p&gt;</description></item><item><title>Python AST 重写：编译时不降低级别</title><link>https://qsysarch.com/zh-cn/posts/python-ast-rewriting/</link><pubDate>Sat, 06 Dec 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%af%ad%e6%b3%95%e6%a0%91astapi"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;Python 提供了一个用于处理抽象语法树 (AST) 的&lt;a href="https://docs.python.org/3/library/ast.html" class="external-link" target="_blank" rel="noopener"&gt;标准库&lt;/a&gt;。Python AST 中的节点大致分为四类：&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%e9%87%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例如 &lt;code&gt;10&lt;/code&gt;、&lt;code&gt;&amp;quot;hello&amp;quot;&lt;/code&gt;、&lt;code&gt;True&lt;/code&gt;。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Python"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="变量"&gt;&#10; 变量&#10; &lt;a class="heading-link" href="#%e5%8f%98%e9%87%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例如 &lt;code&gt;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%e8%be%be%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例如 &lt;code&gt;1 + 2&lt;/code&gt;、&lt;code&gt;x + 2&lt;/code&gt;、&lt;code&gt;x &amp;gt; y&lt;/code&gt;。表达式是 AST 节点，用于生成值。&lt;/p&gt;&#10;&lt;div class="code-block"&gt;&#10; &lt;div class="code-header"&gt; &lt;span data-label-text="Python"&gt;&lt;i class="fas fa-code fa-fw small"&gt;&lt;/i&gt;&lt;/span&gt; &lt;button aria-label="copy" data-title-succeed="Copied!"&gt;&lt;i class="far fa-clipboard"&gt;&lt;/i&gt;&lt;/button&gt;&lt;/div&gt;&#10; &#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BinOp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;BinOp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt;&lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Add&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Compare&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;x&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;()),&lt;/span&gt;&lt;span class="n"&gt;ops&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Gt&lt;/span&gt;&lt;span class="p"&gt;()],&lt;/span&gt;&lt;span class="n"&gt;comparators&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;y&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ctx&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;())])&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;h2 id="声明"&gt;&#10; 声明&#10; &lt;a class="heading-link" href="#%e5%a3%b0%e6%98%8e"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;例如 &lt;code&gt;if&lt;/code&gt;、&lt;code&gt;for&lt;/code&gt;、&lt;code&gt;while&lt;/code&gt;、&lt;code&gt;return&lt;/code&gt;、&lt;code&gt;break&lt;/code&gt;、&lt;code&gt;continue&lt;/code&gt;。语句是抽象语法树 (AST) 节点，用于执行操作，并在 Python 代码中作为顶层或代码块级别的结构出现。&lt;/p&gt;</description></item><item><title>组织复杂性：多一些架构，少一些管道</title><link>https://qsysarch.com/zh-cn/posts/organizing-complexity/</link><pubDate>Sun, 30 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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="#%e4%bb%8e%e6%9b%bc%e5%93%88%e9%a1%bf%e5%9f%8e%e5%b8%82%e8%a7%84%e5%88%92%e4%b8%ad%e5%ad%a6%e4%b9%a0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;曼哈顿南部狭窄、不规则的街道——街道名称难以预测，交叉路口角度也千差万别——与纽约其他地区形成鲜明对比，纽约其他地区街道呈网格状，街道（从第一街到第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%b0%e5%ad%97%e7%b3%bb%e7%bb%9f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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%95%9c"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;在法国，企业和用户承受着欧洲最高的行政繁琐程度之一，据法国长期观察站估计，这相当于GDP的6个百分点（约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%a2%98%e5%a4%96%e8%af%9d%e5%a6%82%e4%bd%95%e7%bb%84%e7%bb%87%e8%a7%84%e6%a8%a1%e5%8c%96%e4%bc%81%e4%b8%9a%e4%b8%ad%e7%9a%84%e5%a4%8d%e6%9d%82%e6%80%a7"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;我常常思考，为什么有些初创公司能够发展成为成功的规模化企业，而另一些却举步维艰。这通常归结于是否让合适的人在合适的岗位上。要做到这一点，理解架构师的真正职责至关重要。&lt;/p&gt;&#10;&lt;h2 id="汤厨房和菜单"&gt;&#10; 汤、厨房和菜单&#10; &lt;a class="heading-link" href="#%e6%b1%a4%e5%8e%a8%e6%88%bf%e5%92%8c%e8%8f%9c%e5%8d%95"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;把创业公司想象成一家专营汤的餐厅。第一道汤大获成功，带动了餐厅的发展。随着餐厅规模的扩大，厨师人数增加，菜谱也随之增多，运营变得更加复杂。每增加一位新厨师和一道新菜谱，厨房的运转速度就会减慢。为了解决这个问题，创业公司的创始人决定设立一个项目管理办公室（PMO），以确保一切步入正轨。&lt;/p&gt;&#10;&lt;p&gt;项目管理办公室（PMO）团队很快发现，一个重要的环节出了问题：厨房运作缺乏清晰的计划。他们尝试通过给每位厨师分配具体职责、使用详细的任务单组织任务、并根据预估工作量制定总体规划来解决这个问题。但这些措施都无济于事。PMO 百思不得其解。明明所有事项都已记录在案，为什么还是行不通呢？&lt;/p&gt;&#10;&lt;p&gt;问题在于，这本书只讲了如何做汤，却没讲汤应该是什么。项目管理办公室（PMO）没有意识到，他们不再只是做一种汤了——他们拥有的是一种可以用来制作不同菜肴的“汤底”，具体取决于产品经理（PM）制定的菜单。PMO团队没有解决真正的问题，只是在“铺设”流程，就像没有规划就修路一样。&lt;/p&gt;&#10;&lt;p&gt;项目管理办公室真正需要的是一个设计完善的系统，能够让一切顺利运行，并随着时间的推移不断扩展，就像曼哈顿北部的道路一样。项目管理办公室的错误在于没有意识到他们需要一位架构师来制定蓝图，指导他们如何组织复杂的流程。&lt;/p&gt;&#10;&lt;p&gt;在许多快速发展的公司中，通常只有一个工程总监，他/她不仅负责架构设计，还负责确保团队拥有成长型思维。其目标是赋能团队，让他们自主提升效率，而不是强加效率。只有完成这些步骤，公司才能真正做好规模化发展的准备！&lt;/p&gt;&#10;&lt;h2 id="项目驱动型组织"&gt;&#10; 项目驱动型组织&#10; &lt;a class="heading-link" href="#%e9%a1%b9%e7%9b%ae%e9%a9%b1%e5%8a%a8%e5%9e%8b%e7%bb%84%e7%bb%87"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;我最近偶然读到哈佛商业评论上的《项目驱动型组织》这篇文章。我很欣赏它围绕组织设计、领导力和价值创造这三大杠杆构建的结构化方法。但文章缺少一个关键细节：如何将这些想法转化为盈利产品的策略。&lt;/p&gt;&#10;&lt;p&gt;下图是对原始概念的重新诠释，我在此基础上添加了“路线图”这一关键要素，可以将其理解为将创意转化为盈利产品的“战略”。我还添加了“工程团队”，作为连接不同团队的纽带。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/project-driven-organizations.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;在这个图中，是建筑师为道路规划提供意见？还是道路规划作为输入提供给建筑师？抑或是由建筑师为项目团队提供意见？所有答案都正确，具体取决于上下文。关键在于，工程团队负责道路的建设，他们需要一个可以遵循的规划，或者说一个可以“实现”的架构。&lt;/p&gt;&#10;&lt;p&gt;将项目转化为利润&lt;/p&gt;&#10;&lt;p&gt;下图展示的是厨房的设计和布局有多么出色？还是仅仅展示了项目管理办公室（PMO）如何高效运营并将其转化为利润？&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/organizing-complexity/project-list.webp" alt="" /&gt; (图片来源：&lt;a href="https://www.theprojectgroup.com/blog/en/pmo-setup/" class="external-link" target="_blank" rel="noopener"&gt;&lt;/a&gt;)&lt;/p&gt;&#10;&lt;h1 id="结论"&gt;&#10; 结论&#10; &lt;a class="heading-link" href="#%e7%bb%93%e8%ae%ba"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;当事情变得过于复杂和失控时，想想如何用这两条简单的规则来组织复杂性：多搞架构，少搞管道！&lt;/p&gt;</description></item><item><title>神经形态集成电路：高级系统架构</title><link>https://qsysarch.com/zh-cn/posts/neuromorphic-ics-system-architecture/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%e4%bb%b6%e6%9e%b6%e6%9e%84"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;这是对 Pulsar IC 架构图的重新绘制尝试（原始&lt;a href="https://www.embedded.com/innatera-pulsar-brings-brain-intelligence-to-the-edge/" class="external-link" target="_blank" rel="noopener"&gt;图像&lt;/a&gt;，并补充了&lt;a href="https://innatera.com/storage/app/media/Resources/Pulsar.pdf" class="external-link" target="_blank" rel="noopener"&gt;白皮书&lt;/a&gt;中的见解）：&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/neuromorphic-ics/architecture-of-Innatera-Pulsar-neuromorphic-microcontrolle.webp" alt="" /&gt;&lt;/p&gt;&#10;&lt;p&gt;我确实很喜欢使用 RISC-V CPU 的想法——这清楚地表明 Innatera 团队从一开始就做出了正确的架构决策。在 Innatera 早期的 &lt;a href="https://innatera.com/products/spiking-neural-processor-t1" class="external-link" target="_blank" rel="noopener"&gt;T1&lt;/a&gt; 芯片的一张示意图中，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%89%e5%86%b2%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e6%9e%b6%e6%9e%84"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;我请 Gemini 用一个比喻向 8 岁的孩子解释脉冲神经网络。以下是他们给出的比喻：&lt;/p&gt;&#10;&lt;p&gt;把大脑想象成一个巨大的邮局，“神经元”就是传递信息的信使。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;信使和笔记：&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;在普通的计算机程序中，每个通信节点都在不停地传递和发送数字。而在脉冲神经网络中，通信节点则非常安静且节能：它们只在发生重要事件（例如微小的电脉冲）时才发送一条简短的“嘿！”消息。&lt;/p&gt;</description></item><item><title>GPU编译器架构：CUDA、Triton和DeepSeek</title><link>https://qsysarch.com/zh-cn/posts/cuda-compiler-architecture/</link><pubDate>Sun, 16 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%82gpu%e6%9e%b6%e6%9e%84"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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,selection:%28endColumn:2,endLineNumber:15,positionColumn:2,positionLineNumber:15,selectionStartColumn:2,selectionStartL" class="external-link" target="_blank" rel="noopener"&gt;https://godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:'1',fontScale:14,fontUsePx:'0',j:1,lang:cuda,selection:(endColumn:2,endLineNumber:15,positionColumn:2,positionLineNumber:15,selectionStartColumn:2,selectionStartL&lt;/a&gt; ineNumber:15,startColumn:2,startLineNumber:15),source:&amp;rsquo;&lt;strong&gt;global&lt;/strong&gt;+void+normalizeVector(float*+x,+float*+y,+float*+z,+int+n)%0A%7B%0A++++int+i+%3D+blockIdx.x+&lt;em&gt;+blockDim.x+%2B+threadIdx.x%3B%0A%0A++++float+vx+%3D+x%5Bi%5D%3B%0A++++float +vy+%3D+y%5Bi%5D%3B%0A++++float+len2+%3D+vx&lt;/em&gt;vx+%2B+vy&lt;em&gt;vy%3B%0A%0A++++//+使用+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;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,s:0,t:&amp;lsquo;0&amp;rsquo;),(g:!((h:compiler,i:(compiler:nvcc130u2,filters:(b:&amp;lsquo;0&amp;rsquo;,binary:&amp;lsquo;1&amp;rsquo;,binaryObject:&amp;lsquo;1&amp;rsquo;,commentOnly:&amp;lsquo;0&amp;rsquo;,debugCalls:&amp;lsquo;1&amp;rsquo;, demangle:&amp;lsquo;0&amp;rsquo;,directives:&amp;lsquo;0&amp;rsquo;,execute:&amp;lsquo;1&amp;rsquo;,intel:&amp;lsquo;0&amp;rsquo;,libraryCode:&amp;lsquo;0&amp;rsquo;,trim:&amp;lsquo;1&amp;rsquo;,verboseDemangling:&amp;lsquo;0&amp;rsquo;),flagsViewOpen:&amp;lsquo;1&amp;rsquo;,fontScale:14,fontUsePx:&amp;lsquo;0&amp;rsquo;,j:1,lang:cuda,libs:!(),options:&amp;rsquo;-arch+sm_90+-use_fast_math+-O3&amp;rsquo;,overrides:!(),selection:(en dColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:1),l:&amp;lsquo;5&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;+NVCC+13.0.2+(Editor+%231)&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),k:33.333333333333336,l:&amp;lsquo;4&amp;rsquo; ,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,s:0,t:&amp;lsquo;0&amp;rsquo;),(g:!((h:device,i:(compilerName:&amp;lsquo;NVCC+13.0.2&amp;rsquo;,device:&amp;lsquo;SASS+(sm_90)&amp;rsquo;,editorid:1,fontScale:14,fontUsePx:&amp;lsquo;0&amp;rsquo;,j:1,selection:(endColumn:6,endLineNumber:21,positionColumn:1,positionLineNumber:1,selectionStartColumn:6,s electionStartLineNumber:21,startColumn:1,startLineNumber:1),treeid:0),l:&amp;lsquo;5&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;lsquo;Device+Viewer+NVCC+13.0.2+(Editor+%231,+Compiler+%231)&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),k:33.33333333333333,l:&amp;lsquo;4&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,s:0,t:&amp;lsquo;0&amp;rsquo;)),l:&amp;lsquo;2&amp;rsquo;,n:&amp;lsquo;0&amp;rsquo;,o:&amp;rsquo;&amp;rsquo;,t:&amp;lsquo;0&amp;rsquo;)),version:4).&lt;/p&gt;</description></item><item><title>脉冲整形：DRAG脉冲</title><link>https://qsysarch.com/zh-cn/posts/the-drag-pulse/</link><pubDate>Sat, 08 Nov 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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/" 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;这就是谷歌的架构——它真的很巧妙：&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/waveform-generation-approach.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/block-diagram.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;但是，要使这种架构能够产生阻力脉冲，需要做哪些调整呢？要理解这个问题，首先需要了解什么是阻力脉冲。&lt;/p&gt;&#10;&lt;h1 id="数学模型"&gt;&#10; 数学模型&#10; &lt;a class="heading-link" href="#%e6%95%b0%e5%ad%a6%e6%a8%a1%e5%9e%8b"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;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%ba%8f%e5%8c%96%e6%a8%a1%e5%bc%8f"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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-cn/posts/nvqlink-system-architecture/</link><pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/posts/nvqlink-system-architecture/</guid><description>&lt;p&gt;我非常高兴能成为 &lt;a href="https://qblox.com/newsroom/qblox-accelerates-utility-scale-quantum-computing-with-nvidia" class="external-link" target="_blank" rel="noopener"&gt;Qblox&lt;/a&gt; 团队的一员，该团队一直以来都在积极与 &lt;a href="https://www.nvidia.com/en-us/solutions/quantum-computing/nvqlink/" class="external-link" target="_blank" rel="noopener"&gt;Nvidia&lt;/a&gt; 合作，以推广 &lt;a href="https://nvidianews.nvidia.com/news/nvidia-nvqlink-quantum-gpu-computing" class="external-link" target="_blank" rel="noopener"&gt;NVQLink&lt;/a&gt; 标准，以此作为连接在 GPU、CPU 和 QPU（量子处理器，包括 Qblox 正在开发的前端量子控制器）上计算的异构系统的一种方式。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/nvqlink/nvqlink1.webp' style='width:50%;margin:0;padding:0;'&gt;&lt;img src='https://qsysarch.com/images/nvqlink/nvqlink2.webp' style='width:50%;margin:0;padding:0;'&gt;&lt;/p&gt;&#10;&lt;h1 id="nvqlink概览"&gt;&#10; NVQLink概览&#10; &lt;a class="heading-link" href="#nvqlink%e6%a6%82%e8%a7%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;NVQLink 不是连接 GPU 和量子处理器的又一条“电缆”，而是一个完整的框架，允许互连从网络到软件堆栈的异构设备：&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/nvqlink/connect-quantum-processing-units-qpus-with-gpus.webp" alt="NVQLink 高级系统架构" /&gt; 图片来源：&lt;a href="https://www.naddod.com/blog/nvidia-nvqlink-introduction-connecting-quantum-and-gpu-computing" class="external-link" target="_blank" rel="noopener"&gt;Nandod&lt;/a&gt;&lt;/p&gt;&#10;&lt;h2 id="性能规格"&gt;&#10; 性能规格&#10; &lt;a class="heading-link" href="#%e6%80%a7%e8%83%bd%e8%a7%84%e6%a0%bc"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;关键的“硬件”规格侧重于网络和计算资源的性能：&lt;/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="#%e4%b8%ba%e4%bb%80%e4%b9%88%e9%9c%80%e8%a6%81-nvqlink"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;你可能会问：“这为什么重要？”&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;它创建了一个开放标准，将量子硬件与加速的 GPU 计算紧密集成。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;它支持混合工作流程：神经网络校准、量子纠错（QEC）等。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;它提供了一个将软件和硬件集成在一起的开放平台，使任何人都能与量子计算机进行交互，而无需淹没在浩瀚的知识海洋中，这要归功于&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;&#10;&lt;h1 id="nvqlink-规范架构设计"&gt;&#10; NVQLink 规范：架构设计&#10; &lt;a class="heading-link" href="#nvqlink-%e8%a7%84%e8%8c%83%e6%9e%b6%e6%9e%84%e8%ae%be%e8%ae%a1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;NVQLink 白皮书现已发布在 &lt;a href="https://arxiv.org/abs/2510.25213" class="external-link" target="_blank" rel="noopener"&gt;https://arxiv.org/abs/2510.25213&lt;/a&gt;，让我们深入了解一下所提出的架构的细节：&lt;/p&gt;</description></item><item><title>QRAM 作为量子比特阵列</title><link>https://qsysarch.com/zh-cn/posts/quantum-memory/</link><pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%e6%9d%a5%e8%bf%9b%e5%8c%96"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;回想起上世纪70年代，那时大型笨重的主机随处可见，人们很容易联想到如今的计算机系统。例如，下图对比了1966年IBM的&lt;a href="https://en.wikipedia.org/wiki/IBM_System/360_Model_91" class="external-link" target="_blank" rel="noopener"&gt;360/91&lt;/a&gt;和2025年部署在G-QuAT的Keysight &lt;a href="https://www.keysight.com/nl/en/about/newsroom/news-releases/2025/0729-pr25-keysight-installs-worlds-largest-commercial-quantum-control-system-at-aists-leading-edge-g-quat-center.html" class="external-link" target="_blank" rel="noopener"&gt;1000量子比特&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-companys-co-packaged-optics-roadmap" class="external-link" target="_blank" rel="noopener"&gt;https://www.tomshardware.com/tech-industry/semiconductors/amd-reportedly-establishes-usd280-million-silicon-photonics-hub-in-taiwan-new-r-and-d-center-could-accelerate-companys-co-packaged-optics-roadmap&lt;/a&gt;)。我不敢妄言这将如何发生，更不敢断言何时发生，但回顾大型机的发展历程，我们可以确信它终将到来。一旦实现，所有电子设备都将与量子计算元件捆绑在一起。&lt;/p&gt;&#10;&lt;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%e4%b9%88%e8%ae%a9qram%e6%88%90%e4%b8%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;如果不回答这个关键问题，这段题外话就毫无意义：量子随机存取存储器（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="#%e5%a4%84%e7%90%86%e5%99%a8%e4%b8%8e%e5%86%85%e5%ad%98"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;关于“内存隐喻”的一个难题是，是否可以接受“简化”量子控制系统，使其成为内存的辅助部分。或者是否需要一个量子控制单元（QCU），它像图形处理器（GPU）一样处理量子比特，在这种情况下，重点在于执行门序列。&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/next-scale-level/quantum-memory-vs-quantum-control.webp" alt="量子存储器 vs 量子处理" /&gt;&lt;/p&gt;&#10;&lt;p&gt;当然，有人可能会说这两种情况本质上是一样的——在第一种情况下，处理器只不过是内存阵列中的控制器。但从系统架构的角度来看，重要的是要强调所暴露的接口：对于内存而言，实际的门序列器是CPU/GPU，与QRAM的交互基于门（写入）和读出（读取）。对于量子处理器而言，序列器位于量子计算单元（QCU）中，交互基于门序列。为了使前者正常工作，CPU/GPU必须处理一定程度的多量子比特门同步性。&lt;/p&gt;&#10;&lt;h1 id="扩大规模"&gt;&#10; 扩大规模&#10; &lt;a class="heading-link" href="#%e6%89%a9%e5%a4%a7%e8%a7%84%e6%a8%a1"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;量子比特面临的诸多挑战之一是规模问题，包括数量和可靠性两个方面。数量指的是在同一芯片上封装更多量子比特的能力，而可靠性指的是制造出特性更明确的量子比特的能力。我特意没有提及退相干时间，因为更长的退相干时间未必总是有利的；我会在以后的备忘录中详细讨论这个问题。&lt;/p&gt;</description></item><item><title>GPUDirect RDMA：RoCE 数据包的生命周期</title><link>https://qsysarch.com/zh-cn/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-cn/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-developers" class="external-link" target="_blank" rel="noopener"&gt;DGX Spark&lt;/a&gt; 集成的 200Gb connectX-7（右图）。&lt;/p&gt;&#10;&lt;h1 id="rdma-作为客户端服务器协议"&gt;&#10; RDMA 作为“客户端/服务器”协议&#10; &lt;a class="heading-link" href="#rdma-%e4%bd%9c%e4%b8%ba%e5%ae%a2%e6%88%b7%e7%ab%af%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%8d%8f%e8%ae%ae"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;让我们首先概述一下 RDMA 协议。&lt;/p&gt;&#10;&lt;h2 id="rdma-设置"&gt;&#10; RDMA 设置&#10; &lt;a class="heading-link" href="#rdma-%e8%ae%be%e7%bd%ae"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;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-%e9%98%9f%e5%88%97%e5%af%b9"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;RDMA 通信基于一组三个队列。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;SQ&lt;/code&gt;：发送队列&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;RQ&lt;/code&gt;：接收队列&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;CQ&lt;/code&gt;：完成队列&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;RDMA 队列对，或称 &lt;code&gt;QP&lt;/code&gt;，指的是发送队列 + 接收队列。&lt;/p&gt;</description></item><item><title>量子纠错：量子比特的生命周期</title><link>https://qsysarch.com/zh-cn/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-cn/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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;假设我们要对一个逻辑量子比特进行纠错，该逻辑量子比特被编码成多个物理量子比特。当发生错误时，其中一个物理量子比特可能会翻转，翻转形式可以是比特翻转（X），也可以是相位翻转（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;*，这涉及到测量与数据量子比特相互作用的特定辅助量子比特。辅助量子比特首先与数据量子比特纠缠，然后进行读出。纠缠持续时间很短，刚好足以完成读出操作。在谷歌的案例中，这种纠缠是通过 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 门）。在谷歌的案例中，还使用了一种额外的动态解耦 (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%80%bb%e8%be%91%e9%87%8f%e5%ad%90%e6%af%94%e7%89%b9%e4%b8%8a%e6%89%a7%e8%a1%8c%e9%87%8f%e5%ad%90%e7%ae%97%e6%b3%95"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;在物理量子比特上执行量子算法意味着对物理量子比特进行&lt;a href="https://qsysarch.com/posts/executing-a-quantum-algorithm/" &gt;门&lt;/a&gt;。但如果要操作逻辑量子比特呢？这看似一个简单的问题，但答案并非如此直接，处理逻辑量子比特门的方法有很多种。我们先从单量子比特门入手，然后再探讨多量子比特门的挑战。&lt;/p&gt;&#10;&lt;p&gt;将单量子比特门应用于逻辑量子比特&lt;/p&gt;&#10;&lt;p&gt;逻辑门实现类型：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.riverlane.com/news/speeding-up-amo-qubits-with-fast-transversal-logic" class="external-link" target="_blank" rel="noopener"&gt;横向门&lt;/a&gt;: 横向门独立地作用于每个物理量子比特。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;逻辑量子比特门等价于对每个物理量子比特应用相同的门操作。例如，对于7量子比特的Steane码，逻辑Hadamard门是通过对每个物理量子比特应用物理H门来实现的。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://arxiv.org/abs/2404.13202" class="external-link" target="_blank" rel="noopener"&gt;晶格手术&lt;/a&gt; / &lt;a href="https://arxiv.org/abs/1311.0277" class="external-link" target="_blank" rel="noopener"&gt;拓扑编码&lt;/a&gt; &lt;img src='https://qsysarch.com/images/quantum-error-correction/surface-code-and-various-logical-entagling-gate-scheme.webp' style="width:520px;max-width:100%;float:right;padding-left:20px;"&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;在表面码中，逻辑量子比特被编码为大块的物理量子比特。逻辑运算通过合并和分割这些块或编织缺陷来实现，这会改变编码拓扑结构。&lt;/p&gt;</description></item><item><title>低温计算机和控制器</title><link>https://qsysarch.com/zh-cn/posts/cryogenic-machines/</link><pubDate>Sun, 05 Oct 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%b8%a9%e9%87%8f%e5%ad%90qpu"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;img src='https://qsysarch.com/images/bluefors-high-density-wiring.webp' style='float:right;max-width:280px;padding-left:10px;'&gt;&#10;&lt;p&gt;关于低温应用，有几个方面需要考虑：首先，将量子处理器（QPU）置于冰箱中，而控制堆栈则在室温下运行。目前，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%b8%a9%e6%95%b0%e6%a8%a1%e8%bd%ac%e6%8d%a2%e5%99%a8-dac"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;第二个方面是在更低的温度下运行控制堆栈。低温运行的优势在于，必须将噪声水平降至最低，以防止量子比特之间的干扰。因此，低温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%b8%a9%e6%8e%a7%e5%88%b6%e4%ba%9a%e7%91%9f%e5%a3%ab"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;低温专用集成电路（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_V5_final.pdf" 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="#%e6%a1%88%e4%be%8b%e7%a0%94%e7%a9%b6%e8%b0%b7%e6%ad%8c%e8%bf%88%e5%90%91%e9%87%8f%e5%ad%90%e5%a4%84%e7%90%86%e5%99%a8%e4%bd%8e%e6%b8%a9%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;尽管谷歌发布的&lt;a href="https://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;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/typical-single-qubit-control-readout-hardware.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/materialization-of-a-72qubits-system.webp' style='width:50%'&gt;&lt;/p&gt;&#10;&lt;p&gt;接下来的两张幻灯片展示了谷歌团队提出的关于“低温预制”的方案，不出所料，这与之前将控制权转移到 4K 的理念相符。有趣的是，对谷歌而言，数字领域被分为两部分，分别以 4K 和 300K 分辨率运行。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/architecture-suitable-for-72qubits.webp' style='width:50%'&gt;&lt;img src='https://qsysarch.com/images/google-cryo-2019/possible-hardware-architecture-for-1m-qubits.webp' style='width:50%'&gt;&lt;/p&gt;</description></item><item><title>哪种机器适合量子算法？</title><link>https://qsysarch.com/zh-cn/posts/executing-a-quantum-algorithm/</link><pubDate>Sun, 28 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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="#%e6%89%a7%e8%a1%8c%e9%87%8f%e5%ad%90%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;上图中有几点值得注意：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://www.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%a0%87%e5%87%86%e5%8c%96%e6%97%b6%e9%97%b4t1-%e5%92%8c-t2"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;若不介绍两个关键时间点_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;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;em&gt;Ramsey&lt;/em&gt; 和 T2：T2 最常用的特征是 &lt;em&gt;Ramsey 干涉测量法&lt;/em&gt;。&lt;/p&gt;</description></item><item><title>3蓝1棕：格罗弗算法</title><link>https://qsysarch.com/zh-cn/posts/but-what-is-quantum-computing/</link><pubDate>Tue, 23 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%bb%8f%e5%85%b8%e6%af%94%e7%89%b9%e4%b8%8e%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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/qubit-vs-cbit.webp" alt="经典比特 vs 量子比特" /&gt;&lt;/p&gt;&#10;&lt;h2 id="传统逻辑门与量子门"&gt;&#10; 传统逻辑门与量子门&#10; &lt;a class="heading-link" href="#%e4%bc%a0%e7%bb%9f%e9%80%bb%e8%be%91%e9%97%a8%e4%b8%8e%e9%87%8f%e5%ad%90%e9%97%a8"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;&#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-cn/posts/the-infiniband-transport-protocol-of-rocev2/</link><pubDate>Mon, 22 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;让我们从实际的 RoCEv2 帧开始：&lt;/p&gt;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/rocev2-frame-format.webp" alt="RoCEv2 帧" /&gt;&lt;/p&gt;&#10;&lt;h2 id="基本传输头-bth"&gt;&#10; 基本传输头 (BTH)&#10; &lt;a class="heading-link" href="#%e5%9f%ba%e6%9c%ac%e4%bc%a0%e8%be%93%e5%a4%b4-bth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;BTH 标头中包含的关键字段：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;操作码：用于指定 RDMA 操作的类型，例如 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%89%a9%e5%b1%95%e4%bc%a0%e8%be%93%e5%a4%b4-eth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;InfiniBand传输层包含多个扩展头部，用于特定功能。对于RDMA而言，最值得关注的两个扩展头部是RETH和AETH。&lt;/p&gt;&#10;&lt;h5 id="rdma-扩展传输头-reth"&gt;&#10; RDMA 扩展传输头 (RETH)&#10; &lt;a class="heading-link" href="#rdma-%e6%89%a9%e5%b1%95%e4%bc%a0%e8%be%93%e5%a4%b4-reth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h5&gt;&#10;&lt;img src='https://qsysarch.com/images/RoCEv2-IBTH-RETH-frame.webp' style="width:320px;max-width:100%;float:right;padding-left:20px;"&gt;&#10;&lt;p&gt;RDMA_WRITE 操作需要多个元素，这些元素在 RETH 扩展报头的各个字段中表示。该报头会将写入操作的详细信息告知接收硬件，包括：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;虚拟地址：数据将写入的目标内存地址&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;远程密钥 (R_Key)：用于验证内存区域权限的访问密钥&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;长度：要传输的数据的大小&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h5 id="ack-扩展传输标头-aeth"&gt;&#10; ACK 扩展传输标头 (AETH)&#10; &lt;a class="heading-link" href="#ack-%e6%89%a9%e5%b1%95%e4%bc%a0%e8%be%93%e6%a0%87%e5%a4%b4-aeth"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h5&gt;&#10;&lt;p&gt;如前所述，IBTL 需要在传输不可靠时通知发送方。这是通过 EATH 扩展实现的，该扩展包含以下字段：&lt;/p&gt;</description></item><item><title>量子实体组件系统</title><link>https://qsysarch.com/zh-cn/posts/quantum-entity-component-system/</link><pubDate>Sun, 21 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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-cn/posts/the-confusing-world-of-rdma-and-infiniband/</link><pubDate>Tue, 16 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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-%e5%92%8c-rdma%e5%b8%82%e5%9c%ba%e8%90%a5%e9%94%80%e4%b8%8e%e6%8a%80%e6%9c%af"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;让我们从官方 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;&#10;&lt;p&gt;&#10;&lt;img class="glightbox" src="https://qsysarch.com/images/gpunetio-packet-xfer.webp" alt="GPUNetIO：以 GPU 为中心的数据传输" /&gt;&lt;/p&gt;</description></item><item><title>Rust的秘诀在于：更精确的类型？</title><link>https://qsysarch.com/zh-cn/posts/0004-rust-to-the-rescue/</link><pubDate>Sun, 14 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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="#%e9%97%ae%e9%a2%98%e9%99%88%e8%bf%b0"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;code&gt;fn δ( l: &amp;amp;mut Vec&amp;lt;T&amp;gt; )&lt;/code&gt;: 不进行内存分配，只是修改输入向量&lt;/p&gt;</description></item><item><title>利用人工智能改进量子系统</title><link>https://qsysarch.com/zh-cn/posts/using-ai-to-improve-quantum-systems/</link><pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e6%9d%a5%e5%b8%ae%e5%bf%99%e4%ba%86"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h1&gt;&#10;&lt;p&gt;他们的想法非常吸引人：利用强化学习方法，基于旨在最大化控制效率的奖励机制，帮助量子控制系统调整量子比特的控制（即量子门）。你可能会问，这有什么意义呢？正如前文（&lt;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;！）上执行，在量子控制系统（下图中的“b”）上执行。&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%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%b3%bb%e7%bb%9f%e5%85%b3%e9%94%ae%e7%bb%84%e4%bb%b6"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/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%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%b3%bb%e7%bb%9f%e5%ad%a6%e4%b9%a0%e6%96%b9%e6%b3%95"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;强化学习方法通常可以分为两大类：基于价值的方法和基于策略梯度的方法。&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%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%b3%bb%e7%bb%9f%e8%bf%ad%e4%bb%a3%e4%b8%8e%e5%9b%9e%e5%90%88"&gt;&#10; &lt;i class="fa-solid fa-link" aria-hidden="true" title="链接到标题"&gt;&lt;/i&gt;&#10; &lt;span class="sr-only"&gt;链接到标题&lt;/span&gt;&#10; &lt;/a&gt;&#10;&lt;/h2&gt;&#10;&lt;p&gt;在强化学习中，回合和迭代是不同的概念：&lt;/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;&#10;&lt;img src='https://qsysarch.com/images/reinforcement-learning-02.webp' style=""&gt;&#10;&lt;p&gt;让我们逐一实现这些想法，首先从剧集抽样开始。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;每一集都从量子比特处于 &lt;em&gt;|O&amp;gt;&lt;/em&gt; 状态开始。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;启动观察-行动循环&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;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;em&gt;强化&lt;/em&gt;方法中至关重要。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;计算&lt;em&gt;得分&lt;/em&gt;函数：&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;衡量如果网络参数向特定方向调整，所选操作的可能性会增加（或减少）多少。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;换句话说，对采样动作计算 ∇(𝜃)。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;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-cn/about/</link><pubDate>Mon, 18 Aug 2025 11:01:21 -0400</pubDate><guid>https://qsysarch.com/zh-cn/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-cn/posts/0002-wheres-my-qubit/</link><pubDate>Mon, 18 Aug 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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-cn/posts/0001-getting-started/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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; (图片来源：&lt;a href="https://www.linkedin.com/posts/nathan-levy_java-kotlin-software-activity-7351322194876014592-9AHV?utm_source=share&amp;amp;utm_medium=member_desktop&amp;amp;rcm=ACoAAAA6rd0BajjuLiGtz4MFPiUjNbnRLFMpIzM%27" class="external-link" target="_blank" rel="noopener"&gt;QM&lt;/a&gt;)&lt;/p&gt;&#10;&lt;p&gt;这则漫画用一个有趣的比喻来描述“驱动”量子计算机所面临的挑战：它被描述为“驱动数百名用户（量子控制器）并行、完美流水线化地同步操控数千个量子比特（量子元件），所有这一切都要达到纳秒级的精度”。更令人兴奋的是，这些数字将在五年内（2030年）乘以一千倍，因此挑战将变得越来越激动人心。&lt;/p&gt;</description></item><item><title/><link>https://qsysarch.com/zh-cn/epigraph/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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-cn/posts/resilient-networking-for-autonoumous-vehicules/</link><pubDate>Sat, 01 Jan 0000 00:00:00 +0000</pubDate><guid>https://qsysarch.com/zh-cn/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>