AI임베디드시스템 1~3장 (Copy)
CH01 · AI 임베디드 시스템과 EDGE AI

좋은 모델이 아니라 요구조건을 만족하는 시스템

1장은 모델 정확도에서 출발하지 않습니다. 어떤 환경에서 어떤 시간·메모리·전력·안전 요구를 만족해야 하는지부터 정하고, 그 기준으로 AI를 어디에서 실행할지 판단합니다.

핵심 질문

정확도가 높은 모델을 장치에 올리기만 하면 좋은 AI 임베디드 시스템이 완성되는가?

학습목표
  • AI 임베디드 시스템을 센서·추론·판단·출력·피드백이 결합된 전체 시스템으로 설명
  • IoT · Edge Computing · Edge AI · On-device AI · Cloud AI의 범위와 차이 구분
  • 통신·개인정보·지연·가용성·정확도 요구로 배포 위치 판단
  • Latency · Throughput · Memory · Power · Energy budget을 수식과 측정값으로 표현
  • 모델·정밀도·데이터 흐름·하드웨어를 함께 설계해야 하는 이유 설명
시험 포인트 함정 · 헷갈리기 쉬운 것 이해를 돕는 설명 풀어서 이해하기 · (괄호 회색 글씨 = 용어 풀이)
3️⃣ · 1-3

AI 임베디드 시스템의 범위

모델은 시스템의 한 부품입니다. 센서부터 출력, 그리고 출력이 환경을 바꿔 다시 입력으로 돌아오는 고리 전체를 봐야 합니다.

3.1–3.2

Embedded System과 AI Embedded System

임베디드 시스템은 특정 목적을 위해 하드웨어와 소프트웨어가 결합된 시스템이고, 여기에 AI 모델이 들어가면 AI 임베디드 시스템입니다.

풀어서 이해하기

임베디드 시스템은 기계 안에 들어가서 한 가지 일만 하는 작은 컴퓨터입니다. 세탁기, 도어락, 자동차 안의 제어 장치가 모두 임베디드 시스템입니다. 노트북처럼 아무 프로그램이나 돌리는 게 아니라 할 일이 정해져 있고, 대신 크기·전력·가격이 빠듯하다는 제약이 있습니다.

여기에 AI 모델이 들어가면 AI 임베디드 시스템입니다. 핵심은 "모델이 혼자 일하지 않는다"는 점입니다. 파이썬 수업에서는 model(x) 한 줄이면 끝났지만, 실제 기기에서는 그 x를 만들고 결과를 써먹는 과정이 앞뒤로 붙습니다. AI 도어락으로 한 바퀴를 따라가 보면 이렇습니다.

  1. 센서·카메라: 카메라가 문 앞을 찍습니다.
  2. 전처리: 사진을 모델이 원하는 224×224 크기로 줄이고(resize), 픽셀값 0~255를 0~1로 바꿉니다(normalization).
  3. AI 추론: 모델이 "등록된 사람일 확률 0.93"이라는 숫자를 냅니다.
  4. 후처리·판단: 0.9 이상일 때만 인정하고(confidence threshold), 3프레임 연속으로 인정될 때만 최종 판단합니다(temporal filtering). 한 장만 잘못 나와도 문이 열리는 걸 막기 위해서입니다.
  5. 출력·액추에이터: 잠금장치 모터가 돌아 문이 열립니다.
  6. 피드백: 문이 열리고 사람이 들어오면 문 앞 장면이 바뀌고, 그 장면이 다음 사진으로 다시 들어옵니다. 그래서 고리(폐루프) 모양입니다.

이 중 하나라도 잘못되면 모델이 아무리 정확해도 시스템은 실패합니다. 카메라가 어두우면 입력부터 틀리고, 후처리 기준이 너무 낮으면 엉뚱한 사람에게 문이 열립니다. 출력이 모터·잠금장치 같은 실제 물건이라서 작은 오류가 곧바로 안전 문제가 됩니다.

구분정의특징
Embedded System특정 목적용 HW + SW 결합 시스템비용·크기·전력·메모리·응답시간·신뢰성 제약 안에서 동작. 범용 PC와 달리 과업과 입출력 조건이 명확
AI Embedded System임베디드 시스템에 AI 모델이 포함된 형태모델은 구성 요소 중 하나. 센서 오류·전처리·runtime(모델을 실제로 돌려 주는 실행 소프트웨어)·후처리·출력 장치·사용자와 환경까지 함께 고려
센서·카메라현실 → 디지털 입력전처리resize · normalizeAI 추론분류 · 탐지 · 예측후처리·판단threshold · rule출력·액추에이터화면 · 경고 · 모터피드백: 출력이 환경을 바꾸고 다음 입력에 반영
Figure 1-1AI 임베디드 시스템의 폐루프 구조. 출력(경고·모터·잠금장치)이 환경을 바꾸고, 바뀐 환경이 다음 입력으로 다시 들어옵니다.
  • 시험폐루프 6단계 순서: 센서·카메라 → 전처리 → AI 추론 → 후처리·판단 → 출력·액추에이터 → 피드백. 전처리는 resize·normalization·filtering·format 변환, 후처리는 confidence threshold(확신도가 기준 이상일 때만 인정)·rule·temporal filtering(여러 프레임에 걸쳐 결과를 확인해 순간 오류 제거)입니다.
  • 이해모델의 작은 오차도 물리적 출력(모터, 잠금장치)과 연결되면 안전 문제로 커질 수 있습니다. 그래서 모델만 보면 안 됩니다.
3.3

IoT · Edge Computing · Edge AI · On-device AI

네 개념은 서로 배타적인 기술이 아니라 보는 관점이 다릅니다. IoT는 연결, Edge Computing은 처리 위치, On-device AI는 AI가 실행되는 위치에 초점을 둡니다.

풀어서 이해하기

네 단어가 헷갈리는 이유는 서로 다른 질문에 대한 답이기 때문입니다. 질문으로 바꿔 보면 구분이 쉬워집니다.

  • IoT: "이 기기가 네트워크에 연결돼 데이터를 주고받나?" 스마트폰으로 켜고 끄는 스마트 전구도 IoT입니다. AI가 없어도 됩니다.
  • Edge Computing: "데이터를 멀리 있는 서버 말고, 데이터가 생긴 곳 가까이에서 처리하나?" 공장 게이트웨이가 센서 값의 평균만 내도 Edge Computing입니다. 역시 AI가 없어도 됩니다.
  • Edge AI: "그 가까운 곳에서 하는 처리가 AI 추론인가?"
  • On-device AI: "그 AI가 데이터를 만든 바로 그 기기 안에서 도나?"
  • Cloud AI: "데이터를 인터넷으로 멀리 있는 서버에 보내서 AI를 돌리나?"

