# เลือก Hardware สำหรับ Local LLM จากงาน ไม่ใช่แค่ชื่อ GPU

https://llm-cal.p7z.pw/th/guides/hardware/

คำถามยอดฮิตว่า ซื้อการ์ดจออะไรดีสำหรับรัน LLM? ไม่สามารถตอบได้ด้วยชื่อรุ่น GPU เพียงอย่างเดียว การเลือกฮาร์ดแวร์ที่ถูกต้อง ต้องเริ่มจากการปักป้ายก่อนว่าคุณต้องการรันโมเดลอะไร, ใช้ Framework ไหน, ต้องรับ Concurrency เท่าไหร่, และมีงบประมาณกี่บาท Mac Apple Silicon เหมาะเป็นเครื่องทำงานส่วนตัวที่รันโมเดลใหญ่ได้ในเครื่องเดียว, NVIDIA คือมาตรฐานสูงสุดสำหรับ Production Server ที่มี Ecosystem แน่นที่สุด, ส่วน AMD ให้คุ้มค่าเรื่อง VRAM ต่อราคา แต่นักพัฒนาต้องตรวจเช็ก Support Matrix ของ ROCm ให้ละเอียด

## Mac Apple Silicon: เครื่องทำงานประจำวันและ local LLM

สถาปัตยกรรม Unified Memory Architecture (UMA) ของ Mac Apple Silicon (M2/M3/M4 Series) ได้สร้างจุดเปลี่ยนสำคัญให้วงการ Local LLM ด้วยการให้ CPU, GPU และ Neural Engine แชร์แรมก้อนเดียวกันทั้งหมด!

- จุดเด่น: สามารถสั่งซื้อ Mac Studio หรือ MacBook Pro ที่มี RAM สูงถึง 64 GB, 96 GB, 128 GB หรือ 192 GB เพื่อรันโมเดลระดับ 70B หรือ 120B (ผ่าน GGUF Q4 หรือ MLX) ได้อย่างสบายๆ บนคอมพิวเตอร์เครื่องเดียว โดยไม่ต้องต่อการ์ดจอหลายใบให้ยุ่งยาก แถมยังใช้เป็นเครื่องทำงานพัฒนาซอฟต์แวร์ ตัดต่อ หรือเอกสารได้พร้อมกัน
- ข้อจำกัด: แรม UMA นั้นถูกแชร์ร่วมกับระบบปฏิบัติการ macOS และโปรแกรมอื่นๆ ในเครื่อง, ไม่สามารถถอดอัปเกรด RAM เพิ่มทีหลังได้, และที่สำคัญคือ Memory Bandwidth (เช่น M4 Max ที่ 410-546 GB/s หรือ M3 Ultra ที่ 819 GB/s) ยังคงต่ำกว่าการ์ดจอระดับ High-end GPU Server สถาปัตยกรรม HBM3 (2,000-3,000+ GB/s) ดังนั้น Mac จึงเหมาะมากสำหรับ Personal Workstation หรือ Local Development แต่ไม่ใช่ทางเลือกหลักสำหรับการทำ High-Throughput Production Serving

## Mac กับ vLLM: ไม่ได้เป็นศูนย์ แต่ไม่ใช่ CUDA parity

ปัจจุบันชุมชนนักพัฒนาได้สร้าง vLLM-Metal ซึ่งเป็น Hardware Plugin สำหรับ vLLM ที่ดึงเอา MLX Backend มาเปิดให้บริการ OpenAI-Compatible HTTP Server บนเครื่อง Mac ได้สำเร็จ

ดังนั้น จึงไม่ถูกต้องที่จะบอกว่า Mac รัน vLLM ไม่ได้เลย แต่ข้อควรระวังระดับสำคัญคือ ความสามารถ (Feature Support) ของ vLLM-Metal ยังขึ้นอยู่กับสถาปัตยกรรมโมเดลแต่ละตัว และฟีเจอร์เกรดเซิร์ฟเวอร์หลายอย่างยังถูกปฏิเสธหรือไม่ได้รับการทดสอบ เช่น Tensor Parallelism ข้ามการ์ด, Speculative Decoding บางรูปแบบ, LoRA Serving, Vision Language Models (VLM) บางประเภท, และ MoE Shape ซับซ้อน

สำหรับสายสเกลระบบ Production Fleet อย่าออกแบบสถาปัตยกรรมโดยอิงฟีเจอร์ CUDA ของ vLLM แล้วคาดหวังว่าจะได้ประสิทธิภาพและฟีเจอร์เท่ากันเป๊ะบน Mac Metal!

## NVIDIA: ecosystem ที่กว้างที่สุดสำหรับ server inference

แพลตฟอร์ม NVIDIA CUDA ยังคงครองตำแหน่งมาตรฐานอันดับหนึ่ง (Gold Standard) สำหรับการทำ Server Inference ด้วย Ecosystem ที่กว้างขวางและเสถียรที่สุดในโลก

