๐Ÿ“Œ Infiniband

๊น€์žฌํ˜„ยท2025๋…„ 5์›” 15์ผ

Infiniband

๋ชฉ๋ก ๋ณด๊ธฐ
1/3
post-thumbnail

๐Ÿ“Œ Infiniband ๋ž€?

Infiniband๋Š” ๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ…(HPC), AI ํด๋Ÿฌ์Šคํ„ฐ, ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ ๋“ฑ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ดˆ๊ณ ์†, ์ €์ง€์—ฐ ๋„คํŠธ์›Œํฌ ๊ธฐ์ˆ ์ด๋‹ค.

1. ๐Ÿงฑ InfiniBand ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ

์šฉ์–ด์„ค๋ช…
HCA (Host Channel Adapter)์„œ๋ฒ„์— ์žฅ์ฐฉ๋œ InfiniBand ์ „์šฉ NIC (๋„คํŠธ์›Œํฌ ์นด๋“œ)
SwitchInfiniBand ์ „์šฉ ์Šค์œ„์น˜ (Spine-Leaf ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ)
LID (Local Identifier)๊ฐ ๋…ธ๋“œ์— ๋ถ€์—ฌ๋˜๋Š” ๋กœ์ปฌ ์ฃผ์†Œ (Ethernet์˜ IP์™€ ์œ ์‚ฌ)
GUID (Global Unique ID)์žฅ๋น„๋‚˜ ํฌํŠธ์˜ ๊ณ ์œ  ์‹๋ณ„์ž (MAC๊ณผ ๋น„์Šท)
Subnet Manager (SM)InfiniBand ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ๋ผ์šฐํŒ… ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ด€๋ฆฌ์ž
QP (Queue Pair)ํ†ต์‹ ์„ ์œ„ํ•œ ์ „์†ก ํ (Send/Receive Queue์˜ ์Œ)
RDMA์›๊ฒฉ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ํ†ต์‹  ๋ฐฉ์‹ (CPU ์šฐํšŒ)

2. ๐Ÿ”„ InfiniBand ํ†ต์‹  ๊ณผ์ • (์ „์†ก ์ˆœ์„œ)

๐Ÿ“Œ Step 1. ์ดˆ๊ธฐํ™” ๋ฐ ์ฃผ์†Œ ํ• ๋‹น

  • ์„œ๋ฒ„๊ฐ€ ๋ถ€ํŒ…๋˜๋ฉด HCA๊ฐ€ SM์— ์—ฐ๊ฒฐ์„ ์š”์ฒญ
  • SM์€ ๊ฐ ํฌํŠธ์— LID๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์„ค์ •
  • ์ด ๊ณผ์ •์€ Infiniband ์ „์šฉ ํ”„๋กœํ† ์ฝœ์ธ SMP(Subnet Management Protocol)์„ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋จ

๐Ÿ“Œ Step 2. ํ†ต์‹  ์„ธ์…˜ ์„ค์ • (QP ์ƒ์„ฑ)

  • ํ†ต์‹ ์„ ์›ํ•˜๋Š” ๋…ธ๋“œ ๊ฐ„์—๋Š” QP๋ฅผ ์ƒ์„ฑ
  • ๊ฐ QP๋Š” Send Queue + Receive Queue ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›์Œ
  • ์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ „์†ก ๋ฐฉ์‹์€ Reliable/Unreliable ์—ฐ๊ฒฐ ๋ชจ๋“œ๋ฅผ ์„ ํƒ

๐Ÿ“Œ Step 3. ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ๋ก

  • RDMA ํ†ต์‹ ์„ ์œ„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฉ”๋ชจ๋ฆฌ ๋ฒ„ํผ๋ฅผ ๋“ฑ๋ก
  • ๋“ฑ๋ก๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” Memory Region์ด ๋˜์–ด ์ƒ๋Œ€๋ฐฉ์ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋จ
  • ๋“ฑ๋ก ์‹œ ์–ป๋Š” ํ‚ค(Key)๋ฅผ ํ†ตํ•ด ์ƒ๋Œ€ ๋…ธ๋“œ๊ฐ€ ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ“Œ Step 4. ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ์ž‘

  • ํ†ต์‹  ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•จ:
  1. Send/Receive: ์ „ํ†ต์  ํ ๊ธฐ๋ฐ˜ ํ†ต์‹  (์ƒ๋Œ€๋ฐฉ์ด Receive ๋จผ์ € ์ค€๋น„)
  2. RDMA Write: ์ƒ๋Œ€๋ฐฉ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์“ฐ๊ธฐ (CPU ๊ฐœ์ž… X)
  3. RDMA Read: ์ƒ๋Œ€๋ฐฉ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ง์ ‘ ์ฝ๊ธฐ (์—ญ์‹œ CPU ๊ฐœ์ž… ์—†์Œ)
  4. Atomic: ์›์ž ์—ฐ์‚ฐ๋„ ์ง€์›

์ด ๋ฐ์ดํ„ฐ๋Š” Infiniband ํŒจํ‚ท์œผ๋กœ ์บก์Аํ™”๋˜์–ด ์ „์†ก๋จ.

๐Ÿ“Œ Step 5. ๋ผ์šฐํŒ… ๋ฐ ์Šค์œ„์น˜ ํ†ต๊ณผ

  • ๋ฐ์ดํ„ฐ๋Š” LID๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ผ์šฐํŒ…๋จ
  • ๋ผ์šฐํŒ… ๋ฐฉ์‹์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Fat Tree ๊ธฐ๋ฐ˜, SPF(Shortest Path First) ๋˜๋Š” Adaptive Routing ์ด ์‚ฌ์šฉ๋จ
  • Infiniband ์Šค์œ„์น˜๋Š” Cut-throught Switching์„ ์‚ฌ์šฉํ•ด ์ง€์—ฐ์„ ์ตœ์†Œํ™”

๐Ÿ“Œ Step 6. ์ˆ˜์‹  ๋ฐ ์ฒ˜๋ฆฌ

  • ์ˆ˜์‹  ๋…ธ๋“œ๋Š” QP์˜ Receive Queue์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋“ฑ๋ก๋œ ์˜์—ญ์— RDMA ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ ์ ‘๊ทผํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธ
  • ์ดํ›„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฒ˜๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ

3. ๐Ÿš€ InfiniBand ํ†ต์‹  ํŠน์ง•

ํ•ญ๋ชฉํŠน์ง•
์ง€์—ฐ(Latency)๋งค์šฐ ๋‚ฎ์Œ (12 ๋งˆ์ดํฌ๋กœ์ดˆ)
๋Œ€์—ญํญHDR: 200Gbps / NDR: 400Gbps
์ „์†ก ๋ฐฉ์‹RDMA, Send/Receive, Atomic
์—ฐ๊ฒฐ ๊ด€๋ฆฌQP ๊ธฐ๋ฐ˜, LID/GID ์ฃผ์†Œ
์Šค์œ„์น˜ ์—ญํ• ๋‹จ์ˆœํ•œ LID ๊ธฐ๋ฐ˜ ํฌ์›Œ๋”ฉ (๋ผ์šฐํŒ… ๊ฒฝ๋กœ๋Š” SM์ด ์„ค์ •)
๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑECMP, Adaptive Routing ๊ฐ€๋Šฅ
Flow Control๋งํฌ ์ˆ˜์ค€์—์„œ ๊ฐ•์ œ (ํฌ๋ ˆ๋”ง ๊ธฐ๋ฐ˜)

0๊ฐœ์˜ ๋Œ“๊ธ€