포함 관계: Edge AI의 "가까운 곳"에는 기기 자기 자신과 같은 건물의 gateway·서버가 모두 들어갑니다. On-device AI는 그중 "기기 자기 자신"인 경우만 말합니다. 그래서 On-device AI는 Edge AI의 일부(On-device AI ⊂ Edge AI)이고, 반대로 공장 서버에서 돌리는 AI는 Edge AI이지만 On-device AI는 아닙니다.

Jetson 예시가 말하는 것도 같습니다. 판단 기준은 장비 이름이 아니라 "데이터를 만든 기기와 AI를 돌린 기기가 같은가?"입니다. 로봇에 달린 카메라 영상을 로봇 안의 Jetson이 처리하면 같은 기기라서 On-device AI, 천장 카메라 여러 대의 영상을 따로 놓인 Jetson이 받아 처리하면 다른 기기라서 Gateway 기반 Edge AI입니다.

개념핵심 의미주요 처리 위치AI 필수?
IoT장치를 연결해 데이터를 수집·교환장치 · Gateway · Cloud아님
Edge Computing데이터 발생 지점 가까이에서 처리장치 · Gateway · Edge Server아님
Edge AI데이터 발생 지점 가까이에서 AI 추론장치 · Gateway · Edge Server필수
On-device AI최종 장치 내부에서 AI 모델 실행Camera · Smartphone · Raspberry Pi · Jetson필수
Cloud AI데이터를 인터넷으로 보내 원격 서버에서 추론원격 서버필수
포함 관계
\[\text{On-device AI} \subset \text{Edge AI}\]

같은 영상, 다른 실행 위치 (Figure 1-1a)

  • ① On-device: 스마트 카메라 자체에서 추론
  • ② Gateway 기반 Edge: 카메라와 별도인 현장 장치에서 추론
  • ③ Cloud: 영상을 인터넷으로 보내 원격 서버에서 추론하고 결과를 돌려받음
On-device AI①Edge AI① + ②① On-device② Gateway③ Cloud스마트 카메라센서 + AI 추론 내장결과만 출력결과경고 · 제어카메라영상 획득현장 LANGateway · Edge Server현장에서 AI 추론결과경고 · 제어카메라영상 획득인터넷원격 Cloud 서버AI 추론회신결과돌려받음원본이 인터넷을 거쳐 전송됨
Figure 1-1a같은 카메라 영상이라도 AI를 어디에서 실행하느냐에 따라 ① On-device, ② Gateway 기반 Edge, ③ Cloud로 나뉩니다. 안쪽 점선(①)이 On-device AI, 바깥 점선(①+②)이 Edge AI 범위입니다. 그래서 On-device AI ⊂ Edge AI입니다.
  • 시험각 개념을 한 문장으로 구분하는 문제(확인 문제 1번). IoT와 Edge Computing은 AI가 필수가 아니고, Edge AI와 On-device AI는 AI가 필수입니다.
  • 함정On-device AI는 Edge AI에 포함되지만 Edge AI가 항상 장치 내부 실행은 아닙니다. Gateway·Edge Server에서의 실행도 Edge AI입니다.
  • 함정장비 이름이 아니라 시스템 경계와 역할로 구분합니다. 같은 Jetson이라도 로봇 내부에서 자기 카메라로 추론하면 On-device AI, 여러 외부 카메라 영상을 받아 처리하면 Gateway 기반 Edge AI입니다.
  • 참고Arm 자료의 Endpoint AI는 이 교안의 On-device AI에 해당합니다. On-device AI는 네트워크 없이도 동작하고, 모델 업데이트·결과 공유에는 Cloud를 함께 쓸 수 있습니다.
4️⃣

왜 Edge AI인가?

On-device 처리가 필요한 세 가지 이유는 Communication · Privacy · Latency입니다(Figure 1-2, MIT 6.5930/1).

4.1–4.3

Communication · Privacy · Latency

풀어서 이해하기

Cloud AI의 흐름을 먼저 떠올려 보세요. 카메라 → 인터넷 → 서버에서 추론 → 다시 인터넷 → 카메라로 결과 도착. 이 왕복 때문에 세 가지 문제가 생기고, 기기 안에서 처리하면 이 세 가지가 함께 줄어듭니다.

  • Communication(통신): 영상은 데이터가 매우 큽니다. 3장에서 계산하겠지만 640×480 영상을 30 FPS로 보내면 1초에 약 27.6 MB입니다. 이걸 계속 보내면 통신 요금과 서버 비용이 들고, 인터넷이 끊기면 시스템이 멈춥니다. 기기 안에서 처리하면 "사람 있음" 같은 짧은 결과만 보내면 됩니다.
  • Privacy(개인정보): Cloud로 보내면 얼굴·목소리 원본이 회사 서버로 나가고 저장됩니다. 기기 안에서 처리하면 원본은 밖으로 나가지 않습니다. 다만 기기를 도난당하거나 해킹당하면 안에 있는 데이터가 새어 나갈 수 있으므로, 접근 제어·암호화·기록 관리는 따로 해야 합니다. 그래서 교안이 "로컬 처리 = 자동으로 안전"은 아니라고 강조합니다.
  • Latency(지연): 서버까지 갔다 오는 왕복 시간(RTT)과, 서버에서 다른 사람 요청 뒤에 줄 서서 기다리는 시간(queue)이 듭니다. 자율주행차가 보행자를 보고 바로 멈춰야 하는데 인터넷이 잠깐 느려지면 큰일이 나겠죠. 그래서 평균 지연뿐 아니라 가끔 생기는 가장 나쁜 지연도 함께 봐야 합니다.