- ความสมบูรณ์ของ Software Stack: ไม่ว่าจะเป็น vLLM, SGLang, TensorRT-LLM, FlashAttention-3, ModelOpt หรือ profiling tools ต่างๆ ล้วนได้รับการพัฒนาและทดสอบบน CUDA เป็นด่านแรกเสมอ
- Hardware Generations & Precision Paths:
 - Blackwell Generation (RTX 5090, B200, DGX GB300): มาพร้อม FP4 Tensor Cores รองรับ NVFP4 / modelopt_fp4 และ Native FP4 Execution อย่างเต็มรูปแบบ ดันความเร็ว Decode ทะลุขีดจำกัดเดิม
 - Ada Lovelace & Hopper (RTX 4090, L40S, H100): รองรับ FP8 Execution (E4M3 / E5M2) ทั้งฝั่ง Weights และ KV Cache ช่วยให้บีบอัดแรมลงครึ่งหนึ่งโดยสปีดไม่ตก
 - Datacenter Interconnect: การ์ดรุ่นสูงมาพร้อม NVLink / NVSwitch ที่ให้ Bandwidth ระหว่างการ์ดสูงถึง 900-1,800 GB/s ทำให้การทำ Tensor Parallelism (TP=2, TP=4, TP=8) ข้ามการ์ดไหลลื่นโดยไม่ติดคอขวด PCIe

## AMD: คุ้ม memory แต่ต้องตรวจ support matrix

ฮาร์ดแวร์สาย AMD ROCm / HIP มักจะมอบความคุ้มค่าด้านอัตราส่วน VRAM per Dollar (แรมต่อราคาเงินที่จ่าย) ที่น่าดึงดูดใจมาก เช่น การ์ดฝั่ง Datacenter ตระกูล Instinct MI300X (192 GB HBM3) หรือฝั่ง Consumer/Workstation ตระกูล Radeon RDNA

อย่างไรก็ตาม สิ่งที่นักพัฒนาสาย AMD ต้องใส่ใจเป็นพิเศษคือ:
- Software & Kernel Support Matrix: แม้ว่า vLLM-ROCm, SGLang และ llama.cpp จะสามารถรันบน AMD ได้ดีขึ้นเรื่อยๆ แต่ความพร้อมของ Kernel อัลกอริทึม (เช่น FlashAttention, AWQ loader, FP8 KV, Speculative Decoding) จะขึ้นอยู่กับรุ่น GPU Architecture, ไดรเวอร์ ROCm, และเวอร์ชันของ Runtime Release อย่างใกล้ชิด
- Instinct vs Radeon: ฝั่ง Instinct MI300X / MI350 มีการปรับแต่งซอฟต์แวร์เกรดองค์กรมาอย่างแน่นหนา รองรับ FP8, FP8 KV, AWQ, และ AMD Quark (รวมถึง MXFP4) แต่การ์ดฝั่ง Radeon RDNA อาจจะมีข้อจำกัดเรื่อง Kernel Optimization บางตัวที่ไม่เท่า CUDA

คำแนะนำคือ: อย่าเพิ่งรีบเหมารวมว่า AMD รันไม่ได้ และอย่าเพิ่งเหมารวมว่า Quantization ชื่อเดียวกันจะรันได้สปีดเท่ากันบน AMD ทุกรุ่น ให้เปิดเช็กตัวเลือกที่ Calculator รองรับเฉพาะรุ่นการ์ดนั้นๆ ก่อนเสมอ

## Consumer, workstation, datacenter

การแบ่งระดับฮาร์ดแวร์ออกเป็น 3 Tier ตามงบประมาณและภาระงาน:
- Consumer GPUs (RTX 5090 / 4090 / 3090): เหมาะสำหรับ Local Development, Personal Workstation และการรัน Single GPU Inference ในงบประมาณประหยัด การ์ดกลุ่มนี้ให้ Memory Bandwidth สูง (1,000+ GB/s) ในราคาเอากลับบ้านได้ แต่น่าเสียดายตรงที่มีข้อจำกัดเรื่อง VRAM Cap (สูงสุด 24-32 GB) และไม่มีสาย NVLink ในรุ่นใหม่ๆ
- Workstation GPUs (RTX 6000 Ada, Radeon PRO): เพิ่มความจุ VRAM ขึ้นมาเป็น 48 GB+, รองรับ ECC Memory ป้องกันข้อมูลผิดพลาด, มี Form Factor และอัตราการใช้พลังงานที่เหมาะสำหรับใส่เคสประกอบเซิร์ฟเวอร์สำนักงาน
- Datacenter GPUs (H100, H200, B200, DGX Station GB300, MI300X): ออกแบบมาเพื่อ High Concurrency Enterprise Fleet ที่ต้องเปิดบริการ 24/7 ใช้ความเร็วแรมระดับ HBM3/HBM3e (3,000+ GB/s) มีระบบระบายความร้อน Liquid Cooling และสถาปัตยกรรม NVSwitch เพื่อเชื่อมต่อ Tensor Parallelism ข้ามการ์ดหลายใบได้อย่างไร้รอยต่อ

