jayinlab

이 블로그의 콘텐츠는 AI가 작성·정리합니다.

초등학생 큰 그림 — GPU를 배송센터로 보는 9단계 비유

2026-04-13

어려운 용어를 잠시 내려놓고, “GPU가 일하는 큰 그림"을 박스 배송 시스템 비유로 먼저 이해한다.
비유로 구조를 잡은 뒤, 마지막에만 정확한 이름을 붙인다.


GPU 큰 그림 — 배송센터 비유 단계별 전개
Step 0 / 9
시작"다음"을 눌러 GPU 큰 그림을 배송센터 비유로 이해하세요.

1. 아주 바쁜 배송센터

아주 큰 도시에 세계에서 제일 바쁜 배송센터가 하나 있다.
이 센터는 하루 종일 박스를 처리한다.

  • 박스는 엄청 많다
  • 같은 일을 아주 빨리, 아주 많이 해야 한다
  • 느리게 생각하면 금방 줄이 밀린다

센터의 규칙은 단 하나다:

“생각은 미리 하고, 실제 작업할 때는 바로 움직여라.”


2. 트럭과 칸

센터에는 트럭이 많이 들어온다. 각 트럭 안에는 칸이 있다.

트럭 A: [칸 0] [칸 1] [칸 2]
트럭 B: [칸 0] [칸 1] [칸 2]

센터 사람들은 박스를 아무 데나 두지 않는다.

  • “이 종류 박스는 A트럭 0번 칸”
  • “저 종류 박스는 A트럭 1번 칸”

왜냐하면 찾기 쉽고, 실수가 줄고, 무엇보다 빨라지기 때문이다.


3. 두 종류의 종이

배송센터엔 종이가 두 종류 있다.

설계 종이 (오래 쓰는 규칙)

  • 어떤 트럭이 있는지
  • 각 트럭에 칸이 몇 개인지
  • 각 칸에 어떤 종류 박스를 넣을지

→ “센터가 일하는 방식"을 정하는 종이다.

오늘 작업 종이 (매번 바뀜)

  • 오늘은 파란 박스를 A트럭 0번 칸에
  • 내일은 초록 박스를 A트럭 0번 칸에

→ 칸 규칙은 같지만, 실제로 넣는 박스는 매일 달라질 수 있다.


4. 작업반장의 세 마디

센터에는 작업반장이 있다. 작업 시작 전 항상 이 순서로 말한다.

① "오늘은 이 작업 라인을 돌린다!" (pipeline 선택)
② "각 트럭 칸에 오늘 박스들을 넣어!" (descriptor set 바인딩)
③ "시작!" (dispatch)

중요한 건, 작업이 시작된 뒤에는 “잠깐만, 규칙 바꿀게"를 잘 안 한다.
이미 출발했기 때문에, 중간에 규칙을 계속 바꾸면 전체가 느려진다.


5. 왜 이렇게까지 엄격할까?

이 센터는 **“빨리”**가 생명이다.

사람이 일일이 판단하면 느리다. 그래서 규칙을 미리 정해두고:

  • 트럭 번호! → 즉시 이동
  • 칸 번호! → 즉시 찾기
  • 박스 종류! → 즉시 확인

“마트 계산대 바코드"처럼 매번 설명 듣지 않고 번호로 바로 처리한다.


6. 센터 맨 아래층 신호실

배송센터 맨 아래층에는 기계에게 짧고 딱딱한 말만 하는 신호실이 있다.

"1번 라인 시작"
"2번 문 열기"
"3번 벨트 이동"

위층의 “박스/트럭/칸” 이야기는 결국 이 아래층 신호실의
짧은 지시들로 바뀌어 기계가 실제로 움직이게 된다.


7. 큰 그림 한 문장

“미리 정한 트럭-칸 규칙 위에, 오늘의 박스를 끼워 넣고,
시작 신호를 보내면, 아래층 기계가 초고속으로 처리한다.”


8. 이상한 점: 설계도 완성 후에도 실패할 수 있다?

설계도(규격서) 완성  →  승인 ✓
  ↓
실제 입고 작업에서 원형 박스를 네모 칸에 넣으려 시도
  ↓
칸 규격 불일치  →  실패 ✗

설계도 승인(pipeline create)이 성공해도,
실물(descriptor set 바인딩)이 규격서와 맞지 않으면 시작 버튼(dispatch) 시점에 실패한다.


9. 비유 ↔ 실제 개념 매핑표

비유실제 개념
박스 하나실제 리소스 (VkBuffer, VkImage 등)
트럭Descriptor Set
트럭 번호set index
칸 번호binding index
칸 규격descriptor type/count
설계 종이Descriptor Set Layout + Pipeline Layout
오늘 작업 종이descriptor write/update
작업 라인 선택Pipeline 바인딩
“시작!”vkCmdDispatch
아래층 신호실 지시드라이버 backend + PM4 패킷

암기용 3줄

  1. 규칙은 미리 정한다 (Layout 계약)
  2. 실물은 실행 때 꽂는다 (Descriptor Set bind)
  3. 시작 신호를 보내면 아래층이 초고속으로 움직인다 (Dispatch → PM4)

관련 글

관련 용어

[[descriptor-set]], [[pipeline-layout]], [[pm4-packet]], [[work-item]]