Cloud 처리카메라 장치영상 획득원본 계속 전송네트워크인터넷Cloud 서버queue → AI 추론결과 회신 (왕복 지연 = RTT)① Communication: 전송량 · 비용 ↑, 끊기면 멈춤② Privacy: 원본이 외부로 전송 · 보관③ Latency: RTT + server queue 대기On-device 처리카메라 + AI 추론장치 안에서 판단즉시 출력경고 · 제어결과 · 통계만 필요할 때 전송① 원본 전송 없음, 오프라인 동작② 민감한 원본이 장치 안에 머묾③ RTT 없음 → 즉시 판단
Figure 1-2Cloud 처리는 원본을 계속 보내고(통신), 원본이 밖으로 나가며(개인정보), 결과를 받기까지 왕복해야 합니다(지연). On-device 처리는 이 세 문제를 장치 안에서 해결합니다. 다만 로컬 처리만으로 보안이 자동 보장되지는 않습니다.
이유장치 안에서 처리하면단서
Communication영상·음성 원시 데이터의 지속 전송량 감소, 네트워크가 끊겨도 핵심 기능 유지, 통신 비용·server traffic 감소
Privacy민감한 영상·음성·생체정보를 장치 내부에서 처리, 원본의 전송·보관 범위 축소로컬 처리가 보안을 자동으로 보장하지 않음. 접근 제어·암호화·로그 정책은 별도
Latency네트워크 전송과 server queue(서버에서 차례를 기다리는 줄)의 왕복 지연(RTT) 제거. 로봇·자동차·산업 제어에 유리평균뿐 아니라 지연 변동과 최악 조건도 측정
  • 시험세 가지 이유를 쓰라는 문제에 대비: 통신(Communication) · 개인정보(Privacy) · 지연(Latency).
  • 함정"로컬에서 처리하니 보안은 해결된다"는 틀린 진술입니다.
4.4

Cloud · Edge gateway · On-device · Hybrid 배치 비교

풀어서 이해하기

표는 "어디서 AI를 돌릴지"를 고르는 비교표입니다. 읽는 요령은 한 배치의 장점이 다른 배치의 단점이라는 점입니다.

  • Cloud: 서버에는 큰 GPU가 있어 큰 모델도 돌릴 수 있고 관리하기 쉽습니다. 대신 네트워크에 의존하고, 왕복 지연이 있고, 데이터가 밖으로 나갑니다.
  • Edge gateway: 공장 한쪽에 서버 한 대를 두고 카메라 여러 대의 영상을 모아 처리하는 방식입니다. 현장에서 처리하니 빠르지만, 그 서버가 고장 나면 전체가 멈추고 설치 비용이 듭니다.
  • On-device: 가장 빠르고 인터넷 없이 동작하며 데이터가 밖으로 안 나갑니다. 대신 작은 보드라서 큰 모델은 어렵고, 오래 돌리면 뜨거워집니다.
  • Hybrid: 둘을 섞습니다. 스마트폰 사진 앱이 얼굴 인식은 폰 안에서 하고, 사진 백업과 모델 업데이트는 클라우드에서 하는 것이 예입니다. 장점을 합치는 대신 둘 사이를 맞추는 일이 복잡해집니다.

고를 때는 "즉시 반응해야 하나? 인터넷이 항상 되나? 데이터를 밖으로 보내도 되나? 모델이 얼마나 큰가?"를 차례로 물어보면 됩니다.

배치장점주요 한계적합한 상황
Cloud대규모 모델, 중앙 관리, 높은 연산 자원네트워크 의존, 전송 지연, 개인정보 전송복잡한 분석, 즉시성이 낮은 작업
Edge gateway여러 장치 통합, 현장 처리, 관리 용이gateway 장애, 추가 구축 비용공장·건물 단위 다중 센서
On-device최소 지연, 오프라인 동작, 데이터 통제연산·메모리·전력·발열 제약카메라·로봇·웨어러블의 즉시 판단
Hybrid현장 즉시 판단 + cloud 고급 분석동기화·정책·실패 처리가 복잡로컬 안전 기능 + cloud 업데이트
  • 시험"Cloud보다 On-device가 유리한 상황과 불리한 상황을 각각 두 가지"(확인 문제 2번). 유리: 즉시 판단·오프라인·개인정보. 불리: 큰 모델이 필요할 때·연산/메모리/전력/발열 제약.
5️⃣

전체 시스템의 시간 · 메모리 · 전력 Budget

세 가지 예산을 수식으로 쓰고, 각각 허용 한도 이하인지 확인합니다.

5.1

End-to-end latency

입력 획득부터 출력 반응까지 다섯 단계의 시간을 모두 더한 값이 deadline 이하여야 합니다.

풀어서 이해하기

사용자가 느끼는 응답 시간은 "카메라가 찍은 순간부터 잠금장치가 움직이기 시작할 때까지"입니다. 도어락 예시로 다섯 칸을 채워 보면 이렇습니다.

  1. \(T_{capture}\) = 8 ms: 카메라가 사진 한 장을 프로그램에 넘겨줄 때까지
  2. \(T_{pre}\) = 12 ms: resize·normalization
  3. \(T_{infer}\) = 35 ms: 모델 계산 (파이썬에서 model(x) 부분)
  4. \(T_{post}\) = 5 ms: threshold 비교, 결과 정리
  5. \(T_{act}\) = 10 ms: 모터가 실제로 움직이기 시작할 때까지

합치면 70 ms입니다. deadline이 100 ms라면 통과입니다.

보통 실습에서는 model(x) 앞뒤로만 시간을 재서 35 ms라고 생각하기 쉽습니다. 하지만 사용자가 느끼는 시간은 그 두 배인 70 ms입니다. 그리고 모델을 두 배 빠르게 만들어도(35 → 17.5 ms) 전체는 70 → 52.5 ms로 약 25%만 줄어듭니다. 그래서 교안이 "추론 시간만 측정하면 충분하지 않다"고 말하는 것입니다.

\[T_{total}=T_{capture}+T_{pre}+T_{infer}+T_{post}+T_{act}\le T_{deadline}\]
\(T_{capture}\)
센서 입력 획득 시간
\(T_{pre}\)
전처리 시간
\(T_{infer}\)
모델 추론 시간
\(T_{post}\)
후처리와 판단 시간
\(T_{act}\)
출력 장치가 반응하는 시간
\(T_{deadline}\)
시스템이 허용하는 최대 응답시간
계산 예시 가정한 숫자
  1. 주어진 값: \(T_{capture}\)=8, \(T_{pre}\)=12, \(T_{infer}\)=35, \(T_{post}\)=5, \(T_{act}\)=10 ms, \(T_{deadline}\)=100 ms
  2. \(T_{total}=8+12+35+5+10=70\) ms
  3. 70 ms ≤ 100 ms 이므로 deadline 만족

