Ace-Step-Munk / docs /ko /GPU_COMPATIBILITY.md
OnyxMunk's picture
Add LoRA training assets: scripts, docs (no binaries), ui, my_dataset
bc9c638
# GPU ํ˜ธํ™˜์„ฑ ๊ฐ€์ด๋“œ
ACE-Step 1.5๋Š” GPU์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ VRAM์— ์ž๋™์œผ๋กœ ์ ์‘ํ•˜์—ฌ ์ƒ์„ฑ ์ œํ•œ, LM ๋ชจ๋ธ ๊ฐ€์šฉ์„ฑ, ์˜คํ”„๋กœ๋“œ ์ „๋žต ๋ฐ UI ๊ธฐ๋ณธ ์„ค์ •์„ ์ ์ ˆํžˆ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ์‹œ์ž‘ ์‹œ GPU ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ตœ์ ์˜ ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
## GPU ํ‹ฐ์–ด ๊ตฌ์„ฑ
| VRAM | ํ‹ฐ์–ด | LM ๋ชจ๋ธ | ์ถ”์ฒœ LM | ๋ฐฑ์—”๋“œ | ์ตœ๋Œ€ ๊ธธ์ด (LM ์‚ฌ์šฉ / ๋ฏธ์‚ฌ์šฉ) | ์ตœ๋Œ€ ๋ฐฐ์น˜ (LM ์‚ฌ์šฉ / ๋ฏธ์‚ฌ์šฉ) | ์˜คํ”„๋กœ๋“œ | ์–‘์žํ™” |
|------|------|---------|---------|--------|------------------------------|------------------------------|----------|--------|
| โ‰ค4GB | ํ‹ฐ์–ด 1 | ์—†์Œ | โ€” | pt | 4๋ถ„ / 6๋ถ„ | 1 / 1 | CPU + DiT | INT8 |
| 4-6GB | ํ‹ฐ์–ด 2 | ์—†์Œ | โ€” | pt | 8๋ถ„ / 10๋ถ„ | 1 / 1 | CPU + DiT | INT8 |
| 6-8GB | ํ‹ฐ์–ด 3 | 0.6B | 0.6B | pt | 8๋ถ„ / 10๋ถ„ | 1 / 2 | CPU + DiT | INT8 |
| 8-12GB | ํ‹ฐ์–ด 4 | 0.6B | 0.6B | vllm | 8๋ถ„ / 10๋ถ„ | 2 / 4 | CPU + DiT | INT8 |
| 12-16GB | ํ‹ฐ์–ด 5 | 0.6B, 1.7B | 1.7B | vllm | 8๋ถ„ / 10๋ถ„ | 2 / 4 | CPU | INT8 |
| 16-20GB | ํ‹ฐ์–ด 6a | 0.6B, 1.7B | 1.7B | vllm | 8๋ถ„ / 10๋ถ„ | 4 / 8 | CPU | INT8 |
| 20-24GB | ํ‹ฐ์–ด 6b | 0.6B, 1.7B, 4B | 1.7B | vllm | 8๋ถ„ / 8๋ถ„ | 4 / 8 | ์—†์Œ | ์—†์Œ |
| โ‰ฅ24GB | ์ œํ•œ ์—†์Œ | ์ „์ฒด (0.6B, 1.7B, 4B) | 4B | vllm | 10๋ถ„ / 10๋ถ„ | 8 / 8 | ์—†์Œ | ์—†์Œ |
### ์—ด ์„ค๋ช…
- **LM ๋ชจ๋ธ**: ํ•ด๋‹น ํ‹ฐ์–ด์—์„œ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” 5Hz ์–ธ์–ด ๋ชจ๋ธ ํฌ๊ธฐ
- **์ถ”์ฒœ LM**: UI์—์„œ ํ•ด๋‹น ํ‹ฐ์–ด์— ๊ธฐ๋ณธ ์„ ํƒ๋˜๋Š” LM ๋ชจ๋ธ
- **๋ฐฑ์—”๋“œ**: LM ์ถ”๋ก  ๋ฐฑ์—”๋“œ (`vllm`์€ ์ถฉ๋ถ„ํ•œ VRAM์„ ๊ฐ€์ง„ NVIDIA GPU์šฉ, `pt`๋Š” PyTorch ๋Œ€์ฒด, `mlx`๋Š” Apple Silicon์šฉ)
- **์˜คํ”„๋กœ๋“œ**:
- **CPU + DiT**: ๋ชจ๋“  ๋ชจ๋ธ(DiT, VAE, ํ…์ŠคํŠธ ์ธ์ฝ”๋”)์„ ๋ฏธ์‚ฌ์šฉ ์‹œ CPU๋กœ ์˜คํ”„๋กœ๋“œ; DiT๋„ ๋‹จ๊ณ„ ๊ฐ„ ์˜คํ”„๋กœ๋“œ
- **CPU**: VAE์™€ ํ…์ŠคํŠธ ์ธ์ฝ”๋”๋ฅผ CPU๋กœ ์˜คํ”„๋กœ๋“œ; DiT๋Š” GPU์— ์œ ์ง€
- **์—†์Œ**: ๋ชจ๋“  ๋ชจ๋ธ์„ GPU์— ์œ ์ง€
- **์–‘์žํ™”**: VRAM ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ INT8 ๊ฐ€์ค‘์น˜ ์–‘์žํ™”๋ฅผ ํ™œ์„ฑํ™”ํ• ์ง€ ์—ฌ๋ถ€
## ์ ์‘ํ˜• UI ๊ธฐ๋ณธ ์„ค์ •
Gradio UI๋Š” ๊ฐ์ง€๋œ GPU ํ‹ฐ์–ด์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค:
- **LM ์ดˆ๊ธฐํ™” ์ฒดํฌ๋ฐ•์Šค**: LM์„ ์ง€์›ํ•˜๋Š” ํ‹ฐ์–ด(ํ‹ฐ์–ด 3+)์—์„œ ๊ธฐ๋ณธ ์ฒดํฌ, ํ‹ฐ์–ด 1-2์—์„œ๋Š” ์ฒดํฌ ํ•ด์ œ ๋ฐ ๋น„ํ™œ์„ฑํ™”
- **LM ๋ชจ๋ธ ๊ฒฝ๋กœ**: ํ‹ฐ์–ด์˜ ์ถ”์ฒœ ๋ชจ๋ธ์ด ์ž๋™ ์ž…๋ ฅ; ๋“œ๋กญ๋‹ค์šด์—๋Š” ํ˜ธํ™˜ ๋ชจ๋ธ๋งŒ ํ‘œ์‹œ
- **๋ฐฑ์—”๋“œ ๋“œ๋กญ๋‹ค์šด**: ํ‹ฐ์–ด 1-3์—์„œ๋Š” `pt`/`mlx`๋กœ ์ œํ•œ(vllm KV ์บ์‹œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉ); ํ‹ฐ์–ด 4+์—์„œ๋Š” ๋ชจ๋“  ๋ฐฑ์—”๋“œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
- **CPU ์˜คํ”„๋กœ๋“œ / DiT ์˜คํ”„๋กœ๋“œ**: ๋‚ฎ์€ ํ‹ฐ์–ด์—์„œ ๊ธฐ๋ณธ ํ™œ์„ฑํ™”, ๋†’์€ ํ‹ฐ์–ด์—์„œ ๋น„ํ™œ์„ฑํ™”
- **์–‘์žํ™”**: ํ‹ฐ์–ด 1-6a์—์„œ ๊ธฐ๋ณธ ํ™œ์„ฑํ™”, ํ‹ฐ์–ด 6b+์—์„œ ๋น„ํ™œ์„ฑํ™”(์ถฉ๋ถ„ํ•œ VRAM)
- **๋ชจ๋ธ ์ปดํŒŒ์ผ**: ๋ชจ๋“  ํ‹ฐ์–ด์—์„œ ๊ธฐ๋ณธ ํ™œ์„ฑํ™”(์–‘์žํ™”์— ํ•„์š”)
ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์˜ต์…˜์„ ์ˆ˜๋™์œผ๋กœ ์„ ํƒํ•œ ๊ฒฝ์šฐ(์˜ˆ: 6GB GPU์—์„œ vllm ์‚ฌ์šฉ ์‹œ๋„), ์‹œ์Šคํ…œ์ด ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ํ˜ธํ™˜ ๊ฐ€๋Šฅํ•œ ์„ค์ •์œผ๋กœ ์ž๋™ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
## ๋Ÿฐํƒ€์ž„ ์•ˆ์ „ ๊ธฐ๋Šฅ
- **VRAM ๊ฐ€๋“œ**: ๊ฐ ์ถ”๋ก  ์ „์— VRAM ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถ”์ •ํ•˜๊ณ  ํ•„์š” ์‹œ ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ์ž๋™ ์ถ•์†Œ
- **์ ์‘ํ˜• VAE ๋””์ฝ”๋”ฉ**: 3๋‹จ๊ณ„ ๋Œ€์ฒด: GPU ํƒ€์ผ ๋””์ฝ”๋”ฉ โ†’ GPU ๋””์ฝ”๋”ฉ+CPU ์˜คํ”„๋กœ๋“œ โ†’ ์™„์ „ CPU ๋””์ฝ”๋”ฉ
- **์ž๋™ ์ฒญํฌ ํฌ๊ธฐ**: VAE ๋””์ฝ”๋”ฉ ์ฒญํฌ ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฌ์œ  VRAM์— ์ ์‘(64/128/256/512/1024/1536)
- **๊ธธ์ด/๋ฐฐ์น˜ ํด๋žจํ•‘**: ํ‹ฐ์–ด ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋Š” ๊ฐ’์„ ์š”์ฒญํ•˜๋ฉด ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์ž๋™ ์กฐ์ •
## ์ฐธ๊ณ  ์‚ฌํ•ญ
- **๊ธฐ๋ณธ ์„ค์ •**์€ ๊ฐ์ง€๋œ GPU ๋ฉ”๋ชจ๋ฆฌ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค
- **LM ๋ชจ๋“œ**๋Š” Chain-of-Thought ์ƒ์„ฑ ๋ฐ ์˜ค๋””์˜ค ์ดํ•ด์— ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด ๋ชจ๋ธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค
- **Flash Attention**์€ ์ž๋™ ๊ฐ์ง€๋˜๋ฉฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•  ๋•Œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค
- **์ œ์•ฝ ๋””์ฝ”๋”ฉ**: LM์ด ์ดˆ๊ธฐํ™”๋˜๋ฉด LM์˜ ๊ธธ์ด ์ƒ์„ฑ๋„ GPU ํ‹ฐ์–ด์˜ ์ตœ๋Œ€ ๊ธธ์ด ์ œํ•œ์œผ๋กœ ์ œ์•ฝ๋˜์–ด CoT ์ƒ์„ฑ ์ค‘ OOM ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค
- VRAM์ด 6GB ์ดํ•˜์ธ GPU(ํ‹ฐ์–ด 1-2)์˜ ๊ฒฝ์šฐ, DiT ๋ชจ๋ธ์˜ ๋ฉ”๋ชจ๋ฆฌ ํ™•๋ณด๋ฅผ ์œ„ํ•ด LM ์ดˆ๊ธฐํ™”๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค
- CLI ์ธ์ž ๋˜๋Š” Gradio UI๋ฅผ ํ†ตํ•ด ์„ค์ •์„ ์ˆ˜๋™์œผ๋กœ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
> **์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ ํ™˜์˜**: ์œ„์˜ GPU ํ‹ฐ์–ด ๊ตฌ์„ฑ์€ ์ผ๋ฐ˜์ ์ธ ํ•˜๋“œ์›จ์–ด์—์„œ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์ค‘์ธ ์žฅ์น˜์˜ ์‹ค์ œ ์„ฑ๋Šฅ์ด ์ด ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๋‹ค๋ฅด๋‹ค๋ฉด, ๋” ์ฒ ์ €ํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  `acestep/gpu_config.py`์—์„œ ๊ตฌ์„ฑ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•œ PR์„ ์ œ์ถœํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
## ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ํŒ
1. **์ดˆ์ € VRAM (โ‰ค6GB)**: LM ์ดˆ๊ธฐํ™” ์—†์ด DiT ์ „์šฉ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉ. INT8 ์–‘์žํ™”์™€ ์™„์ „ CPU ์˜คํ”„๋กœ๋“œ๊ฐ€ ํ•„์ˆ˜. VAE ๋””์ฝ”๋”ฉ์ด ์ž๋™์œผ๋กœ CPU๋กœ ๋Œ€์ฒด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2. **์ € VRAM (6-8GB)**: `pt` ๋ฐฑ์—”๋“œ๋กœ 0.6B LM ๋ชจ๋ธ ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ์˜คํ”„๋กœ๋“œ๋ฅผ ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์„ธ์š”.
3. **์ค‘๊ฐ„ VRAM (8-16GB)**: 0.6B ๋˜๋Š” 1.7B LM ๋ชจ๋ธ์„ ์‚ฌ์šฉ. ํ‹ฐ์–ด 4+์—์„œ `vllm` ๋ฐฑ์—”๋“œ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
4. **๋†’์€ VRAM (16-24GB)**: ๋” ํฐ LM ๋ชจ๋ธ(1.7B ์ถ”์ฒœ)์„ ํ™œ์„ฑํ™”. 20GB+์—์„œ๋Š” ์–‘์žํ™”๊ฐ€ ์„ ํƒ ์‚ฌํ•ญ์ด ๋ฉ๋‹ˆ๋‹ค.
5. **์ดˆ๊ณ  VRAM (โ‰ฅ24GB)**: ๋ชจ๋“  ๋ชจ๋ธ์ด ์˜คํ”„๋กœ๋“œ๋‚˜ ์–‘์žํ™” ์—†์ด ์ž‘๋™. ์ตœ๊ณ  ํ’ˆ์งˆ์„ ์œ„ํ•ด 4B LM์„ ์‚ฌ์šฉํ•˜์„ธ์š”.
## ๋””๋ฒ„๊ทธ ๋ชจ๋“œ: ๋‹ค๋ฅธ GPU ๊ตฌ์„ฑ ์‹œ๋ฎฌ๋ ˆ์ด์…˜
ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด `MAX_CUDA_VRAM` ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ GPU ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
```bash
# 4GB GPU ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ํ‹ฐ์–ด 1)
MAX_CUDA_VRAM=4 uv run acestep
# 6GB GPU ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ํ‹ฐ์–ด 2)
MAX_CUDA_VRAM=6 uv run acestep
# 8GB GPU ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ํ‹ฐ์–ด 4)
MAX_CUDA_VRAM=8 uv run acestep
# 12GB GPU ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ํ‹ฐ์–ด 5)
MAX_CUDA_VRAM=12 uv run acestep
# 16GB GPU ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (ํ‹ฐ์–ด 6a)
MAX_CUDA_VRAM=16 uv run acestep
```
`MAX_CUDA_VRAM`์„ ์„ค์ •ํ•˜๋ฉด ์‹œ์Šคํ…œ์€ `torch.cuda.set_per_process_memory_fraction()`์„ ํ˜ธ์ถœํ•˜์—ฌ VRAM ํ•˜๋“œ ์บก์„ ๊ฐ•์ œํ•˜๋ฉฐ, ๊ณ ์‚ฌ์–‘ GPU์—์„œ๋„ ํ˜„์‹ค์ ์ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
### ์ž๋™ ํ‹ฐ์–ด ํ…Œ์ŠคํŠธ
UI์—์„œ ๊ฐ ํ‹ฐ์–ด๋ฅผ ์ˆ˜๋™์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋Œ€์‹ , `profile_inference.py`์˜ `tier-test` ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
```bash
# ๋ชจ๋“  ํ‹ฐ์–ด ์ž๋™ ํ…Œ์ŠคํŠธ
python profile_inference.py --mode tier-test
# ํŠน์ • ํ‹ฐ์–ด ํ…Œ์ŠคํŠธ
python profile_inference.py --mode tier-test --tiers 6 8 16
# LM ํ™œ์„ฑํ™”ํ•˜์—ฌ ํ…Œ์ŠคํŠธ (์ง€์›๋˜๋Š” ํ‹ฐ์–ด์—์„œ)
python profile_inference.py --mode tier-test --tier-with-lm
# ๋น ๋ฅธ ํ…Œ์ŠคํŠธ (๋น„์–‘์žํ™” ํ‹ฐ์–ด์—์„œ torch.compile ๊ฑด๋„ˆ๋›ฐ๊ธฐ)
python profile_inference.py --mode tier-test --tier-skip-compile
```
ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ์˜ ์ „์ฒด ๋ฌธ์„œ๋Š” [BENCHMARK.md](BENCHMARK.md)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค:
- ๊ณ ์‚ฌ์–‘ ํ•˜๋“œ์›จ์–ด์—์„œ GPU ํ‹ฐ์–ด ๊ตฌ์„ฑ ํ…Œ์ŠคํŠธ
- ๊ฐ ํ‹ฐ์–ด์— ๋Œ€ํ•ด ๊ฒฝ๊ณ  ๋ฐ ์ œํ•œ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธ
- `acestep/gpu_config.py` ์ˆ˜์ • ํ›„ ์ž๋™ ํšŒ๊ท€ ํ…Œ์ŠคํŠธ
- CI/CD VRAM ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆ
### ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ (์ตœ์†Œ ํ‹ฐ์–ด ์ฐพ๊ธฐ)
`--tier-boundary`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด INT8 ์–‘์žํ™”์™€ CPU ์˜คํ”„๋กœ๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ VRAM ํ‹ฐ์–ด๋ฅผ ์‹คํ—˜์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ‹ฐ์–ด์— ๋Œ€ํ•ด ์ตœ๋Œ€ 3๊ฐ€์ง€ ๊ตฌ์„ฑ์œผ๋กœ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค:
1. **default** โ€” ํ‹ฐ์–ด์˜ ๊ธฐ๋ณธ ์„ค์ • (์–‘์žํ™” + ์˜คํ”„๋กœ๋“œ๋ฅผ ๊ตฌ์„ฑ๋Œ€๋กœ ์‚ฌ์šฉ)
2. **no-quant** โ€” ์˜คํ”„๋กœ๋“œ ์„ค์ •์€ ์œ ์ง€ํ•˜๋˜ ์–‘์žํ™” ๋น„ํ™œ์„ฑํ™”
3. **no-offload** โ€” ์–‘์žํ™” ์—†์Œ, CPU ์˜คํ”„๋กœ๋“œ ์—†์Œ (๋ชจ๋“  ๋ชจ๋ธ์„ GPU์— ์œ ์ง€)
```bash
# ๋ชจ๋“  ํ‹ฐ์–ด์—์„œ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ ์‹คํ–‰
python profile_inference.py --mode tier-test --tier-boundary
# ํŠน์ • ํ‹ฐ์–ด์˜ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ
python profile_inference.py --mode tier-test --tier-boundary --tiers 8 12 16 20 24
# LM ํ™œ์„ฑํ™”๋œ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ (์ง€์›๋˜๋Š” ํ‹ฐ์–ด์—์„œ)
python profile_inference.py --mode tier-test --tier-boundary --tier-with-lm
# ๊ฒฐ๊ณผ๋ฅผ JSON์œผ๋กœ ์ €์žฅ
python profile_inference.py --mode tier-test --tier-boundary --benchmark-output boundary_results.json
```
> **์ฐธ๊ณ :** ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋Š” ๊ฒฝํ—˜์ ์ด๋ฉฐ, DiT ๋ชจ๋ธ ๋ณ€ํ˜• (turbo vs base), LM ํ™œ์„ฑํ™” ์—ฌ๋ถ€, ์ƒ์„ฑ ์‹œ๊ฐ„, flash attention ๊ฐ€์šฉ์„ฑ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
### ๋ฐฐ์น˜ ํฌ๊ธฐ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ
`--tier-batch-boundary`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์น˜ ํฌ๊ธฐ 1, 2, 4, 8์„ ๋‹จ๊ณ„์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜์—ฌ ๊ฐ ํ‹ฐ์–ด์˜ ์ตœ๋Œ€ ์•ˆ์ „ ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค:
```bash
# LM ํ™œ์„ฑํ™” ์ƒํƒœ์—์„œ ๋ฐฐ์น˜ ๊ฒฝ๊ณ„ ํ…Œ์ŠคํŠธ ์‹คํ–‰
python profile_inference.py --mode tier-test --tier-batch-boundary --tier-with-lm
# ํŠน์ • ํ‹ฐ์–ด ํ…Œ์ŠคํŠธ
python profile_inference.py --mode tier-test --tier-batch-boundary --tier-with-lm --tiers 8 12 16 24
```
LM ์‚ฌ์šฉ/๋ฏธ์‚ฌ์šฉ ๋‘ ๊ฐ€์ง€ ๊ตฌ์„ฑ์„ ๋ชจ๋‘ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ฐ ํ‹ฐ์–ด์˜ ์ตœ๋Œ€ ์„ฑ๊ณต ๋ฐฐ์น˜ ํฌ๊ธฐ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.