รายงานฉบับนี้สรุปผลการทดสอบประสิทธิภาพเชิงลึกของโมเดล Qwen3.8-27B-Q4_K_M.gguf (ขนาดโมเดล ~16.8 GB) บนการ์ดจอ AMD Radeon RX 9060 XT แบบ Dual GPU (2x 16GB = รวม 32GB VRAM) โดยใช้ชุดทดสอบมาตรฐาน PromptMark v0.4.0 เพื่อเปรียบเทียบระหว่าง 2 Backend หลัก (ROCm vs Vulkan) ร่วมกับเทคนิคการเร่งความเร็ว Speculative Decoding ทั้งแบบ MTP (Multi-Token Prediction) และ DFlash (Block-Diffusion Drafting)
- ฮาร์ดแวร์: 2× AMD Radeon RX 9060 XT (RDNA 4, 16GB GDDR6 ต่อใบ, รวม 32GB VRAM)
- โมเดลเป้าหมาย (Target Model):
Qwen3.8-27B-Q4_K_M.gguf (Context Target: 12,288 Tokens, Offload ทุกเลเยอร์ลง GPU 100%)
- โมเดล Draft สำหรับ Speculative Decoding:
- MTP Draft:
Qwen3.8-27B-MTP-ONLY-Q4_K_M.gguf (--spec-type draft-mtp)
- DFlash Draft:
Qwen3.8-27B-DFlash-bootstrap-Q8_0.gguf (--spec-type draft-dflash --spec-draft-n-max 3)
- ระเบียบการรัน Benchmark:
- 1 Warm-up Run + 5 Measured Runs ต่อ 1 Workload (รันแบบ Round-Robin)
- ปิด Prompt Cache (
--no-cache-prompt) เพื่อวัดประสิทธิภาพการคำนวณจริงของฮาร์ดแวร์แบบ Fresh Prompt
- 6 ชุดเวิร์กโหลดมาตรฐานครอบคลุมการใช้งานจริง:
Content Generation (512 Input / 256 Output) — งานเขียนคอนเทนต์ทั่วไป
Creative Writing (512 Input / 512 Output) — งานเขียนเชิงสร้างสรรค์/แต่งเรื่องยาว
Summarization Light (2,048 Input / 256 Output) — สรุปบทความขนาดสั้น (2K)
Summarization Moderate (4,096 Input / 256 Output) — สรุปเอกสารขนาดกลาง (4K)
Summarization Long (8,192 Input / 256 Output) — สรุปเอกสารขนาดยาว (8K)
Code Analysis (4,096 Input / 256 Output) — การอ่านและวิเคราะห์โค้ดซอร์สโค้ด
| ชุดเวิร์กโหลด (Workload) |
ROCm (ปกติ) |
ROCm (MTP) |
ROCm (DFlash) |
Vulkan (ปกติ) |
Vulkan (DFlash) |
Vulkan (MTP) |
โหมดที่ทำความเร็วได้สูงสุด |
| Content Generation (512 / 256) |
14.22 |
14.73 |
15.80 |
17.16 |
22.89 |
32.10 |
Vulkan MTP (+87.1%) |
| Creative Writing (512 / 512) |
14.26 |
15.80 |
10.23 |
17.11 |
21.13 |
27.66 |
Vulkan MTP (+61.6%) |
| Summarization Light (2K / 256) |
14.91 |
14.74 |
10.23 |
17.04 |
23.93 |
30.33 |
Vulkan MTP (+78.0%) |
| Summarization Moderate (4K / 256) |
14.83 |
13.45 |
13.49 |
16.91 |
23.59 |
31.80 |
Vulkan MTP (+88.0%) |
| Summarization Long (8K / 256) |
14.65 |
12.90 |
20.23 |
16.66 |
22.24 |
31.23 |
Vulkan MTP (+87.4%) |
| Code Analysis (4K / 256) |
14.23 |
13.35 |
13.04 |
16.91 |
22.54 |
30.88 |
Vulkan MTP (+82.6%) |
| ชุดเวิร์กโหลด (Workload) |
ROCm (ปกติ) |
ROCm (MTP) |
ROCm (DFlash) |
Vulkan (ปกติ) |
Vulkan (DFlash) |
Vulkan (MTP) |
โหมดที่ทำความเร็วได้สูงสุด |
| Content Generation (512 / 256) |
462.9 |
445.3 |
433.5 |
313.0 |
298.6 |
304.0 |
ROCm (ปกติ) |
| Creative Writing (512 / 512) |
466.5 |
438.6 |
442.8 |
311.7 |
300.5 |
300.4 |
ROCm (ปกติ) |
| Summarization Light (2K / 256) |
693.5 |
673.1 |
653.3 |
448.0 |
337.1 |
342.9 |
ROCm (ปกติ) |
| Summarization Moderate (4K / 256) |
831.1 |
734.6 |
719.2 |
534.7 |
343.3 |
348.9 |
ROCm (ปกติ) |
| Summarization Long (8K / 256) |
883.4 |
739.4 |
724.2 |
587.6 |
344.1 |
349.5 |
ROCm (ปกติ) |
| Code Analysis (4K / 256) |
828.7 |
736.5 |
719.5 |
534.7 |
340.2 |
349.0 |
ROCm (ปกติ) |
| ชุดเวิร์กโหลด (Workload) |
ROCm (ปกติ) |
ROCm (MTP) |
ROCm (DFlash) |
Vulkan (ปกติ) |
Vulkan (DFlash) |
Vulkan (MTP) |
โหมดที่ทำความเร็วได้สูงสุด |
| Content Generation (512 / 256) |
1.420s |
1.455s |
1.440s |
1.818s |
1.965s |
1.884s |
ROCm (ปกติ) |
| Creative Writing (512 / 512) |
1.240s |
1.320s |
1.318s |
1.767s |
1.833s |
1.833s |
ROCm (ปกติ) |
| Summarization Light (2K / 256) |
3.065s |
3.156s |
3.250s |
4.679s |
6.186s |
6.076s |
ROCm (ปกติ) |
| Summarization Moderate (4K / 256) |
5.007s |
5.685s |
5.719s |
7.682s |
11.951s |
11.764s |
ROCm (ปกติ) |
| Summarization Long (8K / 256) |
9.296s |
11.111s |
11.343s |
13.978s |
23.832s |
23.460s |
ROCm (ปกติ) |
| Code Analysis (4K / 256) |
5.431s |
6.262s |
6.117s |
7.961s |
12.135s |
12.010s |
ROCm (ปกติ) |
- การเปิดใช้งานโมเดล MTP (
Qwen3.8-27B-MTP-ONLY-Q4_K_M.gguf) บน Vulkan สร้างปรากฏการณ์ความเร็วที่น่าทึ่ง โดย Decode Speed พุ่งขึ้นจากเดิม 16.6–17.1 tokens/s กลายเป็น 30.3 – 32.1 tokens/s คิดเป็นการเพิ่มขึ้นสูงถึง +61.6% ถึง +88.0%
- ความเร็วระดับ 32 tokens/s บนโมเดลขนาด 27B มอบประสบการณ์การใช้งานที่ลื่นไหลระดับ Real-time reading speed ทำให้ผู้ใช้ไม่ต้องนั่งรอข้อความยาวๆ อีกต่อไป
- ในแง่การประมวลผล Prompt/Context ขนาดใหญ่ ROCm ทำคะแนนทิ้งห่าง Vulkan อย่างชัดเจน โดยทำ Prefill Speed ได้สูงถึง 883.4 tokens/s บนบริบท 8K (ขณะที่ Vulkan ทำได้ 587.6 tokens/s หรือช้ากว่าราว 50%)
- ส่งผลให้เวลา Time To First Token (TTFT) ของ ROCm เร็วกว่า เช่น บนบทความ 8K ROCm ใช้เวลาเพียง 9.29 วินาที ก่อนเริ่มพิมพ์คำตอบตัวแรก ขณะที่ Vulkan ต้องใช้เวลา 13.97 – 23.83 วินาที
- DFlash 2 (
Qwen3.8-27B-DFlash2): เป็นสถาปัตยกรรมใหม่ (Two-tap Dynamic Convolutions + Path Selector) ซึ่งโค้ด Loader บน llama.cpp เวอร์ชันปัจจุบันยังไม่ถูกผสานเข้า Main Branch (อยู่ระหว่างพัฒนาใน PR #27342) ทำให้โหลดผ่าน llama.cpp มาตรฐานไม่ได้
- DFlash 1 Bootstrap (
Qwen3.8-27B-DFlash-bootstrap-Q8_0): เมื่อใช้โมเดลโครงสร้าง DFlash 1 ดั้งเดิม สามารถรันผ่าน llama.cpp ได้สำเร็จ และช่วยดัน Decode Speed บน Vulkan ขึ้นมาอยู่ที่ 21.1 – 23.9 tokens/s (เร็วกว่าโหมดปกติ ~33%) แม้จะยังไม่เร็วเท่า MTP แต่พิสูจน์ให้เห็นว่าระบบ Block-Diffusion ทำงานได้จริงบน Dual GPU RDNA 4
| รูปแบบงาน (Use Case) |
Backend และโหมดที่แนะนำ |
เหตุผลทางเทคนิค |
| งาน Chatbot, เขียนบทความ, Coding, ตอบคำถามทั่วไป |
Vulkan + MTP |
ความเร็ว Decode สูงสุด (~32 tokens/s), คำตอบไหลลื่นเร็วขึ้นเกือบ 2 เท่า |
| งาน RAG, สรุปเอกสารยาว (8K-32K+), สกัดข้อมูลจาก PDF ขนาดใหญ่ |
ROCm (Normal) |
Prefill เร็วสูงสุด (~883 tokens/s), รอเริ่มตอบคำแรกเร็วที่สุด (TTFT สั้นที่สุด) |
| งานรันบน Production Server (Linux / SGLang / vLLM) |
ROCm + DFlash 2 |
SGLang รองรับ DFlash 2 natively และดึงพลัง Compute จาก ROCm ได้เต็มศักยภาพ |