추론(35 ms)은 전체의 절반뿐입니다. 추론만 재면 응답 시간을 절반으로 잘못 알게 됩니다.

  • 시험"모델 추론 시간과 end-to-end latency가 다른 이유"(확인 문제 3번): 추론은 \(T_{infer}\) 하나일 뿐이고, 카메라 읽기·영상 변환·후처리·화면 출력이 느리면 모델이 빨라도 사용자가 느끼는 응답은 느립니다.
5.2

Peak memory

풀어서 이해하기

프로그램이 돌아가는 동안 메모리(RAM)에는 네 가지가 동시에 올라가 있습니다.

  • Weights: 모델이 학습해서 저장한 숫자들입니다. 저장해 둔 .pt 모델 파일 크기와 거의 같습니다.
  • Activations: 계산하는 도중에 각 층이 만들어 내는 중간 결과(feature map)입니다. 예를 들어 첫 conv 층 출력이 112×112×64개 숫자이고 숫자 하나가 4 byte(FP32)라면 약 3.2 MB입니다. 입력 이미지가 클수록 커집니다.
  • Runtime: 파이썬, PyTorch 같은 라이브러리, 운영체제 자체가 차지하는 메모리입니다. 의외로 이게 수백 MB로 가장 큰 경우가 많습니다.
  • Buffers: 카메라 사진을 담아 둘 칸, 입력·출력을 잠시 두는 공간입니다.

Peak memory는 이 넷을 더한 값 중 가장 많이 쓸 때의 양이고, 이게 실제로 쓸 수 있는 메모리보다 작아야 합니다. "실제로 쓸 수 있는"이 중요합니다. 4 GB 보드라도 운영체제와 다른 프로그램이 1 GB를 쓰고 있으면 나머지 3 GB 안에서 해결해야 합니다.

모델 파일이 40 MB라서 "4 GB 보드면 넉넉하네"라고 생각하기 쉽지만, 앞의 계산 예시처럼 runtime과 activation을 더하면 840 MB가 필요할 수 있습니다.

\[M_{peak}=M_{weights}+M_{activations}+M_{runtime}+M_{buffers}\le M_{available}\]
\(M_{weights}\)
학습된 모델 파라미터
\(M_{activations}\)
각 층에서 생성되는 중간 feature
\(M_{runtime}\)
운영체제·framework·library·프로그램
\(M_{buffers}\)
입력·출력·camera frame·temporary workspace
\(M_{available}\)
다른 프로세스 사용량을 뺀 실제 가용 메모리
계산 예시 가정한 숫자
  1. 주어진 값: weights 40 MB, activations 120 MB, runtime 600 MB, buffers 80 MB, 가용 메모리 700 MB
  2. \(M_{peak}=40+120+600+80=840\) MB
  3. 840 MB > 700 MB 이므로 조건 불만족 (실행 불가 또는 swap 발생)

모델 파일은 40 MB인데 실제로는 840 MB가 필요합니다. runtime과 activation이 훨씬 큽니다.

  • 시험\(M_{weights}\)와 \(M_{activations}\)의 차이(확인 문제 4번): weights는 학습된 파라미터로 크기가 고정, activations는 추론 중 층마다 생기는 중간 결과로 입력 크기·층 구조에 따라 달라집니다.
  • 함정보드의 전체 RAM이 아니라 OS와 다른 프로세스를 뺀 가용 메모리와 비교합니다.
5.3

Energy와 average power

풀어서 이해하기

먼저 단위를 구분해야 합니다. 에너지(J)는 일의 총량이고, 전력(W)은 1초 동안 쓰는 에너지입니다(W = J/s). 휴대폰으로 치면 배터리 용량이 에너지, 지금 배터리가 닳는 속도가 전력입니다.

\(E_{decision}\)은 판단 한 번에 드는 에너지를 부품별로 더한 것입니다. 센서를 켜는 데(sensor), 계산하는 데(compute), 메모리를 읽고 쓰는 데(memory, 7절에서 보듯 이게 비쌉니다), 무선으로 결과를 보내는 데(communication), 모터를 움직이는 데(act) 에너지가 듭니다.

평균 전력은 "판단 한 번 에너지 × 1초에 판단하는 횟수 + 가만히 있어도 드는 전력"입니다. 한 번에 0.2 J, 1초에 10번 판단하면 2 W이고, 대기 전력 1.5 W를 더하면 3.5 W입니다.

이게 왜 중요하냐면, 배터리 기기라면 배터리가 얼마나 가는지가 정해지고, 팬이 없는 보드라면 열이 쌓여 성능이 떨어지기(throttling) 때문입니다. 줄이는 방법도 식에서 바로 보입니다. 판단을 1초에 30번 대신 10번만 하거나(r을 줄임), 한 번 판단의 에너지를 줄이면 됩니다.

\[E_{decision}=E_{sensor}+E_{compute}+E_{memory}+E_{communication}+E_{act}\]
\[P_{avg}\approx E_{decision}\cdot r+P_{idle}\le P_{budget}\]
\(E_{decision}\)
한 번의 판단에 필요한 에너지
\(r\)
초당 판단 횟수
\(P_{idle}\)
대기 상태의 기본 전력
\(P_{budget}\)
냉각·배터리·전원 조건이 허용하는 평균 전력
계산 예시 가정한 숫자
  1. 한 번 판단: \(E_{sensor}\)=0.02 + \(E_{compute}\)=0.12 + \(E_{memory}\)=0.04 + \(E_{communication}\)=0.01 + \(E_{act}\)=0.01 = 0.2 J
  2. 초당 10회 판단(\(r\)=10), 대기 전력 \(P_{idle}\)=1.5 W
  3. \(P_{avg}\approx 0.2\times10+1.5=2+1.5=3.5\) W
  4. \(P_{budget}\)=5 W 이므로 3.5 W ≤ 5 W, 만족

J × (회/s) = W 입니다. 판단을 초당 20회로 늘리면 0.2×20+1.5 = 5.5 W가 되어 예산을 넘습니다.

  • 이해에너지(J) × 초당 횟수(1/s) = 전력(W). 판단을 자주 할수록 평균 전력이 커지고, 아무것도 안 해도 \(P_{idle}\)은 듭니다.
6️⃣ · 7️⃣

