news 2026/10/6 1:34:31

V100 SXM2转接卡三卡部署:低成本大显存本地推理方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
V100 SXM2转接卡三卡部署:低成本大显存本地推理方案

别人看到“SXM2 V100转接卡”这几个字,第一反应多半是“都2025年了,还有人折腾这个?”但我可以明确告诉你,在本地大模型彻底爆发之后,V100 SXM2模块加转接卡不但没死,反而成了二手AI硬件圈里性价比最凶的一条路线。一张V100 SXM2 16GB的行情,只有同显存PCIe版的一半甚至三分之一,三张拼起来就是48GB显存,跑Qwen3-27B、32B级别的量化模型都绰绰有余。而这次这一套“PCIe Gen3 x4三卡部署方案”,是我个人实测下来“低成本、能落地、踩坑可控”的完整模板,专门写给那些手里有旧X99平台、想用最低预算搞一台本地推理机的人。

这个方案的核心思路很简单:用转接卡把SXM2模块变成标准PCIe卡,通过x4通道一拖三,用llama-server跑GGUF模型。它能解决的核心问题也很明确——“预算有限但显存需求很大”。适合三类人:捡垃圾攒机的极限性价比玩家、小工作室搭私有化推理节点、以及想在Ubuntu下自己编译llama.cpp并对接API的折腾党。我会把从转接卡选型、供电散热、主板通道拆分,到llama-server版本选择和显存优化,全部拆开讲清楚。

1. 方案背景与核心思路

1.1 为什么SXM2 V100转接卡这么香

先说市场逻辑。V100的PCIe版和SXM2版性能几乎没有差别,核心都是GV100,但SXM2版是给英伟达自家的DGX-1、HGX整机用的,整机退役之后,模块单独流出来,没有标准接口,普通主板用不了,价格就被压得很低。转接卡的出现,就是把这个“废物”重新变成可以插在主板上跑的硬件。

但转接卡不是单纯的“换个接口”这么简单。SXM2模块没有PCIe金手指,它靠边缘的金手指触点输出PCIe信号、电源、管理总线等一堆东西。转接卡上除了要把这些信号引到PCIe插槽,还要做供电转换,因为SXM2的核心电压不是标准的12V。市面上常见的SXM2转PCIe转接卡,大致分两种:一种是把模块“躺着”放的,另一种是“站着”竖插的,后者更适合机箱风道。价格从两三百到六七百都有,差别主要在供电设计和PCB层数。

三卡部署的吸引力在于,单卡16GB显存跑7B、8B模型很宽裕,但跑27B、32B系列就很局促,Q4量化勉强放下,Q8就爆了。三张卡拼48GB,就能把量化等级拉高、上下文窗口拉长,这种“以量取胜”的做法,在推理场景比一张A6000 48GB便宜一个数量级。

1.2 为什么带宽选PCIe Gen3 x4而不是x16

这个方案里最容易被质疑的就是“x4带宽够用吗”。先说结论:跑大模型推理,x4能接受,但有明确代价。PCIe Gen3 x4的理论单向带宽约3.94GB/s,双向约7.88GB/s。而一张V100 SXM2的HBM2显存带宽是900GB/s。两个数字相差两百多倍,说明什么?说明GPU内部算力吞吐和显存访问根本不受PCIe限制。

但数据从内存到显存、从显存到内存,是要走PCIe的。LLM推理有两个阶段,prefill(处理你输入的提示词)阶段需要把大量token数据从CPU内存搬进显存,如果模型权重不全在显存,还要反复交换;decode(生成token)阶段则是GPU算得快,输出token后再同步回内存。实测下来,x4相比x16,在纯decode模式下token/s损失大概在5%~15%,prefill阶段如果有大量输入token,差距会拉到20%~30%。但如果你用三卡跑模型,显存足够放下整个模型,权重不换入换出,x4的主要瓶颈就只在输入输出数据搬运上。

