harheem's picture
Upload project files
3bfe3dd verified
raw
history blame
3.12 kB
translated_content = """
# ๊ฐ€์†๊ธฐ ์„ ํƒ
๋ถ„์‚ฐ ํ›ˆ๋ จ ์ค‘์—๋Š” ์‚ฌ์šฉํ•  ๊ฐ€์†๊ธฐ(CUDA, XPU, MPS, HPU ๋“ฑ)์˜ ๊ฐœ์ˆ˜์™€ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ปดํ“จํŒ… ์„ฑ๋Šฅ์„ ๊ฐ€์ง„ ๊ฐ€์†๊ธฐ๋“ค์ด ์žˆ์„ ๋•Œ ๋” ๋น ๋ฅธ ๊ฐ€์†๊ธฐ๋ฅผ ๋จผ์ € ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€์†๊ธฐ ์ค‘ ์ผ๋ถ€๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ ๊ณผ์ •์€ [DistributedDataParallel](https://pytorch.org/docs/stable/generated/torch.nn.parallel.DistributedDataParallel.html)๊ณผ [DataParallel](https://pytorch.org/docs/stable/generated/torch.nn.DataParallel.html) ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Accelerate๋‚˜ [DeepSpeed integration](./main_classes/deepspeed)์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ์‚ฌ์šฉํ•  ๊ฐ€์†๊ธฐ์˜ ๊ฐœ์ˆ˜์™€ ์‚ฌ์šฉ ์ˆœ์„œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
## ๊ฐ€์†๊ธฐ ๊ฐœ์ˆ˜
์˜ˆ๋ฅผ ๋“ค์–ด, 4๊ฐœ์˜ ๊ฐ€์†๊ธฐ๊ฐ€ ์žˆ๊ณ  ์ฒ˜์Œ 2๊ฐœ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.
<hfoptions id="select-accelerator">
<hfoption id="torchrun">
์‚ฌ์šฉํ•  ๊ฐ€์†๊ธฐ ๊ฐœ์ˆ˜๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด `--nproc_per_node`๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
</hfoption>
<hfoption id="Accelerate">
์‚ฌ์šฉํ•  ๊ฐ€์†๊ธฐ ๊ฐœ์ˆ˜๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด `--num_processes`๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
</hfoption>
<hfoption id="๐Ÿค— DeepSpeed">
์‚ฌ์šฉํ•  GPU ๊ฐœ์ˆ˜๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด `--num_gpus`๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
</hfoption>
</hfoptions>
## ๊ฐ€์†๊ธฐ ์ˆœ์„œ
์‚ฌ์šฉํ•  ํŠน์ • ๊ฐ€์†๊ธฐ์™€ ๊ทธ ์ˆœ์„œ๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ํ•˜๋“œ์›จ์–ด์— ์ ํ•ฉํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด๋Š” ๋ณดํ†ต ๊ฐ ์‹คํ–‰๋งˆ๋‹ค ๋ช…๋ น์ค„์—์„œ ์„ค์ •๋˜์ง€๋งŒ, `~/.bashrc`๋‚˜ ๋‹ค๋ฅธ ์‹œ์ž‘ ์„ค์ • ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, 4๊ฐœ์˜ ๊ฐ€์†๊ธฐ(0, 1, 2, 3)๊ฐ€ ์žˆ๊ณ  ๊ฐ€์†๊ธฐ 0๊ณผ 2๋งŒ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด:
<hfoptions id="accelerator-type">
<hfoption id="CUDA">
GPU 0๊ณผ 2๋งŒ PyTorch์— "๋ณด์ด๋ฉฐ" ๊ฐ๊ฐ `cuda:0`๊ณผ `cuda:1`๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ ค๋ฉด(GPU 2๋ฅผ `cuda:0`์œผ๋กœ, GPU 0์„ `cuda:1`๋กœ ์‚ฌ์šฉ):
GPU ์—†์ด ์‹คํ–‰ํ•˜๋ ค๋ฉด:
`CUDA_DEVICE_ORDER`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CUDA ์žฅ์น˜์˜ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:
- PCIe ๋ฒ„์Šค ID ์ˆœ์„œ(`nvidia-smi`์™€ ์ผ์น˜):
- ์ปดํ“จํŒ… ์„ฑ๋Šฅ ์ˆœ์„œ(๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒƒ๋ถ€ํ„ฐ):
</hfoption>
<hfoption id="Intel XPU">
XPU 0๊ณผ 2๋งŒ PyTorch์— "๋ณด์ด๋ฉฐ" ๊ฐ๊ฐ `xpu:0`๊ณผ `xpu:1`๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค.
์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ ค๋ฉด(XPU 2๋ฅผ `xpu:0`์œผ๋กœ, XPU 0์„ `xpu:1`๋กœ ์‚ฌ์šฉ):
๋‹ค์Œ์œผ๋กœ Intel XPU์˜ ์ˆœ์„œ๋ฅผ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:
Intel XPU์—์„œ์˜ ์žฅ์น˜ ์—ด๊ฑฐ ๋ฐ ์ •๋ ฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” [Level Zero](https://github.com/oneapi-src/level-zero/blob/master/README.md?plain=1#L87) ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
</hfoption>
</hfoptions>
> [!WARNING]
> ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ๋ช…๋ น์ค„์— ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹  exportํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ์žŠ์–ด๋ฒ„๋ฆฌ๊ณ  ์ž˜๋ชป๋œ ๊ฐ€์†๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ์–ด ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ํŠน์ • ํ›ˆ๋ จ ์‹คํ–‰์„ ์œ„ํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๊ฐ™์€ ๋ช…๋ น์ค„์—์„œ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค.
"""