Algorithm–System–Hardware Co-design과 데이터 이동

모델·정밀도·데이터 흐름·하드웨어는 따로 고를 수 없습니다. 그리고 Edge AI 효율의 핵심은 데이터 이동을 줄이는 것입니다.

6

공동 설계의 네 층 (Figure 1-3, TeAAL Pyramid)

풀어서 이해하기

같은 AI를 장치에 올릴 때 정해야 하는 것을 네 층으로 나눈 그림입니다. 위에서부터 차례로 보겠습니다.

  • Compute (무엇을 계산하나): 어떤 모델 구조를 쓸지입니다. CNN, Transformer 같은 것이죠. 여기서 MAC은 multiply-accumulate, 즉 "가중치 × 입력을 곱해서 누적해 더하기"입니다. 신경망 계산은 거의 다 이 MAC이고, conv 층 하나에 수백만 번 들어갑니다. 모델이 클수록 MAC이 많습니다.
  • Mapping (어떻게 나눠서 계산하나): 같은 계산을 어떤 순서와 단위로 나눌지입니다. 큰 행렬이 빠른 메모리에 한 번에 안 들어가면 작은 조각으로 잘라 조각씩 계산합니다(tiling). conv 다음 ReLU를 따로 하지 않고 한 번에 처리하면 중간 결과를 메모리에 썼다가 다시 읽는 일이 사라집니다(fusion).
  • Format (숫자를 몇 bit로 쓰나): FP32는 숫자 하나에 4 byte, INT8은 1 byte입니다. INT8로 바꾸면 메모리가 1/4로 줄고 계산도 빨라지지만, 숫자가 거칠어져 정확도가 조금 떨어질 수 있습니다. sparsity는 0인 가중치를 활용하는 것입니다. 0은 곱해도 0이니 건너뛸 수 있습니다.
  • Binding (어느 연산기에서 돌리나): conv는 GPU, 후처리는 CPU처럼 일을 연산기에 배정하는 것입니다.

네 층을 함께 정해야 하는 이유는 서로 영향을 주기 때문입니다. 예를 들어 INT8로 바꿨는데(Format) 그 보드의 가속기가 INT8을 지원하지 않으면(Binding) 빨라지지 않습니다.

6.1 최적화 식은 이 선택들을 점수로 비교하는 방법입니다. λ는 "오차·지연·에너지 중 무엇을 더 중요하게 볼지" 정하는 가중치입니다. 다만 메모리와 deadline은 점수로 타협할 수 있는 게 아니라 무조건 지켜야 하는 조건이라서, 먼저 이 조건으로 후보를 거르고 남은 후보끼리 점수를 비교합니다.

Compute무엇을 계산하나CNN · Transformer · MAC · Attention→ 연산량 · 모델 표현력Mapping어떻게 나눠 배치하나tiling · dataflow · parallelism · fusion→ 활용률 · 데이터 재사용 · 지연Format어떤 숫자로 표현하나FP32 · FP16 · INT8 · sparsity→ 정확도 · 메모리 · 연산 비용Binding어느 하드웨어에서CPU · GPU · NPU · memory 배치→ 처리량 · 전력 · 지원 연산
Figure 1-3위에서부터 무엇을 계산할지(Compute), 어떻게 나눠 배치할지(Mapping), 어떤 숫자로 표현할지(Format), 어느 하드웨어에서 돌릴지(Binding)를 정합니다. 한 층의 선택이 다른 층의 결과를 바꾸므로 함께 설계합니다.
설계 층선택 항목시스템 영향
ComputeCNN · Transformer · MAC · Attention (MAC: 곱한 뒤 더하는 신경망의 기본 연산)연산량과 모델 표현력
Mappingtiling · dataflow · parallelism · fusion (tiling: 큰 데이터를 작은 조각으로 나눠 처리, fusion: 여러 연산을 하나로 합쳐 중간 저장을 줄임)자원 활용률 · 데이터 재사용 · 지연
FormatFP32 · FP16 · INT8 · sparsity (FP32는 숫자 하나에 32 bit, INT8은 8 bit 정수. sparsity: 0인 값을 건너뛰기)정확도 · 메모리 · 연산 비용
BindingCPU · GPU · NPU · memory 배치실제 처리량 · 전력 · 지원 연산

6.1 다목적 최적화

\[\min_{x}\Big[\lambda_e\,Error(x)+\lambda_t\,Latency(x)+\lambda_E\,Energy(x)\Big]\]
\[\text{subject to}\quad M_{peak}(x)\le M_{available},\qquad T_{total}(x)\le T_{deadline}\]
\(x\)
모델·정밀도·runtime·하드웨어·배치 설정의 조합
\(\lambda_e,\lambda_t,\lambda_E\)
과업 요구사항에 따른 중요도(가중치)
계산 예시 가정한 숫자
  1. 조건: 가중치 \(\lambda_e\)=100, \(\lambda_t\)=1 (ms당), \(\lambda_E\)=10 (J당) · 제약 \(M_{available}\)=512 MB, \(T_{deadline}\)=100 ms
  2. 후보마다 주어진 값 (측정값으로 가정)
    후보ErrorLatencyEnergy\(M_{peak}\) 구성 (weights + activations + runtime + buffers)
    A (FP32)0.0860 ms0.5 J80 + 120 + 350 + 50 = 600 MB
    B (INT8)0.1030 ms0.3 J20 + 30 + 350 + 50 = 450 MB
  3. ① 제약 먼저 확인 (목적함수와 별개, 5.2절 peak memory 식)
    A: \(M_{peak}\)=600 MB > 512 MB → 탈락 · B: 450 MB ≤ 512 MB, 지연 30 ms ≤ 100 ms → 통과
  4. ② 통과한 후보의 목적함수 계산
    B = 100×0.10 + 1×30 + 10×0.3 = 10 + 30 + 3 = 43
  5. 참고: A의 목적함수는 100×0.08 + 1×60 + 10×0.5 = 8 + 60 + 5 = 73이지만, ①에서 이미 탈락했으므로 비교 대상이 아님