这个方案选择x4,更大的原因是主板侧的通道限制。一张转接卡如果跑x4,三张就是12条PCIe通道,很多X99平台把通道拆成x16+x16+x8或者x8+x8+x8+x8,要同时插三张卡,必须用支持PCIe拆分(bifurcation)的插槽,或者用带PLX芯片的拆分卡。篇幅关系,通道规划我放到后面第2.3节详细说。

1.3 这套方案到底适合谁

我先泼一盆冷水:如果你是追求极致性能、要跑训练或者高并发API服务的,别上这个方案,转接卡的稳定性和带宽都撑不住。但如果你和我一样,主要用llama-server跑量化模型、做个人知识库、甚至拉个内网小服务给同事用,那这个方案非常合适。

一句话总结:三卡SXM2 V100转接卡方案,是“预算敏感型玩家的大显存捷径”,不是“数据中心替代品”。把预期放对,这套东西就是神;放错了,你会被供电和散热折磨到崩溃。

2. 硬件选型与转接卡原理

2.1 SXM2模块和PCIe版V100的核心区别

很多新入坑的朋友分不清SXM2和PCIe版V100的区别,甚至以为SXM2是某种“魔改版”。其实两者核心计算单元都是GV100,CUDA核心数是5120个,16GB HBM2显存,支持Tensor Core。区别在于封装和功耗规格:PCIe版有一个巨大的散热器,TDP是250W,通过标准PCIe金手指插槽供电;SXM2版是扁平模块,靠底部金手指触点,TDP高达300W,必须借助转接卡或原装底座才能供电和通信。

这个300W在部署时是个大问题。普通PCIe插槽只能提供75W供电,即便转接卡上有8pin供电口,也只解决了“供电接口”的问题,散热还是得靠外部强制风冷。SXM2模块本身没有主动散热结构,黄色基板下面是HBM2显存颗粒,满载时核心温度能在几十秒内冲到100℃,所以风道设计非常重要。

另外注意,SXM2 V100的所有功耗都是通过转接卡上的供电接口进去的,不转接就完全没法点亮。选购转接卡时,优先选带两个8pin供电的,一个8pin根本喂不饱300W,长期压着功耗上限跑,不稳定是小事,烧卡是大事。

2.2 转接卡选型的关键参数

我在选购转接卡时踩过一个很大的坑,就是只看外形,不看“走线”。SXM2模块上的信号线和电源线,转接卡处理得好不好,直接影响稳定性。过了三块转接卡的对比之后,我总结出这几个关键点:

一是看供电相数。转接卡上有MOS管、电感、PWM控制器,把12V转换成模块核心电压。相数越多,瞬时负载能力越强。单相供电的转接卡在负载波动时电压纹波大,轻则性能下降,重则报错掉驱动。

二是看PCB层数。SXM2金手指上的差分信号线对,要保证阻抗连续,至少4层板才靠谱。那些看起来非常薄、能透光的转接卡,大概率是2层板,高频信号串扰严重,可能导致系统无法识别显卡。

三是看金手指触点材质。全镀金触点比普通的耐氧化、接触阻抗低。二手SXM2模块的金手指容易氧化,转接卡触点如果不达标,插拔几次就接触不良。

四是看风扇接口。有些转接卡板载一个4pin风扇插座,可以接12cm涡轮风扇直吹模块,这个设计非常实用,我强烈建议选带风扇座的。

2.3 三卡部署的主板通道规划

现在聊最关键的通道规划。三张转接卡都要工作,必须保证主板给到每张卡的PCIe链路是有效的。我的方案用的是X99平台,那个华南X99配E5-2666V3的组合,内存便宜、通道多,很适合这种拼卡玩法。

先说CPU侧。X99平台的Haswell-E/Broadwell-E处理器,PCIe通道数一般是28条或40条。40条的CPU(比如E5-2683V3、E5-2696V3)可以拆成x16+x16+x8,物理上能满足三卡,但能拆出x4吗?不一定。X99主板上的插槽拆分方式由BIOS决定,华南X99默认情况下很多插槽是“按固定x16/x8方式分线”的,三张卡想都走x4,通常需要BIOS里开启“PCIe Slot Bifurcation”选项,把一条x16拆成四个x4,或者两个x8,然后再配合转接卡。

