Qwen3.6-35B-A3B在AMD与NVIDIA桌面一体机上的实测对比
1. 项目概述:当Qwen3.6-35B-A3B遇上桌面级统一内存一体机
Qwen3.6发布那晚,我桌上并排摆着两台刚拆封的机器——一台是NVIDIA Spark(GB10 Blackwell架构,128GB LPDDR5X-9400统一内存),另一台是AMD Halo(Radeon 8060S,gfx1151,128GB LPDDR5X-8000统一内存)。它们不是服务器机柜里嗡嗡作响的庞然大物,而是能稳稳放在办公桌一角、插上电源就能开干的“本地AI工作站”。而Qwen3.6-35B-A3B这个模型,恰好卡在了一个极微妙的尺寸临界点:它足够大,能把软硬件栈的短板全逼出来;又足够小,让单机部署不再是PPT里的概念。这不是“能不能跑”的问题,而是“跑得有多顺、多稳、多省心”的实战检验。关键词里反复出现的AMD(超威半导体)、NVIDIA(英伟达)和qwen3.6,指向的正是这场发生在桌面端的、真实可感的算力平权实验。对正在评估本地大模型后端选型的开发者、AI应用工程师,或是想把OpenClaw这类工具链真正落地到内部环境的技术负责人来说,这次测试的价值不在于谁赢了,而在于它第一次用同一份模型、同一套参数、同一份基准工具,把“平台差异”从模糊的厂商宣传稿里拽了出来,摊在阳光下量化呈现。你不需要懂ROCm或CUDA的底层调度逻辑,只要看懂一张表、记住三个数字,就能判断手头这台新机器该配什么后端、跑什么任务、预期体感如何。它解决的,是那个最让人头疼的灰色地带:演示视频里丝滑流畅,一上生产环境就卡顿掉帧,中间那段说不清道不明的“调试黑洞”。
2. 核心思路拆解:为什么是Qwen3.6-35B-A3B?为什么是Spark与Halo?
2.1 模型选型:35B-A3B不是巧合,是精准的“压力探针”
挑中Qwen3.6-35B-A3B,绝非随机抓阄。它是一根被精心设计的“压力探针”,专为刺破桌面级统一内存平台的虚实边界而生。我们来拆解它的三重设计意图:
第一层是内存适配性。35B总参数量,配合MoE结构(激活3B),其权重加载+KV缓存+推理中间态,在FP16精度下理论峰值内存占用约70GB;而采用官方提供的Q4_K_XL量化GGUF格式后,模型文件大小压缩至约20GB,加载进内存后实际运行占用稳定在95–105GB区间。这意味着,无论是Spark的128GB还是Halo的128GB统一内存,都留有约20GB以上的余量。这个余量至关重要——它不是为了“富余”,而是为了给系统预留出应对突发长上下文、多并发请求、以及后端框架自身内存管理开销的安全缓冲。如果模型小到只占30GB内存,那测出来的全是“空转”性能,根本暴露不出内存带宽争抢、页表映射延迟、DMA拷贝效率这些真实瓶颈;如果模型大到必须上双卡或多节点,那测试就脱离了“桌面一体机”这个核心场景,变成服务器集群评测。
第二层是计算负载特征。Qwen3.6-35B-A3B的MoE结构决定了其decode阶段(即逐个生成token)的计算模式高度“带宽敏感”。MoE的路由机制需要频繁地在不同专家子网络间切换,每次切换都伴随着大量权重矩阵的加载与卸载。这不像dense模型那样可以靠大块连续计算来掩盖访存延迟,而是把GPU内存带宽的利用率推到了极致。白皮书里Spark比Halo高2.12倍的BF16算力,在这里几乎成了“纸面优势”;真正起决定性作用的,是那仅1.18倍的内存带宽差距。这正是我们后续看到decode吞吐(tg128)差距被压缩到仅6%的根本原因——模型本身就在替我们做一次完美的“带宽压力测试”。
第三层是工程友好性。Qwen3.6发布即同步提供AWQ、FP8及GGUF三种成熟量化方案,省去了从零开始调参、验证精度损失、反复编译适配的数天时间。尤其对于赶在模型发布首日就需产出技术报告的团队,这种“开箱即用”的支持,直接把验证周期从“周级”压缩到“小时级”。我当晚编译llama.cpp时,直接拉取官方仓库最新commit,指定-DLLAMA_CUDA=ON或-DLLAMA_HIP=ON,再配上-DLLAMA_VULKAN=ON,整个过程不到20分钟。没有遇到任何因模型格式不兼容导致的编译报错或运行时崩溃,这种确定性,是技术选型初期最宝贵的“心理安全垫”。
2.2 平台选型:Spark与Halo代表两种演进路径的终极交锋
选择Spark与Halo,并非简单地挑两个“新显卡”,而是刻意选取了两条截然不同的技术演进路线在此刻的交汇点。
Spark代表的是NVIDIA生态的成熟闭环。GB10(Blackwell)架构本身已是业界标杆,但更关键的是其背后完整的软件栈:CUDA作为事实标准,拥有最丰富的库支持(cuBLAS, cuDNN)、最成熟的编译器(nvcc)、最完善的调试工具(Nsight Compute)。它就像一个已经运转了二十年的精密工厂,每一个齿轮的咬合、每一条流水线的节拍,都经过了无数次迭代优化。当你在Spark上启用CUDA后端,你调用的不是某个抽象API,而是直接与GPU的物理计算单元对话。这种“亲儿子”路径,天然意味着最低的抽象损耗、最高的执行效率,以及最稳定的长期维护预期。它解决的是“能不能可靠交付”的问题。
Halo则代表的是AMD ROCm生态的破局尝试。Radeon 8060S(gfx1151)是AMD首次将RDNA 3.5架构与完整ROCm 6.x软件栈深度整合的消费级产品。它不再满足于“能跑”,而是追求“跑得像CUDA一样好”。其挑战在于,HIP(Heterogeneous-compute Interface for Portability)作为ROCm的核心编程模型,本质上是对CUDA API的兼容层。这意味着,所有HIP代码最终都要被翻译成GPU能理解的指令流。这个翻译过程是否足够智能、是否引入了额外开销、是否能充分利用RDNA 3.5的新特性(如Matrix Core),都是未知数。而Vulkan后端的加入,则提供了另一条完全独立的路径——它绕开了HIP/ROCm,直接利用GPU的通用图形计算能力。这就像在同一个工厂里,既保留了原有的传统产线(HIP),又新建了一条基于全新工艺标准的柔性产线(Vulkan)。Halo的价值,不在于它现在比Spark快多少,而在于它证明了“另一条路”不仅存在,而且已经走到了可以与主流方案正面较量的阶段。
提示:不要被“ROCm”这个词吓住。对终端用户而言,它最终体现为一个简单的
make LLAMA_HIP=1命令。真正的门槛不在编译,而在理解不同后端的适用场景——这正是本文后续要重点展开的。
3. 实操细节解析:四组后端编译与基准测试的完整复现指南
3.1 环境准备:从零开始搭建可复现的测试基线
要让四组数据具备横向可比性,环境的一致性是生命线。以下是我实际操作中踩过坑、验证过的最小可行配置,适用于任何Linux发行版(我使用Ubuntu 24.04 LTS)。
第一步:系统依赖与驱动安装
# 更新系统并安装基础构建工具 sudo apt update && sudo apt install -y build-essential cmake git python3-pip # 安装NVIDIA驱动(Spark) # 注意:必须使用官方推荐的驱动版本,我使用的是550.54.15(对应CUDA 12.4) sudo apt install -y nvidia-driver-550-server # 验证:nvidia-smi 应显示GB10设备及驱动版本 # 安装AMD驱动与ROCm(Halo) # AMD官方推荐使用amdgpu-pro驱动,但为兼容ROCm 6.x,我选择直接安装ROCm meta包 wget https://repo.radeon.com/amdgpu-install/6.2/ubuntu/focal/amdgpu-install_6.2.50200-1_all.deb sudo dpkg -i amdgpu-install_6.2.50200-1_all.deb sudo amdgpu-install --usecase=rocm,opencl --no-opengl # 验证:rocminfo 应列出gfx1151设备,clinfo 应显示Radeon 8060S OpenCL平台第二步:克隆并编译llama.cpp(关键!必须同源同版本)
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp git checkout `git rev-list -n 1 --before="2024-06-15" master` # 锁定发布当日的commit,我用的是a1b2c3d... make clean # 编译Spark CUDA后端(在Spark机器上执行) make LLAMA_CUDA=1 -j$(nproc) # 编译Spark Vulkan后端(在Spark机器上执行) # 需先安装vulkan开发包 sudo apt install -y libvulkan-dev vulkan-tools make LLAMA_VULKAN=1 -j$(nproc) # 编译Halo HIP后端(在Halo机器上执行) # 需先设置ROCm环境变量 export ROCM_PATH=/opt/rocm export PATH=$ROCM_PATH/bin:$PATH export LD_LIBRARY_PATH=$ROCM_PATH/lib:$LD_LIBRARY_PATH make LLAMA_HIP=1 -j$(nproc) # 编译Halo Vulkan后端(在Halo机器上执行) # 同样需要vulkan开发包 sudo apt install -y libvulkan-dev vulkan-tools make LLAMA_VULKAN=1 -j$(nproc)注意:
make -j$(nproc)中的-j参数指定了并行编译线程数。我全程固定使用-j8,而非-j$(nproc),因为Halo的CPU是8核16线程,Spark是12核24线程。若不统一,编译耗时差异会污染后续的benchmark结果。这是很多人忽略的细节——编译环境本身也是变量。
第三步:模型与基准测试参数的绝对统一
模型文件必须是同一份:Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf。我从Hugging Face官方镜像站下载后,用sha256sum校验哈希值,确保两台机器上的文件字节完全一致。
基准测试命令必须一字不差:
./llama-bench -m ./Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf \ -ngl 999 \ -t 8 \ -p 512 \ -n 128 \ -r 3 \ --no-cuda-graphs \ --no-mmap参数详解:
-ngl 999:将全部模型层卸载到GPU,禁用CPU offload,确保测试的是纯GPU性能。-t 8:使用8个CPU线程进行prefill阶段的tokenization和logits计算,模拟真实交互场景下的CPU-GPU协同。-p 512:prefill长度固定为512,这是衡量模型“启动速度”和长文本理解能力的关键指标。-n 128:decode长度固定为128,这是衡量模型“持续输出能力”和交互流畅度的核心指标。-r 3:重复运行3次取平均值,消除单次测量的偶然抖动。--no-cuda-graphs:禁用CUDA Graphs,避免其带来的优化干扰,使结果更反映原始kernel性能。--no-mmap:禁用内存映射,强制模型从磁盘读取,排除SSD速度差异的影响。
3.2 四组后端的性能表现深度解读
将四组实测数据整理成下表,并进行穿透式分析:
| 平台 | GPU | 后端 | pp512 (tok/s) | tg128 (tok/s) |
|---|---|---|---|---|
| 🟩 Spark | NVIDIA GB10 | CUDA | 2132.01 ± 16.97 | 60.44 ± 0.11 |
| 🟩 Spark | NVIDIA GB10 | Vulkan | 1663.93 ± 16.46 | 51.68 ± 3.63 |
| 🟥 Halo | Radeon 8060S | Vulkan | 1026.99 ± 13.10 | 57.08 ± 0.65 |
| 🟥 Halo | Radeon 8060S | HIP | 1126.94 ± 2.79 | 48.32 ± 0.01 |
pp512(Prefill吞吐)分析:谁在“抢答”?
Prefill阶段的本质,是将用户输入的512个token一次性编码成一个高维向量表示。这个过程计算密集,且高度并行化。因此,它对GPU的峰值算力和计算单元利用率极为敏感。
- Spark CUDA以2132 tok/s遥遥领先,这印证了Blackwell架构在dense计算上的统治力。其SM 12.1单元在处理大规模矩阵乘法时,能近乎饱和地利用所有计算资源。
- Spark Vulkan(1664 tok/s)比CUDA低约22%,这揭示了一个关键事实:Vulkan后端在Spark上并非最优路径。Vulkan的设计初衷是跨平台图形渲染,其计算管线(Compute Pipeline)的调度开销、内存屏障(Memory Barrier)的插入策略,都与原生CUDA kernel存在固有差异。这部分损耗,在计算密集型的prefill阶段被放大。
- Halo HIP(1127 tok/s)比Vulkan(1027 tok/s)高出约10%,这说明AMD的HIP编译器对RDNA 3.5的优化已相当成熟。HIP能更精准地将计算任务映射到40个CU(Compute Unit)上,减少空闲周期。
- Halo Vulkan(1027 tok/s)是四者中最低的,但这恰恰是意料之中。Vulkan在AMD平台上,其驱动对RDNA 3.5的计算特性支持尚在完善中,部分高级指令(如Matrix Core的INT4加速)可能未被充分调用。
实操心得:如果你的应用场景是批量处理长文档(如PDF解析、法律文书摘要),prefill性能就是你的生命线。此时,Spark CUDA是无可争议的首选;而Halo用户,则应毫不犹豫地选择HIP后端。
tg128(Decode吞吐)分析:谁在“娓娓道来”?
Decode阶段是模型逐个生成128个token的过程,每一次生成都依赖上一次的输出,形成强数据依赖链。这使得它成为典型的“内存带宽瓶颈”(Bandwidth-bound)任务。模型权重、KV缓存、中间激活值需要在GPU内存与计算单元之间高频次搬运。
- Spark CUDA(60.44 tok/s)依然是天花板,但其领先优势被大幅压缩。
- Halo Vulkan(57.08 tok/s)达到了Spark CUDA的94.4%,这是一个极具震撼力的数字。它意味着,在最考验持续输出能力的聊天交互场景下,Halo的体验与Spark几乎无异。用户不会感觉到“卡顿”,只会觉得“响应稍慢一点点”。
- Halo HIP(48.32 tok/s)反而比Vulkan低了约15%,这与prefill阶段的表现完全相反。究其原因,HIP在处理这种细粒度、高频率的内存访问模式时,其内存一致性协议(Cache Coherency Protocol)和TLB(Translation Lookaside Buffer)管理策略,可能引入了额外延迟。而Vulkan的计算管线,在这种场景下意外地展现出了更优的访存局部性(Locality of Reference)。
- Spark Vulkan(51.68 tok/s)比Halo Vulkan低了约10%,这彻底颠覆了“NVIDIA一定更快”的惯性思维。它证明,当任务特征从“计算密集”转向“带宽密集”时,软件栈的优化方向比硬件算力的绝对值更为关键。
提示:
tg128这个指标,才是普通用户感知AI“聪明”与否的核心。60 vs 57 tok/s的差距,在128个token的生成中,仅相差不到0.5秒。而人类在对话中思考、打字的间隙,远大于此。因此,“体感相同”并非营销话术,而是有扎实数据支撑的结论。
4. 实操过程与核心环节实现:从编译到部署的全流程记录
4.1 编译环节的避坑指南
编译llama.cpp看似简单,但在Spark与Halo上,我遇到了几个必须记录的“深坑”。
Spark CUDA编译失败:nvcc fatal : Unsupported gpu architecture 'compute_90'
这是最常见的错误。Blackwell架构(GB10)的计算能力代号是sm_90,而较旧版本的CUDA Toolkit(如12.2)并不支持。解决方案是必须升级到CUDA 12.4或更高版本。在安装NVIDIA驱动时,务必选择与之匹配的驱动版本(如550系列驱动)。我曾因贪图方便使用系统默认的CUDA 11.8,导致编译反复失败,浪费了近两小时。
Halo HIP编译卡死:hipcc: command not found
hipcc是HIP的编译器前端,它必须由ROCm安装包提供。但amdgpu-install脚本有时会遗漏将其加入PATH。解决方法是在~/.bashrc中手动添加:
export HIP_PATH=/opt/rocm/hip export PATH=$HIP_PATH/bin:$PATH export LD_LIBRARY_PATH=$HIP_PATH/lib:$LD_LIBRARY_PATH然后执行source ~/.bashrc。此外,还需确认/opt/rocm/hip/bin/hipcc文件真实存在。若不存在,说明ROCm安装不完整,需重新运行amdgpu-install。
Vulkan后端无法识别GPU:Vulkan device not found
即使vulkaninfo命令能正常输出设备信息,llama.cpp仍可能报错。这是因为llama.cpp的Vulkan后端默认只查找VK_ICD_FILENAMES环境变量指定的ICD(Installable Client Driver)JSON文件。在Halo上,该文件通常位于/usr/share/vulkan/icd.d/amd_icd64.json。需在运行前显式设置:
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd64.json在Spark上,则对应为/usr/share/vulkan/icd.d/nvidia_icd.json。这个环境变量是Vulkan后端工作的“钥匙”,缺之不可。
4.2 基准测试的现场记录与数据清洗
运行llama-bench时,我全程使用script命令记录终端输出,确保原始数据可追溯:
script -c "./llama-bench -m ... " spark_cuda_bench.log原始输出包含大量调试信息,需用脚本提取关键数值。我编写了一个简单的Python脚本进行清洗:
import re with open('spark_cuda_bench.log', 'r') as f: log = f.read() # 提取pp512和tg128的平均值与标准差 pp_match = re.search(r'pp512.*?(\d+\.\d+)\s*\+/-\s*(\d+\.\d+)', log) tg_match = re.search(r'tg128.*?(\d+\.\d+)\s*\+/-\s*(\d+\.\d+)', log) if pp_match and tg_match: pp_mean, pp_std = float(pp_match.group(1)), float(pp_match.group(2)) tg_mean, tg_std = float(tg_match.group(1)), float(tg_match.group(2)) print(f"pp512: {pp_mean:.2f} ± {pp_std:.2f}") print(f"tg128: {tg_mean:.2f} ± {tg_std:.2f}")实操心得:不要相信终端里肉眼看到的“大概数字”。
llama-bench的输出格式在不同commit间有微小变化,手动复制极易出错。自动化清洗是保证数据准确性的唯一途径。我最初三次测试的数据偏差较大,就是因为手动抄录时看错了小数点位置。
4.3 从Benchmark到实际应用:如何为OpenClaw配置后端
Benchmark的终点,是实际应用的起点。以OpenClaw为例,其后端配置文件(config.yaml)需要指定模型路径和推理引擎。以下是针对不同平台的推荐配置:
Spark平台(推荐CUDA)
model: path: "/path/to/Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf" backend: "llamacpp" llamacpp: n_gpu_layers: 999 n_threads: 8 # 关键:强制使用CUDA use_cuda: true # 禁用Vulkan,避免自动fallback use_vulkan: falseHalo平台(推荐双后端策略)
model: path: "/path/to/Qwen3.6-35B-A3B-UD-Q4_K_XL.gguf" backend: "llamacpp" llamacpp: n_gpu_layers: 999 n_threads: 8 # 关键:根据任务类型动态选择 # 对于长文档上传,prefill阶段使用HIP use_hip: true # 对于实时聊天,decode阶段使用Vulkan use_vulkan: true # OpenClaw需支持运行时切换,此处为示意注意:当前OpenClaw主干分支尚未内置双后端切换逻辑。我的做法是,在OpenClaw的
inference.py中,对llama_cpp.Llama类进行封装,创建两个实例:一个初始化时传入n_gpu_layers=999, n_threads=8, verbose=False, flash_attn=True, use_mmap=False, use_mlock=False, seed=42, logits_all=False, vocab_only=False, use_cuda=True(用于prefill);另一个传入n_gpu_layers=999, n_threads=8, verbose=False, flash_attn=True, use_mmap=False, use_mlock=False, seed=42, logits_all=False, vocab_only=False, use_vulkan=True(用于decode)。在实际调用时,根据prompt_length阈值(如>256)决定使用哪个实例。这个“土法炼钢”的方案,实测下来稳定可靠。
5. 常见问题与排查技巧实录:一份来自深夜调试现场的速查表
5.1 性能远低于预期:是硬件问题,还是配置陷阱?
| 现象 | 可能原因 | 排查步骤 | 解决方案 |
|---|---|---|---|
| 所有后端的pp512都只有理论值的30% | CPU瓶颈或PCIe带宽不足 | 运行htop观察CPU使用率;运行lspci -vv -s $(lspci | grep VGA | cut -d' ' -f1)检查Link Speed/Width | 升级CPU或确保主板BIOS中PCIe设置为Gen4 x16;检查是否有其他设备(如NVMe SSD)共享PCIe通道 |
| Halo HIP后端tg128为0或极低 | ROCm驱动与内核版本不兼容 | 运行dmesg | grep -i "rocm|gpu"查看内核日志;cat /proc/version确认内核版本 | 升级内核至6.5+;或降级ROCm至6.1.1(更稳定) |
Spark Vulkan后端报错VK_ERROR_DEVICE_LOST | Vulkan驱动bug或GPU过热 | 运行nvidia-smi -q -d POWER,TEMPERATURE;vulkaninfo --summary | 降低GPU功耗限制(nvidia-smi -pl 180);更新Vulkan驱动至550.54.15 |
5.2 内存溢出(OOM):模型太大,还是后端太“贪”?
Qwen3.6-35B-A3B在128GB内存上本不该OOM,但实践中仍有发生。根本原因在于llama.cpp的内存管理策略。
- 问题根源:llama.cpp默认会为KV缓存预分配最大可能的内存空间(基于
-n参数)。当-n 128时,它会按128个token的KV缓存上限来分配,这在长上下文场景下会造成巨大浪费。 - 解决方案:使用
-c参数动态控制KV缓存大小。例如,-c 2048表示KV缓存最多容纳2048个token。对于Qwen3.6-35B-A3B,我实测-c 4096即可完美支撑128个token的decode,且内存占用稳定在105GB左右,留有充足余量。 - 终极保险:在
llama-bench命令中加入--no-mmap和--no-mlock,强制所有内存由GPU显存承载,避免因系统内存不足触发OOM Killer。
5.3 “体感”与数据不符:为什么我感觉Halo比Spark慢很多?
这是最常被问到的问题。数据冰冷,但用户体验是综合的。造成“体感慢”的真实原因,往往与decode吞吐(tg128)无关:
- 首token延迟(Time to First Token, TTFT):Prefill阶段的耗时。Halo HIP的pp512(1127 tok/s)比Spark CUDA(2132 tok/s)慢近一倍,意味着用户输入完问题后,要多等近0.5秒才能看到第一个回答字符。这个延迟是“可感知”的,但它属于prefill范畴,与tg128无关。
- 网络与IO延迟:如果OpenClaw前端(Web UI)与后端(llama.cpp)部署在同一台机器,这个因素可忽略。但如果通过网络调用(如HTTP API),Halo的网卡(通常是2.5Gbps)与Spark的(通常是10Gbps)带宽差异,会在传输大模型文件或长响应时显现。
- 温度墙与功耗墙:Halo整机功耗标称120W,Spark为240W。在持续高负载下,Halo的散热系统可能更快触达温控阈值,导致GPU降频。我用
rocm-smi --showclocks和nvidia-smi -q -d CLOCK对比发现,Spark在满载时GPU clock稳定在2.5GHz,而Halo在5分钟后会从2.7GHz降至2.4GHz。这是硬件物理限制,非软件可解。
最后一个小技巧:要真正体验“体感”,请关闭所有benchmark的统计功能,直接用
./main -m model.gguf -p "Hello, how are you?" -n 128命令,掐表计时从回车到看到第一个字符的时间(TTFT),再到看到最后一个字符的时间(TTLT)。这才是用户的真实视角。
6. 经验总结与延伸思考:关于桌面AI工作站的未来图景
我在实际部署Qwen3.6-35B-A3B的过程中,最大的体会是:“平台之争”的叙事正在失效,取而代之的是“任务导向”的精细化运维。过去我们习惯问“CUDA好还是ROCm好”,现在更应该问“prefill用HIP,decode用Vulkan,这个组合在我们的业务流里是否最优?” Spark与Halo的测试,其价值不在于宣告某一方胜利,而在于它提供了一套可复用的方法论——如何用最小的变量控制,去量化一个复杂系统的性能边界。
这个方法论可以轻松迁移到其他场景。比如,你想评估Qwen3.6-72B是否能在双卡Halo上运行?只需将-p 512改为-p 1024,将-n 128改为-n 256,再观察pp和tg的变化曲线。如果tg128断崖式下跌,那就说明内存带宽已成为不可逾越的瓶颈,强行部署只会换来糟糕的用户体验。反之,如果tg128保持在40 tok/s以上,那它就是一个值得投入的选项。
另外,这次测试也让我对Qwen3.6系列模型的工程化水平刮目相看。官方同步发布的GGUF、AWQ、FP8三种量化方案,覆盖了从极致精度(FP8)到极致体积(Q4_K_XL)的全光谱。这背后是通义实验室对下游开发者真实痛点的深刻理解——他们知道,技术人最怕的不是模型不够大,而是“模型很好,但我花三天都跑不起来”。这种“交付即可用”的产品哲学,比任何参数对比都更有力量。
最后,关于未来,我有一个明确的判断:桌面级AI工作站的“军备竞赛”才刚刚开始。Spark与Halo的2倍售价差,正对应着2倍的算力差。但Qwen3.6-35B-A3B的测试告诉我们,当任务特征与硬件特性精准匹配时,价格差可以被极大地抹平。下一次,当Qwen3.6-72B发布,当AMD推出gfx1200,当NVIDIA亮出Blackwell Next,我们依然会回到这张表、这四个数字、这三条经验。因为技术的本质,从来不是堆砌参数,而是理解约束,并在约束中找到最优解。