\(M_{peak}\)는 목적함수 값(73, 43)에서 나오는 것이 아니라 후보마다 따로 구하는 메모리입니다. INT8은 weight와 activation을 FP32의 1/4 크기로 줄여 메모리 제약을 통과합니다. 최적화 문제는 제약으로 후보를 거른 다음 남은 후보끼리 가중합을 비교합니다.

  • 시험네 층 이름과 예시를 짝짓는 문제: Compute(무엇을 계산) · Mapping(어떻게 나눠 배치) · Format(어떤 숫자 표현) · Binding(어느 하드웨어에서).
  • 함정안전이 중요한 과업에서는 단순 가중합보다 반드시 지켜야 할 constraint를 먼저 설정합니다.
7

메모리 계층과 Arithmetic intensity (Figure 1-4)

연산기와 가까운 Register File은 작지만 접근 비용이 낮고, Global Buffer·DRAM으로 갈수록 저장량은 늘지만 이동 비용이 커집니다.

풀어서 이해하기

Figure 1-4는 "숫자 하나를 가져오는 데 에너지가 얼마나 드나"를 보여 줍니다. ALU에서 계산 한 번 하는 에너지를 1로 두면, 바로 옆 register에서 값을 읽는 건 약 1, 이웃 연산 유닛에서 받아오는 건 2, 칩 안의 큰 버퍼에서는 6, 칩 밖 DRAM에서는 200입니다.

즉 DRAM에서 숫자 하나를 가져오는 데 계산 200번어치 에너지가 듭니다. 그래서 AI를 효율적으로 돌리려면 계산을 줄이는 것만큼, 또는 그보다 더, DRAM을 오가는 횟수를 줄이는 것이 중요합니다.

Arithmetic intensity는 "가져온 데이터 1 byte로 계산을 몇 번 하나"입니다. 값이 클수록 한 번 가져온 데이터를 여러 번 재사용한다는 뜻입니다. 예를 들어 가중치 조각을 빠른 메모리에 한 번 올려놓고 여러 입력에 반복해서 쓰면(tiling) 같은 계산을 하면서도 DRAM 왕복이 줄어 intensity가 높아집니다. INT8처럼 숫자를 작게 쓰는 것도 옮기는 byte 자체를 줄이는 방법입니다.

1×10×100×ALU (연산 1회)1×RF (register file)1×PE 간 이동2×Global Buffer6×DRAM200×접근 1회당 상대 에너지 (MAC 1회 = 1×, 로그 눈금)
Figure 1-4데이터를 한 번 가져오는 데 드는 상대 에너지입니다. 연산기 옆 register file은 연산 1회와 비슷하지만 DRAM은 약 200배입니다. 65 nm 공정에서 측정한 상대값 예시이며 Raspberry Pi·Jetson의 절대 전력값이 아닙니다. 숫자보다 DRAM 접근을 줄여야 한다는 관계를 기억하세요.
\[I=\frac{\text{number of operations}}{\text{bytes moved}}\]
\(I\)가 높다
한 번 읽은 데이터를 여러 연산에서 재사용한다
계산 예시 가정한 숫자
  1. 연산 2,000,000회, 이동한 데이터 500,000 byte
  2. \(I=2{,}000{,}000\div500{,}000=4\) operations/byte
  3. tiling으로 같은 데이터를 재사용해 이동량을 250,000 byte로 줄이면 \(I=8\)

같은 연산을 하면서 옮기는 byte가 절반이 되면 intensity가 두 배가 되고, DRAM 접근 에너지가 줄어듭니다.

  • tiling · fusion · cache reuse → memory traffic 감소
  • 낮은 정밀도 · sparsity → 이동 데이터 양 감소. 단, 정확도와 runtime 지원 여부를 함께 확인
  • Figure의 상대 에너지 값은 65 nm 공정 예시이며 Raspberry Pi·Jetson의 절대 전력값이 아님
  • 시험"DRAM 접근을 줄여야 하는 이유"(확인 문제 6번): DRAM은 연산기에서 멀어 접근당 에너지·지연이 크기 때문입니다. 수치를 외우기보다 데이터 이동을 줄이는 것이 효율의 핵심이라는 관계를 기억하세요.
8️⃣

실시간 성능을 어떻게 평가하는가?

FPS와 지연시간은 다른 것을 측정합니다. 평균만으로는 가끔 늦는 응답을 놓칩니다.

8.1

Latency · Throughput · Jitter

풀어서 이해하기
  • Latency: 사진 한 장이 들어와서 결과가 나올 때까지 걸린 시간입니다. "한 장에 몇 ms?"
  • Throughput(FPS): 1초 동안 처리를 끝낸 사진 수입니다. "1초에 몇 장?"
  • Jitter: 매번 걸리는 시간이 얼마나 들쭉날쭉한지입니다. 평균은 같아도 들쭉날쭉하면 영상이 뚝뚝 끊겨 보이고 제어가 불안정해집니다.

두 지표가 따로 필요한 이유는 파이프라인 때문입니다. 빨래로 생각해 보세요. 세탁 30분, 건조 60분이라면, 한 바구니만 놓고 보면 90분 걸립니다(latency). 그런데 첫 바구니가 건조기로 넘어가는 순간 세탁기는 쉬지 않고 다음 바구니를 돌릴 수 있습니다. 그러면 한 바구니 걸리는 시간은 그대로 90분인데, 시간당 끝나는 바구니 수는 늘어납니다(throughput). 이때 결과는 가장 느린 기계(건조기)의 속도, 즉 60분마다 하나씩 나옵니다.

교안 예시도 똑같습니다. 전처리 10 → 추론 20 → 후처리 10 ms라면, 순차 처리는 한 장에 40 ms이고 40 ms마다 결과가 나오니 25 FPS입니다. 파이프라인으로 겹쳐 돌리면 한 장에 걸리는 시간은 여전히 40 ms인데, 가장 느린 추론 단계(20 ms)마다 결과가 나오니 50 FPS가 됩니다.

그래서 "FPS가 높다 = 반응이 빠르다"가 아닙니다. FPS는 두 배가 됐지만 버튼을 누르고 결과를 보기까지의 시간은 그대로입니다. 또 카메라가 1초에 30장을 보내도 시스템이 15장만 처리하면 나머지 15장은 버려지므로, 카메라 FPS와 처리 FPS도 구분해야 합니다.