如果你的主板不支持Bifurcation,还有一种办法:用PLX switch扩展卡,把x16拆成多个x4/x8。但这种卡价格不低,而且要占额外的供电和空间,性价比大打折扣。我实测最稳的组合其实是:主板两个x16插槽,每个插槽插一张“x8模式的SXM2转接卡”(有些转接卡背面有跳线可以切换x4/x8/x16),再用一个x4的插槽或拆分出的x4插第三张,这样三卡都至少跑在x4带宽。如果想全插在x16物理槽里,但每张只认x4链路,也可以用Bifurcation把x16拆成四个x4,全部插满。

2.4 内存搭配(DDR3还是DDR4)

先强调一个问题:V100显卡本身和DDR3/DDR4内存没有任何直接关系,显存是HBM2,但很多人在搜“Tesla V100配DDR3”之类的内容。这里的核心逻辑是:三卡方案主要用于推理,如果模型权重和KV cache不能全部放进显卡显存,一部分就会落在CPU内存里。llama.cpp支持部分层offload到CPU,这时CPU内存的带宽和容量就会影响速度。

华南X99有两种版本,DDR3和DDR4。价格上DDR3更便宜,但内存带宽也低,双通道DDR3-1600理论带宽约25.6GB/s,四通道约51.2GB/s;DDR4-2400四通道能到76.8GB/s。如果你计划Qwen3-32B这类模型三卡显存勉强放下,偶尔需要把长上下文场景offload一点,那么优先考虑DDR4板子。如果预算实在紧张,DDR3也能跑,代价是prefill阶段更慢,别指望太多。

3. 三卡部署实操:从点亮到稳定

3.1 供电系统规划

三张V100 SXM2转接卡,每张峰值功耗300W,光显卡就是900W,再加上CPU(E5 v3满载135W左右)、主板、内存、风扇、硬盘,整机峰值功耗轻松超过1200W。电源这块省不得。

我的做法很简单粗暴:直接上一个1600W的钛金/白金电源,或者用两个850W电源,一个专门给三张显卡供电,另一个给主板和CPU。这样做的好处是,显卡供电不跟主板抢线路,瞬时负载再大也不容易把主板供电拉崩。转接卡的供电必须用模组线里的PCIe 8pin(或者EPS 8pin,要看转接卡接口定义),供电线尽量短,线径AWG16起步。

这里有几个实测教训:

  • 别把SXM2模块和转接卡的总供电压在一条SATA转6pin线上,SATA接口只能提供54W左右,转接卡满载时会重度压降,直接导致GPU报“unknown error”或者无法初始化。
  • 开机瞬间三张卡同时冲高电流,如果电源的“过流保护”阈值太灵敏,会直接断电重启。选择电源时看“峰值功率”要足够大,很多品牌的1600W电源峰值能到1800W+,比较保险。
  • 有条件的话,每张转接卡配一个独立的PCIe供电线,别用那种一拖二的并线,避免单根线电流过高。

3.2 散热与风道改造

这是整个方案里最容易被低估、也最可能翻车的地方。SXM2模块没有风扇,转接卡竖插在机箱里,如果不做强制风道,三卡满载跑5分钟就会过热降频,严重时直接宕机。

我用的方案是:把三张卡装在开放式机架(或者大塔式机箱里),每张卡正上方用扎带固定一个12cm的4pin风扇,向SXM2模块吹风。注意风扇方向,很多人吹反了,把热风往卡里灌。正确方向是风从卡的下方往上吹过散热片,形成穿透式风道。

温度监控用nvidia-smi看就行,V100 SXM2的GPU温度上限是95℃左右,我建议长期控制在80℃以内。实测三卡满载跑Qwen3-8B多轮对话,进风26℃、风扇转速2500RPM时,三卡温度稳定在72~78℃。如果你机箱通风差,建议把侧板拆掉,或者干脆用机架把卡平铺开。

