4卡Tesla V100 32G 跑 GLM-5.3-Flash, Project Maya 跑 Maya-L以及Q4 GGUF, 過程與結果
-
看了網上與版上出現了Project Maya - 基於Strata 跑GLM 5.3 flash的分支. 忍不住手癢把本來4卡V100 32G跑SGLang Qwen 3.8 flash next拿來試看看.
剛開始裝好速度有點感人, 大概1x tok/s吧. 只好請出GPT Astra/Sol 來救援. Astra有點貴,額度不太夠, 於是用Astra做計畫, Sol實作的方式. 中間除非忍不住, 大多沒有介入, 搞了幾天, 終於弄到還能用, 最後先拿Maya-L來當主選, 如果遇到品質問題再叫Q4 GGUF起來比較看看, 是不是品質有差, 結果與過程整理如下:主機配置與 Maya-L/Q4 比較
2026-10-15|Maya-L 已上線,並完成三 slot prompt cache 修復;Q4 為備選。兩模型效能比較沿用 Task33 已封存的 CLOCK 開啟版本,快取修復實測另列。C1=單請求;C3=三請求並行。
1. 電腦主機配置
項目 配置 主機板 HUANANZHI H12D-8D CPU AMD EPYC 7K62,48核心/96執行緒,單socket、單NUMA RAM 128 GB DDR4(8×16 GB),2133 MT/s;系統可見123.375 GiB 儲存 Crucial P310 NVMe 1 TB(系統/模型);另有ADATA SX8200 512 GB、WD HDD 4 TB OS Ubuntu 26.04 LTS,Linux 7.0.0-31-generic Driver/編譯器 NVIDIA 580.178.04/CUDA 12.4.131,sm70 2. V100 配置情況
4×Tesla V100-SXM2-32GB,共128 GiB VRAM;每卡power limit 300W。
GPU Trunk layers(0起算) Expert pool預算 GiB 連線 0 0–10 25.5 與GPU1為NV5 1 11–22 26.5 與GPU0為NV5;其餘PCIe 2 23–33 26.5 PCIe 3 34–44 25.4 PCIe Layer split=11/23/34;只有GPU0
1使用NVLink,其餘跨卡連線為同NUMA內PCIe。3. 模型參數與設定
項目 Maya-L Q4 模型名稱/出處 peasantsmith/GLM-5.3-Flash-Maya-L-IQ3_S SixVolts/GLM-5.3-Flash-Q4_K_XL 量化/檔案大小 混合IQ3_S/Q5_K/IQ4_XS;156.3 GB 原Q4_K_XL混合量化;186.5 GB Context 每slot輸入+輸出≤500,000;native allocation 524,288 相同 Temperature/thinking 0.4/high 相同 Max concurrency 3 3 MTP/HC attention base 原K=1/45 tensors F32 相同 KV INT8、host-backed;resident32,768,decode CLOCK開啟 相同 跨請求 prompt cache 已修復;每slot一份checkpoint,最多3份,完全相同token前綴才重用 備選artifact尚未套用此次修復 Prefill chunk 4096 tokens 相同 Expert RAM/shadow預算 84 GiB/8 GiB 相同 資源保護 cgroup MemoryHigh98G/Max102G/SwapMax0;可用RAM安全底線20 GiB 相同 API 0.0.0.0:9527,model id=glm-5.3-flash 備選,未公開啟用 目前公開服務為
glm-mayal-prefix-serving.service,source97fed45/ELF SHA25673e186ef…68dbf3b2;最後營運核對為2026-10-15 11:19(台北時間)。模型、精度與上述預算維持不變。4. 兩模型比較
C1 指標
以下 C1、C3及兩模型資源/品質表均為 Task33歷史實測(source61c/ELFc23),不是此次快取修復版的完整重測。warm32K指expert cache已暖、prompt KV已reset;fresh近499K指載入後首次推論,均不含模型啟動/cold OS讀檔。兩者實際input為32,783/498,463,各輸出1537 tokens,decode取512 warm後的1024-token正式視窗。
實測指標 Maya-L Q4 warm32K decode tok/s 36.895 25.028 warm32K prefill tok/s 790.054 835.982 warm32K prefill耗時/TTFT s 41.493/41.547 39.214/39.358 warm32K E2E s 85.146 103.126 近499K decode tok/s 27.963 20.988 近499K prefill tok/s 1294.617 1394.921 近499K prefill耗時/TTFT s 385.027/385.235 357.341/357.622 近499K E2E s 445.240 438.471 warm32K token gap p95/max ms 44.009/66.569 70.442/110.923 warm32K MTP接受率 88.27% 75.57% TTFT/E2E及token gap為native量測,非HTTP/SSE延遲。每模型僅一組當輪視窗。
Maya-L 快取修復實測
實際API情境 輸入/命中 tokens Native prefill s HTTP整個請求 s 32K首次請求 32786/0 28.7461 29.6724 相同請求重複 32786/32785 0.0822 0.7966 真實多輪:接續assistant回覆再追問 32808/32785,只處理23個新tokens 1.7947 2.2058 工具結果重複續接 261/206 3.2171(首次9.2487) 未單獨量測 前兩列為修復版同binary冷/命中配對,完整回覆含reasoning一致;不是原版對修正版的cold-prefill A/B,也不是新的decode吞吐或HTTP TTFT成績。多輪與工具續接另有實際API證據。每slot僅保留一份checkpoint:被其他對話覆蓋、重啟、RELEASE或前綴改變仍會miss;expert hit telemetry尚未上報,不代表expert命中率為0。
C3/操作指標
實測指標 Maya-L Q4 32K C3各slot decode tok/s 25.364/25.047/25.107 19.244/19.155/19.209 同一重疊視窗aggregate tok/s 75.321 57.729 Jain公平性 1.000000 約1.000000 STOP→DONE ms 61.012 102.420 RELEASE→ACK ms 29.567 92.700 Cancel後reuse/真正1→3→1 PASS/PASS PASS/PASS 正常shutdown exit0 exit0 C3為每slot32K的short測試;1→3→1為生命週期驗證,非三階段速度比較。本輪完整長context C3未重測。
相較最新版上游 Maya,本地改了什麼(2026-10-15)
目前是從 Maya v1.0.21 分叉、選擇性移植與本機驗證的 V100 版本,並不是完整同步最新版上游。 本地保留四卡排程/生命週期、固定 RAM/expert 預算、F32 相容與 frontend 修正,並選擇性移植 decode CLOCK。沒有本機對上游最新版的同條件效能/品質 A/B,不能說本地全面較快或品質更高。
已在本地版本中的主要差異
範圍 本地具體修改與目的 對最新版上游的定位/證據 四卡資料搬運 建立 fenced CUDA P2P stage handoff,替代本 fork 原先的 host activation 中轉;依實際 NV5/PCIe topology 分層 本地 stage_transfer.hpp、4bdf869。最新版也有多GPU/P2P能力;不是本地發明P2PC1/C3 排程 通用 slot ownership、四 stage dispatch、4096-token prefill admission 與 decode交錯;單slot adaptive solo 使用原K1 MTP,peer加入時在已確認boundary yield並處理prepared draft glm_slot.hpp、generate.cpp、e87288b/8fff864/5cbde19。上游已有--parallel 1..8,本地新增的是這套四卡排程及切換,不是「上游不能並行」slot/window生命週期 early solo entry前drain先前upload;銷毀slot latent window先於其借用stream,避免資源釋放順序錯誤 130461b/295db4c;prepared-entry fence與window lifetime為不同修正,不將其混稱driver QUIT修復KV容量與傳輸 完整logical KV保留host端,INT8 resident32768;GPU選取host rows並非截斷只留32K;另用原buffer做decode CLOCK4 reuse,reset/truncate/rewrite/slot隔離有明確規則 latent_window.cuh/clock_latent.cuh/61c0ced。上游已含KV streaming;本地只選擇性移植#86 decode residency,沒有整段prefix staging、side-prefetch、或完整同步其新KV系統expert placement/RAM保護 每卡pool cap、model-scoped host hard cap、shadow LRU clean-eviction、pure-GPU route counters、promotion margin與budget/aging修正 host_budget.hpp與fast path;f4c3aee/7b5242c/04631e9/9e2d836。最新版fast path有基本pool/RAM/promote-min,本地額外的per-device cap、shadow與margin/budget實作不同Q4/Maya-L 權重相容 Q4 lossless F32 pack admission及native F32投影;Maya-L明確保留F32 state、接入既有native FP16 expert decoder並記錄conversion manifest 4ab91f4/8267318/5ba4782/f5f6c33。上游packer已能存部分F32,不應說最新版完全不支援F32;本地增加的是特定artifact的保留/admission規則Volta prefill Q4 expert dequant至FP16並用既有Tensor Core GEMM,另做dedicated workspace與prefill前tier quiesce 105f6c7/12297e6/0920bf9。上游prefill也用FP16/Tensor Cores;本地是sm70與原Q4 pack路徑的適配,不是新增一種精度Sampler 單token top-k使用兩階段64-block候選/規約,替代fork原單block長詞表掃描 fb09f02,本地sampler_stage1_kernel/sampler_stage2_kernel。最新版也有其sampler/speculative sampling演進,但不是這個相同兩階段實作;無最新版本機A/B,不能沿用舊比較宣稱勝過最新版prompt/tool history tool continuation保留reasoning_content、穩定歷史checkpoint、暫時tool cue處理、forced-tool render與admission token計數一致 0dee3ff/4fde90a/c97ce27/5c6fca1。新版上游也有reasoning/conversation checkpoint等功能,不能把功能名稱全部算成獨有三slot跨請求prefix cache 修復本地parallel3路徑每次GEN reset、未保存checkpoint的問題;每slot保存prompt邊界recurrent/indexer state、重用原KV,按完全相同token前綴恢復;API選最長匹配空閒slot並逐request記cached tokens 6fe1677/4c96b9a/97fed45;修復與實測、完整patch。上游已有conversation reuse,這是本地多slot路徑修復,不宣稱發明prefix cachefrontend併發與shutdown 完整pipe command序列化、各request timing隔離;shutdown先拒絕新request,逐slot cancel/drain DONE,再QUIT,修正只等global FIFO不能等到所有並行owner問題 5fb5b1c/7c33d31,本地Service.shutdown_requests/wait_for_requests。最新版同處仍採其WRAP/FIFO關閉流程,兩邊shutdown結構不同;未對最新版做失敗重現,不宣稱其一定有同一bug營運與驗收(native以外) immutable runtime、owned unit/PID/cgroup/GPU核對、RAM/swap guard、獨立finally/ExecStopPost、復原競態處理、raw manifest與品質/lifecycle驗收 本專案scripts/tests與部署controller,不是模型權重改動,也不是上游kernel patch;Maya-L上線後成功交接保持Maya-L,Q4是rollback,不自動切回 現行設定,與程式修改分開
本機固定:4×V100、split11/23/34、parallel3;每slot prompt+output≤500000、native ctx524288;temp0.4/high、K1、INT8 KV、resident32768、prefill4096;pool cap25.5/26.5/26.5/25.4 GiB、host expert84 GiB、shadow8 GiB;CPU lane OFF。公開model id維持glm-5.3-flash。
最後附上llama-benchy測速 , 實際工作跑速約在 40 tok/s 左右, 緩存命中 98-99%, prefill部分應該是計算有問題, 大概800-1200左右吧
model test t/s peak t/s ttfr (ms) est_ppt (ms) e2e_ttft (ms) glm-5.3-flash pp2048 409563.61 ± 47468.25 9.39 ± 0.61 4.50 ± 0.61 9477.68 ± 128.42 glm-5.3-flash tg128 29.47 ± 2.72 30.00 ± 2.94 glm-5.3-flash pp2048 @ d4096 620290.80 ± 80231.06 13.77 ± 1.29 8.87 ± 1.29 14608.85 ± 56.53 glm-5.3-flash tg128 @ d4096 32.99 ± 3.76 33.33 ± 3.86 glm-5.3-flash pp2048 @ d8192 786304.27 ± 52395.70 16.44 ± 0.85 11.55 ± 0.85 18632.48 ± 105.30 glm-5.3-flash tg128 @ d8192 36.86 ± 2.78 37.33 ± 2.62 glm-5.3-flash pp2048 @ d16384 1129530.40 ± 116401.56 19.61 ± 1.66 14.72 ± 1.66 26135.26 ± 727.22 glm-5.3-flash tg128 @ d16384 37.46 ± 2.93 38.00 ± 2.94 glm-5.3-flash pp2048 @ d32768 1255497.81 ± 105983.77 29.73 ± 1.93 24.84 ± 1.93 40396.22 ± 214.84 glm-5.3-flash tg128 @ d32768 39.58 ± 1.41 40.00 ± 1.41