지표정의주의
Latency (지연시간)입력 하나가 들어온 시점부터 최종 결과까지 걸린 시간 (ms, s)추론만인지, 획득~출력 전체인지 측정 범위를 명시
Throughput (처리량)단위 시간 동안 처리를 완료한 입력 수. 영상은 FPS카메라 입력 FPS와 처리 FPS는 다름
Jitter (지연 변동)반복 처리에서 지연시간이 달라지는 정도30→31→29 ms보다 10→70→10 ms가 변동이 큼. 표준편차·최대–최소 등 기준 명시
\[\mathrm{FPS}=\frac{N_{\mathrm{completed}}}{\Delta t}\qquad\text{순차 처리일 때}\quad \mathrm{FPS}\approx\frac{1}{T_{\mathrm{total}}}\]
\(N_{\mathrm{completed}}\)
측정 구간에서 처리를 완료한 프레임 수
\(\Delta t\)
측정 구간 길이 (초)
\(T_{\mathrm{total}}\)
한 프레임의 전체 처리시간(초). 프레임마다 다르면 평균
계산 예시 교안 예시
  1. 측정식: 30초(\(\Delta t\)) 동안 450프레임 완료 → \(\mathrm{FPS}=450\div30=15\)
  2. 순차 근사식: 한 프레임 40 ms → 먼저 초로 바꿈 40 ms = 0.04 s
  3. \(\mathrm{FPS}\approx 1\div0.04=25\)

ms를 초로 바꾸지 않고 1/40을 하면 0.025가 나옵니다. 단위 변환을 먼저 하세요.

020406080100120시간 (ms)순차 처리한 줄로 실행F1F1F1F2F2F2F3F3F3결과: 40 · 80 · 120 ms (40 ms 간격 → 25 FPS)파이프라인전처리F1F2F3F4F5추론F1F2F3F4F5후처리F1F2F3F4F5결과: 40 · 60 · 80 · 100 · 120 ms (20 ms 간격 → 50 FPS)전처리 10추론 20후처리 10
순차 vs 파이프라인전처리 10 ms → 추론 20 ms → 후처리 10 ms를 가정한 개념 예시. 파이프라인은 첫 결과가 40 ms 후에 나오는 것은 같지만, 이후 가장 느린 단계(추론 20 ms) 간격으로 결과가 나와 처리량이 두 배가 됩니다.
처리 방식한 프레임 지연연속 처리량
순차 처리40 ms약 25 FPS
파이프라인약 40 ms약 50 FPS
  • 시험높은 FPS ≠ 빠른 응답. 파이프라인은 FPS를 올리지만 한 프레임의 지연은 그대로입니다. 그래서 FPS와 한 프레임 지연을 함께 측정해야 합니다.
  • 함정50 FPS는 단계별 자원이 독립이고 입력이 충분하며 대기·경합·전송 오버헤드가 없는 이상적 정상상태를 가정한 값입니다.
8.2

평균값만으로 판단하지 않기: p50 · p95 · p99

백분위수는 측정한 지연시간을 짧은 순서로 나열했을 때 지정한 비율에 해당하는 경계값입니다.

풀어서 이해하기

백분위수는 측정값을 짧은 순서대로 줄 세웠을 때 몇 % 지점의 값인지입니다. 1,000번 쟀다면 p50은 500번째, p95는 950번째, p99는 990번째 값입니다.

교안 예시로 따라가 보겠습니다. 1,000장 중 990장이 20 ms, 10장이 200 ms 걸렸고, 제한은 100 ms입니다.

  • 평균: (990×20 + 10×200) ÷ 1000 = 21.8 ms → 아주 빨라 보입니다.
  • p95: 950번째 값 = 20 ms, p99: 990번째 값 = 20 ms → 이것도 좋아 보입니다.
  • 하지만 991~1000번째 10장은 200 ms로 제한(100 ms)을 넘습니다. 마감 초과율 = 10 ÷ 1000 = 1%입니다.

즉 평균과 p95가 좋아도 100번에 1번은 늦습니다. 동영상 플레이어라면 넘어갈 수 있지만, 자율주행 브레이크라면 100번에 1번 늦는 것은 허용할 수 없습니다. 그래서 교안은 평균·p95와 함께 마감 초과율을 꼭 보고, 매번 지켜야 하는 안전 제어는 가장 나쁜 경우를 따로 검증하라고 합니다.

함께 볼 두 가지도 같은 이유입니다. Dropped frame: 느린 프레임을 그냥 버리는 시스템은 남은 프레임만 재면 빨라 보이므로, 버린 수도 같이 기록해야 합니다. Thermal throttling: 처음 1분은 빠르다가 10분 뒤 보드가 뜨거워져 느려질 수 있으므로, 오래 켜 둔 상태에서도 재야 합니다.

예시: 1,000프레임 중 990개 20 ms, 10개 200 ms, 제한 100 ms

  • 평균 = (990×20 + 10×200) / 1000 = 21.8 ms → 평균만 보면 충분히 빠름
  • 10개 프레임은 200 ms → 제한 초과. 마감시간 초과율 = 10/1000 = 1%
  • p95 = 20 ms → p95 기준은 만족하지만 초과 프레임은 여전히 존재
지표의미확인할 질문
p50 (중앙값)관측값의 약 50%가 이 값 이하보통 어느 정도 걸리는가?
p95관측값의 약 95%가 이 값 이하대부분의 입력은 얼마나 빨리 처리되는가?
p99관측값의 약 99%가 이 값 이하드물게 생기는 느린 응답까지 보면?
\[P_{95}(T_{\mathrm{total}})\le T_{\mathrm{deadline}}\]
해석
제한이 100 ms면 관측된 입력의 약 95% 이상이 100 ms 안에 처리되는지 확인하는 기준. 두 항의 시간 단위는 같게
계산 예시 교안 예시
  1. 1,000프레임: 990개 20 ms, 10개 200 ms, \(T_{deadline}\)=100 ms
  2. 짧은 순으로 나열 → 95% 지점 = 1000 × 0.95 = 950번째 값
  3. 1~990번째가 모두 20 ms이므로 \(P_{95}\)=20 ms
  4. 20 ms ≤ 100 ms 이므로 p95 기준은 만족
  5. 그러나 초과율 = 10 ÷ 1000 = 1% → 일부 입력은 여전히 마감 초과

p95 기준 충족과 모든 입력의 마감 준수는 다릅니다. 초과율을 같이 적어야 완전한 답입니다.

실제 장치에서 함께 확인

  • 지연시간: p50 · p95 · p99와 마감시간 초과율
  • Dropped frame: 수·비율·원인. 느린 프레임을 버리면 지연이 좋아 보일 수 있으므로 함께 기록
  • Thermal throttling: 장시간 실행 시 온도 상승으로 속도가 떨어지고 지연·FPS가 악화되는지