3.3 驱动、CUDA与系统识别

装系统我建议直接用Ubuntu 22.04 LTS,内核版本和NVIDIA驱动支持都很成熟。别用Windows那边折腾,虽然能识别,但转接卡的链路训练、供电管理和监控工具体验都比Linux差一截。

驱动安装我统一用NVIDIA官方的runfile安装包,不用apt源里的版本,因为apt版本经常和CUDA版本对不上。命令大概是这样:

sudo apt update sudo apt install build-essential dkms linux-headers-$(uname -r) wget https://download.nvidia.com/XFree86/Linux-x86_64/545.23.08/NVIDIA-Linux-x86_64-545.23.08.run chmod +x NVIDIA-Linux-x86_64-545.23.08.run sudo ./NVIDIA-Linux-x86_64-545.23.08.run --dkms -s

注意,驱动版本和CUDA版本要匹配,llama.cpp编译时用的CUDA版本建议是11.8或12.x,对应驱动版本选470或525以上的都行。装完之后用nvidia-smi看,如果三张卡都正常显示,且没有报“ERR!”或者“No devices were found”,说明转接卡和PCIe链路已经通了。如果卡掉卡,第一步检查供电线是否插紧,第二步把转接卡在插槽里重新插拔一次,SXM2触点接触不良的概率非常高。

3.4 链路带宽确认与性能基准

识别到卡之后,第一步不是直接跑模型,而是确认每张卡实际运行在什么带宽下。R470之后的驱动跑nvidia-smi -q -d pcie可以看当前PCIe速度:

nvidia-smi -q -d PCIE | grep -E "Link|Current|Max"

如果显示Current: Gen3 x4,说明链路协商成功;如果显示Gen2 x4或者Gen1 x1,大概率是转接卡金手指氧化、插槽接触不良或者供电不足,需要处理之后再测试。

链路确认后,我会跑一个纯推理基准,把三张卡分别跑一个8B模型,对比单卡和双卡的速度,确保三卡之间没有明显差异。如果某个卡明显慢很多,优先怀疑散热导致过热降频,其次是供电不稳定。

4. 用llama-server跑Qwen3系模型的完整流程

4.1 为什么选llama-server而不是其他框架

在大模型推理这块,llama.cpp是“低成本部署”的绝对主流,llama-server是它自带的HTTP服务端。V100的算力是7.0,对CUDA和Tensor Core支持完善,llama.cpp在V100上跑FP16和量化GGUF都很顺手。相比之下,vLLM虽然吞吐高,但官方支持老卡不如llama.cpp灵活,而且三卡x4环境下的显存碎片问题更多。

从热搜词来看,很多人关心“v100用什么llama-server版本”。我的建议是:直接用llama.cpp最新的release版,因为GGUF格式和量化方案会持续变,老版本可能不支持新模型的架构。如果编译期遇到问题,可以回退到几个月前的稳定版。对V100这种老卡,注意llama.cpp的CUDA后端在编译时要打开对老架构的支持,确保CMAKE_CUDA_ARCHITECTURES包含75以下的架构值,比如70。

4.2 从GitHub源码编译llama.cpp

如果你用release的预编译包,最省事。但许多用户为了集成mmproj-f16.gguf跑多模态模型,或者想要最新的CUDA优化,都会选择本地编译。编译本身不复杂:

git clone https://github.com/ggml-org/llama.cpp cd llama.cpp cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=70 cmake --build build --config Release -j $(nproc)

编译产物在build/bin/里,llama-server可执行文件直接可以用。这里有一个典型编译注意点:CMAKE_CUDA_ARCHITECTURES不要设成all,否则会编译出很多种架构的二进制,又慢又大;V100对应的是70。