(ตารางด้านล่างแสดง ฮาร์ดแวร์และราคาใน calculator ซึ่งเป็นราคาประมาณการวางแผนในประเทศไทย ไม่ใช่ใบเสนอราคาซื้อขายจริง)

## คำถามก่อนซื้อ

รายการเช็กเคลิสต์ 5 ข้อที่ต้องตอบตัวเองให้ได้ก่อนลงเงินซื้อหรือเช่าฮาร์ดแวร์:
1. โมเดลขนาดกี่ B และใช้ Quantization Format อะไร?
2. ต้องรองรับ Working Context ความยาวเท่าไหร่ (เช่น 4K, 32K, หรือ 128K)?
3. ต้องการรับ Concurrent Users พร้อมกันกี่คน (Batch Size)?
4. เป้าหมายระบบเน้นความเร็วตอบสนองส่วนบุคคล (Low Latency / TTFT) หรือเน้นปริมาณงานรวม (High Throughput)?
5. ทีมงานมีความเชี่ยวชาญในการบริหารจัดการระบบปฏิบัติการใด (macOS, Linux CUDA, หรือ ROCm)?

นำคำตอบทั้งหมดไปใส่ลงใน LLM VRAM Calculator เพื่อตรวจเช็ก VRAM Peak และสปีดก่อนสั่งซื้อจริง!

## เลือกเครื่องจากเส้นทาง deploy

เริ่มจาก runtime และ artifact ที่ต้องใช้ เพราะสองอย่างนี้กำหนด GPU path ก่อนราคา จากนั้นดู memory ที่ต้องจอง, bandwidth, และภาระดูแลระบบ

การ์ดที่มี VRAM มากไม่รับประกันว่า workflow จะง่ายกว่า ให้เทียบ model, context และจำนวน request ที่ต้องรองรับกับทางเลือกจริง

| ทางเลือก | เริ่มดูจาก | ตรวจเพิ่ม |
| --- | --- | --- |
| Mac Apple Silicon | MLX หรือ GGUF บน Metal | unified memory, conversion path, local workflow |
| NVIDIA | CUDA runtime และ kernel ที่รองรับ | VRAM, bandwidth, driver, serving topology |
| AMD | ROCm และ HIP support ของ runtime | รุ่น GPU, kernel path, artifact support |

### คำถามก่อนซื้อหรือเช่า

- model และ quant ที่ต้องรันคืออะไร

- working context และ sequence พร้อมกันกี่อัน

- ต้องการ TTFT, per-user tok/s หรือ aggregate throughput

- ทีมดูแล Linux, CUDA หรือ ROCm ได้ระดับใด

- ต้องใช้ card เดียว, replica หรือ tensor parallel

### ข้อมูลที่ควรนำเข้า calculator

```

hardware = <device>
framework = <runtime>
model = <checkpoint>
working_context = <tokens>
batch = <concurrent sequences>

```

## คำถามที่พบบ่อย

### RTX 5090 รันโมเดล 70B ได้ไหม

RTX 5090 มี VRAM 32 GB จึงรันโมเดล 70B ที่ความแม่นยำเต็มไม่ได้เพราะน้ำหนักอย่างเดียวก็เกิน 100 GB แล้ว ทางที่เป็นไปได้คือใช้โมเดล 4-bit ที่บีบน้ำหนักลงมาเหลือราว 35 GB แต่ก็ยังตึงมากเมื่อรวม KV cache กับค่าเปิดระบบ ควรตรวจงบ VRAM ทั้งสามก้อนใน calculator ก่อนตัดสินใจ

### Mac unified memory ต่างจาก VRAM อย่างไร

Unified memory บน Mac เป็นแรมก้อนเดียวที่ CPU GPU และ Neural Engine ใช้ร่วมกัน สั่งสเปกได้สูงสุดราว 192 GB จึงโหลดโมเดลใหญ่ด้วย MLX หรือ GGUF บนเครื่องทำงานเครื่องเดียวได้ ข้อแลกคือแบนด์วิดท์ต่ำกว่า HBM บนการ์ด datacenter มาก และเพิ่มแรมทีหลังไม่ได้ จึงเหมาะกับ workstation ส่วนตัวมากกว่างาน production ที่ต้องรับคนจำนวนมาก

## แหล่งอ้างอิง

- [Apple Mac Studio technical specifications](https://www.apple.com/mac-studio/specs/)

- [vLLM-Metal](https://docs.vllm.ai/projects/vllm-metal/en/latest/)

- [NVIDIA TensorRT precision support](https://docs.nvidia.com/deeplearning/tensorrt/latest/inference-library/capabilities.html)

- [AMD ROCm vLLM optimization](https://rocm.docs.amd.com/en/develop/how-to/rocm-for-ai/inference-optimization/vllm-optimization.html)

- [MLX-LM](https://github.com/ml-explore/mlx-lm)

- [llama.cpp](https://github.com/ggml-org/llama.cpp)