02550751000%25%50%75%100%측정값을 짧은 순서로 나열했을 때의 위치 (백분위)지연 (ms)deadline 50 ms평균 22.9 msp50 = 19 msp95 = 42 msp99 = 62 ms마감 초과 2.7%
백분위수 읽는 법지연시간 1,000개를 짧은 순서로 나열한 예시 곡선입니다. 50% 지점이 p50(19 ms), 95% 지점이 p95(42 ms), 99% 지점이 p99(62 ms)입니다. deadline 50 ms에 대해 p95는 만족하지만 오른쪽 끝 2.7%는 마감을 넘습니다. 평균(22.9 ms)만 보면 이 꼬리가 보이지 않습니다. (분포는 설명용으로 만든 예시)
  • 함정p95는 평균도, 최댓값도, 가장 느린 5%의 평균도 아닙니다.
  • 함정p95 기준 충족 ≠ 모든 입력의 마감 준수. 매번 마감을 지켜야 하는 안전 제어는 최악 조건 지연 상한을 따로 검증합니다.
  • 시험평균·초과율 계산(21.8 ms, 1%)은 숫자를 바꿔 출제하기 좋은 유형입니다.
8.3

장치에서 측정할 공통 지표

풀어서 이해하기

시스템이 "잘 된다"는 것을 확인하려면 정확도 하나로는 부족하고 다섯 가지를 모두 봐야 한다는 표입니다.

  • 모델 품질: Accuracy는 전체 중 맞힌 비율입니다. F1은 "맞다고 한 것 중 진짜 맞은 비율(정밀도)"과 "진짜 맞는 것 중 찾아낸 비율(재현율)"을 함께 보는 점수, mAP는 객체 탐지에서 쓰는 평균 정밀도입니다. False Negative는 "있는데 없다고 한 것"입니다. 출입문이나 안전 시스템에서는 사람을 놓치는 게 가장 위험하므로, 전체 정확도보다 이 값을 따로 봐야 합니다.
  • 응답성: 앞에서 배운 p50/p95 지연, FPS, jitter입니다.
  • 자원: 메모리를 최대 얼마나 쓰는지, CPU/GPU가 실제로 몇 % 일하는지(utilization)입니다. GPU 사용률이 낮다면 GPU가 데이터를 기다리며 놀고 있다는 뜻일 수 있습니다.
  • 에너지·열: 평균 전력, 추론 한 번당 에너지, 온도입니다.
  • 운영: 인터넷을 끊어 보고, 카메라를 뽑아 보고, 프로그램을 강제로 죽여 본 뒤 안전하게 복구되는지 확인합니다.
범주측정 지표질문
모델 품질Accuracy · F1 · mAP · False Negative (F1: 정밀도와 재현율의 조화평균, mAP: 객체 탐지 평균 정확도, False Negative: 있는데 없다고 판단)과업 위험에 맞는 지표인가?
응답성p50/p95 latency · FPS · jitterdeadline을 안정적으로 만족하는가?
자원Peak RAM · storage · CPU/GPU utilization다른 프로세스와 함께 실행 가능한가?
에너지·열평균 전력 · energy/inference · 온도장시간 실행 시 throttling이 생기는가?
운영network outage · sensor failure · restart실패 후 안전하게 복구하는가?
💡

단계별 예제: 출입문 사람 탐지 시스템

설계 연습용 가상 요구사항입니다. 요구사항에서 배치·파이프라인·검증 항목이 어떻게 나오는지 흐름을 보세요.

9.1–9.4

요구사항 → 배치 → Pipeline → 검증

풀어서 이해하기

이 예제의 핵심은 설계가 "어떤 모델을 쓸까?"가 아니라 요구사항 한 줄 한 줄에서 결정이 나온다는 것입니다.

  • "인터넷이 끊겨도 잠금이 동작해야 한다" → 판단을 Cloud에 두면 안 되므로 On-device.
  • "얼굴 원본을 외부로 보내면 안 된다" → 역시 On-device. 다만 "몇 명이 출입했나" 같은 익명 통계와 모델 업데이트는 Cloud에서 해도 되므로 결국 Hybrid.
  • "p95 end-to-end 100 ms 이하" → 모델만이 아니라 카메라·후처리·모터까지 포함해 단계별로 재야 함.
  • "False Negative 우선" → 조명·거리·가림 조건을 바꿔 가며 사람을 놓치는 경우를 집중 테스트.

아래의 팀 프로젝트 질문 9개도 같은 구조입니다. 입력은 무엇이고, 무엇을 판단하고, 무엇을 출력하는지, 어디서 돌리고, 얼마나 빨라야 하고, 메모리와 전력은 얼마나 쓸 수 있고, 고장 나면 어떻게 안전하게 멈출지를 먼저 숫자와 함께 정한 다음에 모델을 고릅니다.

단계내용
요구사항인터넷이 끊겨도 잠금 제어 유지 · 얼굴 원본은 외부 전송 금지 · p95 end-to-end ≤ 100 ms · False Negative(사람이 있는데 없다고 판단) 우선 관리
배치핵심 탐지·잠금 판단은 On-device, 익명화 통계·모델 업데이트는 Cloud, 네트워크 장애 시 로컬 모델로 계속 동작 → Hybrid
PipelineCamera → resize·normalize → person detection → threshold·temporal filtering → lock·alarm
검증조명·거리·가림별 False Negative · p50/p95 latency와 dropped frame · 장시간 온도와 throttling · 네트워크·camera·프로세스 장애 fail-safe

팀 프로젝트 요구사항 정의 9가지

  1. 입력 어떤 센서·카메라 데이터?
  2. AI 판단 무엇을 분류·탐지·예측?
  3. 출력 화면·경고·물리적 제어?
  4. 배포 위치 Cloud·gateway·On-device?
  5. Deadline 허용 p95 end-to-end latency?
  6. Memory 보드의 실제 가용 RAM?
  7. Power·thermal 장시간 실행 조건과 냉각?
  8. Failure 오류 시 안전한 상태?
  9. Baseline 개선 전·후 비교 지표?
  • 시험프로젝트 출발점은 모델 이름이 아니라 입력–판단–출력 · 배포 위치 · 성능 budget · 실패 시 안전 상태입니다.