顺便说一下网上搜“V100”时那些很误导人的“平台工具集问题”——Visual Studio 2010的C++项目里,平台工具集叫“v100”,和NVIDIA V100显卡完全同名。很多人装Visual Studio 2022去打开老项目,报错“找不到Visual Studio 2010的生成工具(平台工具集=v100)”,实际跟显卡没有半点关系。解决办法是装上VS2010生成工具,或者右键项目属性,把平台工具集改成v143重编一次。

4.3 GGUF模型选择与显存估算

模型文件选择上,Qwen3-8B和Qwen3-27B是两个特别热门的档位。8B用Q4_K_M大概5GB左右,Q8大概8~9GB;27B用Q4_K_M大概16~17GB,Q8大概28GB。三卡48GB,跑一个27B的Q8再开长上下文都没问题,8B甚至可以三卡并发开不同模型服务。

模型文件下载之后,启动命令如下:

./build/bin/llama-server \ -m /models/qwen3-8b-q4_k_m.gguf \ --host 0.0.0.0 \ --port 8080 \ -ngl 99 \ -c 8192

其中-ngl 99表示所有层都offload到GPU,-c 8192是上下文长度。启动后看日志,每张卡显存占用就是稳态水平。如果你想跑多模态模型,比如Qwen3-VL系列,在启动命令里加一个--mmproj /models/mmproj-f16.gguf参数即可。

4.4 “系统资源不够,无法完成API”的真实原因与对策

热搜里“v100提示系统资源不够,无法完成api”这种情况,我遇到过太多次,绝大多数不是真的系统资源不足,而是显存OOM。llama-server在启动时一次性申请上下文窗口所需的KV cache显存,如果你给了-c 32768,27B模型Q4还要扛32K上下文,总显存需求轻松爆掉48GB。于是服务器返回类似“out of memory”或“resource exhausted”的错误,API调不通。

排查方法很简单:

nvidia-smi

看三卡显存占用,如果已经有卡占用接近100%,基本就是OOM。解决手段有三个方向:

  • 降低上下文长度:-c 8192或-c 4096。
  • 降低量化等级:从Q8降到Q4_K_M。
  • 减少并发请求数:--parallel 1。

如果单卡16GB要跑27B模型,显存不够,可以在llama-server里用CPU offload:

-ngl 20

也就是只把20层放到GPU,剩余层丢到CPU内存。速度会明显下滑,但至少能跑。V100 SXM2转接卡三卡方案最大的价值,就是让你完全无需offload就能跑27B——三卡协同把显存撑起来,这是它最实用的点。

4.5 三卡并发与模型部署技巧

三卡除了可以拼显存跑一个模型,也可以分别跑三个模型,或者一个开A卡一个开B卡,这样能实现不同需求同时服务。比如一张卡跑Qwen3-8B,另外两张卡跑一个27B,用不同的端口启动两个llama-server实例,互不干扰。

在llama-server的并发上,每个实例是独立的,所以要做多个API服务,其实就是手动拉起多个进程。CPU和内存层面,注意不要让三个进程争抢资源,给每个进程设置taskset -c绑核会更好。实测三卡三实例时,主板上的PCIe通道总带宽会成为瓶颈,因为三张卡同时做请求时,每条x4链路都接近满载。但普通对话场景不频繁,影响不大。如果你真的是高并发API场景,这个方案就不太合适了,建议回到x16的单卡或双卡方案。

5. 常见问题与排查技巧实录

5.1 转接卡三卡中总有一张“掉卡”

这是我的最大踩坑点。三张卡都插好后,第一次开机只有两张识别,第三张怎么都点不亮。排查了一晚上,发现是转接卡上的8pin供电没插紧,供电线只插了一半。SXM2模块的供电要求很高,接触电阻大一点点,就会导致链路训练失败。

之后我把所有转接卡都用扎带固定,供电插头用过线夹加固,再也没出现过掉卡。如果是三卡交替掉卡,优先怀疑供电线路上的电压降,换电源线比换转接卡更有效。

5.2 BIOS设置与Above 4G解码

很多X99主板默认禁用“Above 4G Decoding”,如果系统内存刚好超过4G寻址边界,显卡显存映射就会出问题,导致32G内存系统只识别24G,显卡也掉卡。设置方法:进BIOS,找到PCIe配置项,开启Above 4G Decoding和Resizable BAR(如果有的话)。

华南X99这类板子的BIOS选项可能叫Above 4GB MMIO BIOS assignment,名字不一定完全一致,但含义相同。另外,如果你的CPU不支持PCIe拆分,BIOS里开PCIe Bifurcation会出现灰显,那就只能用PLX拆分卡了。

5.3 满载时功耗峰值与跳闸

三卡满载时的瞬时功率真的不算低。我实测过一次整机功耗,用功率计挂在插座上,三卡同时跑高负载,峰值接近1500W。家里如果和空调、烤箱共用一条回路,很容易跳闸。建议单独拉一条16A以上的线路,或者至少保证其他大功率电器不在同一时间使用。

电源方面,如果用的是单电源方案,一定要买“单路+12V”输出的型号,别买多路+12V的,多路在显卡瞬时功耗高时容易触发单路过流保护,表现为负载一上去就重启。

5.4 显存温度高、风扇噪音大,怎么平衡

三卡满载时,风扇噪音和散热是天然矛盾。我现在的方案是:风扇转速调到2400RPM(用PWM控制),温度压在78℃左右,噪音还能接受。如果觉得吵,可以上水冷改装,但SXM2模块的冷头不好找,而且改造风险大,新手不建议一上来就水冷。

另外注意一个细节,SXM2模块在长期高温下,基板和焊接点会加速老化。所以即便你知道温度可以压制到不宕机,也不要长期让卡处于90℃以上。控制温度,就是延长寿命。

5.5 小技巧:如何快速判断转接卡质量

想判断手里的转接卡是不是靠谱,除了看电路做工,有个土办法:把一张满载的卡拔出来,通电但不开机,用手摸转接卡上的供电MOS管,温度是否明显偏高。正常的转接卡在待机时MOS管只是微温,如果某个位置烫手,说明供电设计太差,长时间用必炸。实测三张卡满载时,转接卡供电区温度应该在60℃以下,烫手就直接退货。

另外,建议在BIOS开启“PCIE Link Speed”为Gen3,不要用Auto。有些老主板在启动时链路训练异常,自动协商会降级到Gen1,速度惨不忍睹。手动锁Gen3能避免这种情况。

6. 扩展方向:从三卡到更多卡,以及后续还能玩什么

如果你跑顺了这套三卡x4方案,后续还有不少可以折腾的扩展点。比如用两张SXM2 V100 32GB版本拼64GB显存,跑更大的模型;或者把llama-server接入FastAPI做私有知识库后端;也可以试试vLLM的老GPU支持,但注意vLLM对PCIe带宽的敏感度比llama.cpp更高,x4环境下未必划算。

我个人在实际操作中最大的体会是:这套方案真正的价值不在硬件参数,而在于它给预算有限的人打开了一条“低门槛获得大显存”的路。硬件的坑很多,但每解决一个,你对整个PCIe链路、供电、散热、推理框架的理解都会深一层。如果你也想折腾,建议先从一张卡开始,跑通所有流程,再上三卡。一次全上,遇到问题会很难定位。

最后再分享一个实用小技巧:llama-server的日志默认会输出每个token的解码耗时,用--verbose-prompt能看到prefill的详细数据。调试阶段多看看这些数字,比盲目加显存、换量化格式有用得多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/6 1:33:28

单片机IO口拉电流与灌电流原理及工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 1:32:31

STM32嵌入式开发实战:从选型、环境搭建到外设驱动与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 1:32:28

射频探针选型全攻略:核心参数、场景与实战经验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 1:32:22

DeepSeek本地化病历结构化:急诊科真实落地的医疗AI实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/6 1:30:04

矢量网络分析仪与史密斯圆图:阻抗匹配调试实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华