좋아요, 초보자도 이해할 수 있도록 Hailo NPU에 대해 쉽게 설명해드릴게요.
참고자료 1: 라즈베리파이 5 Hailo(8L) 설치 방법 https://kernel.bz/blogPost/rpi5-hailo
참고자료 2: 커널 연구회 SDK 자료 https://kernel.bz/blogPost/jh7110-hailo
- 자료중 깃허브 코드 참고
Hailo 학습에 도움이 되는 포스팅 목록입니다. 참고하세요.
라즈베리 파이 5 AI 키트, Hailo AI 가속 모듈
Raspberry Pi AI HAT+ Hailo 설치 1
Raspberry Pi AI HAT+ Hailo 8L 설치 2
✅ 1. Hailo NPU란?
Hailo는 이스라엘에 본사를 둔 스타트업이고, NPU(Neural Processing Unit)는 인공지능 전용 칩입니다.
즉, Hailo NPU는 인공지능을 빠르게 실행하기 위한 특별한 칩이에요. 특히 영상 인식, 객체 탐지, 자율 주행, 스마트 카메라 같은 작업에서 뛰어난 성능을 발휘하죠.
✅ 2. 왜 만들어졌을까? (탄생 배경)
기존 컴퓨터(예: CPU, GPU)는 인공지능 처리에 비효율적입니다. 전기도 많이 먹고, 속도도 느리죠.
그래서 Hailo는 2017년,
AI 전용으로 효율적이고 빠르게 작동하는 NPU를 만들기로 했어요.
목표는:
- 저전력,
- 고성능,
- 소형 디바이스에서도 AI 가능하게!
✅ 3. 어디에 쓰일까? (용도)
Hailo NPU는 주로 다음과 같은 임베디드 AI 디바이스에 쓰입니다:
- 자율 주행 자동차 – 보행자 감지, 신호등 인식
- 스마트 CCTV – 침입자 감지, 행동 분석
- 산업용 로봇 – 품질 검사, 이상 감지
- 드론, 스마트 홈 기기 등 작은 기기에서도 AI 처리 가능
✅ 4. 현재 기술 수준은?
Hailo는 대표 제품으로 Hailo-8이라는 NPU 칩을 출시했습니다:
- 26TOPS 성능: 초당 26조 번 연산 가능 (고성능 GPU급!)
- 적은 전력 소모: 약 2~3W만 사용
- 초소형: SD 카드보다 약간 큰 크기
- TensorFlow, ONNX 등 AI 프레임워크 지원
지금은 Intel, Qualcomm, NVIDIA 같은 대기업과 경쟁할 만큼 기술력을 인정받고 있고,
2023년부터는 Hailo-15라는 카메라 전용 AI 칩셋도 선보이며 영상처리에 특화된 방향으로 발전하고 있어요.
✅ 핵심 요약
| 항목 | 설명 |
|---|---|
| 제조사 | Hailo (이스라엘 스타트업) |
| 목적 | AI 전용 고속·저전력 처리 |
| 사용처 | 자율주행, CCTV, 스마트기기 등 |
| 장점 | 빠름, 작음, 전기 적게 씀 |
| 대표 모델 | Hailo-8, Hailo-15 등 |
Q1: Hailo NPU와 NVIDIA Jetson 같은 다른 AI 모듈은 어떤 차이가 있나요?
Q2: Hailo NPU를 활용한 DIY 프로젝트나 제품 사례가 있을까요?
Q3: Hailo NPU를 실제 임베디드 프로젝트에 적용하려면 어떤 개발 환경과 도구가 필요한가요?
좋은 질문입니다. Hailo NPU를 실제 임베디드 프로젝트에 적용하려면 아래와 같은 개발 환경, 도구, 절차가 필요합니다. 하나씩 천천히 설명드릴게요.
✅ 1. Hailo NPU 기반 하드웨어 확보
Hailo NPU는 단독 칩으로 쓰이기도 하지만, 대부분은 모듈 형태로 탑재됩니다.
- Hailo-8 모듈이 내장된 보드:
- Hailo가 직접 만든 Hailo-8 평가 키트 (HEK)
- M.2 / Mini PCIe 타입의 Hailo-8 모듈
- Raspberry Pi, TI AM62x, Intel x86, NXP i.MX8M 등과 연동 가능
👉 Hailo는 대부분 다른 SoC 위에 AI 코프로세서로 붙는 구조입니다.
✅ 2. Hailo SDK (HailoRT + Hailo Model Zoo)
Hailo는 자체적으로 개발 도구 세트를 제공합니다:
✔ HailoRT (Runtime SDK)
- C++ / Python API 제공
- 모델 로딩, 추론 실행, 데이터 I/O 제어 가능
✔ Hailo Model Zoo
- 사전 학습된 AI 모델 제공 (YOLO, SSD, MobileNet 등)
- 학습된 모델을 Hailo용으로 변환 가능
👉 이 툴을 통해 TensorFlow, ONNX 등에서 만든 모델을 Hailo에 최적화할 수 있습니다.
✅ 3. 모델 변환 & 컴파일 도구 (Hailo TappAS)
- TappAS: Hailo의 모델 컴파일러
- TensorFlow, Keras, PyTorch 모델 → Hailo 실행용
.hef파일로 변환 - 양자화 (Quantization) 포함 → INT8 기반 연산 최적화
- 모델 분석, 성능 추정도 가능
✅ 4. 추론용 소프트웨어 구성
일반적으로는 다음 구성으로 운용됩니다:
| 구성 요소 | 예시 |
|---|---|
| Host OS | Linux (Ubuntu 등) |
| Host Board | Raspberry Pi, Jetson, ARM SoC 등 |
| Hailo SDK | HailoRT, TappAS 설치 |
| 모델 파일 | .hef 포맷 (Hailo Executable Format) |
| 추론 프로그램 | Python 또는 C++ 기반 애플리케이션 |
✅ 5. 개발 절차 요약
- 모델 선택 or 직접 학습 (TensorFlow, PyTorch 등)
- TappAS로 모델 변환 및 컴파일 (.hef 생성)
- Hailo-8 장착된 보드에 SDK 설치
- HailoRT를 사용해 추론 코드 작성
- 카메라, 센서, GPIO 등과 연동
- 테스트 후 임베디드 시스템 배포
✅ 예시 프로젝트
- 스마트 CCTV: YOLOv5 + Hailo-8 → 실시간 사람 탐지
- 무인 점포 시스템: 얼굴 인식 or 손 제스처 인식
- 드론 추적 비전: 물체 식별 후 따라가기
- 공장 자동화 검사기: 불량품 자동 감지
✅ 개발자 지원
- 공식 개발자 문서: https://docs.hailo.ai/
- GitHub 예제: https://github.com/hailo-ai
Q1: Hailo NPU 기반 시스템을 라즈베리파이와 결합할 때 실제 성능은 어떤가요?
Q2: Hailo TappAS를 사용할 때 모델 양자화로 인한 정확도 손실은 어느 정도인가요?
Q3: Hailo 기반의 교육 키트를 설계하려면 어떤 요소를 포함시키는 것이 좋을까요?
좋습니다. 이번엔 HailoRT를 중심으로, Hailo NPU 아키텍처를 기술적으로 깊이 있고 명확하게 설명드리겠습니다. 전체 구조를 단계별로 해부하듯 살펴보겠습니다.
✅ 1. 전체 개요: Hailo NPU 시스템 구조
Hailo NPU는 단순한 연산 칩이 아니라, AI 추론을 위한 전용 마이크로 아키텍처를 갖춘 SoC입니다. 이 구조는 HailoRT를 통해 호스트 시스템과 통신하며, 고속 추론을 수행합니다.
아키텍처는 다음과 같이 나뉩니다:
[ Host CPU (Linux) ]
↕ (HailoRT API)
[ HailoRT Runtime ]
↕
[ PCIe / M.2 / SPI 인터페이스 ]
↕
[ Hailo-8 NPU 칩 ]
├─ Scheduler
├─ Control Processor (uC)
├─ Core Pipeline Units (Compute Units)
├─ Tensor Memory Units (SRAM)
└─ DMA Engine / IO Manager
✅ 2. HailoRT란? (Hailo Runtime SDK)
HailoRT는 Hailo-8 NPU를 제어하고 통신하는 핵심 런타임 라이브러리입니다.
주요 역할:
- 호스트에서
.hef모델 로딩 - 추론 입력/출력 처리
- NPU 리소스 스케줄링
- 병렬 추론 처리
구성:
| 구성 요소 | 설명 |
|---|---|
| HailoRT API | Python/C++ API. 사용자 애플리케이션에서 호출 |
| Device Manager | NPU 장치 스캔, 초기화 |
| VStreams (Virtual Streams) | 입력/출력 텐서의 추론 파이프라인 |
| Buffer Manager | Zero-copy DMA를 위한 입력/출력 버퍼 처리 |
✅ 3. Hailo-8 내부 아키텍처
🎯 핵심 목표: 병렬 처리 + 저전력 + 확장성
Hailo-8은 고정된 신경망 구조가 아니라, 모델 구조에 따라 동적으로 조정되는 유연한 하드웨어 블록을 갖고 있습니다.
주요 구성 요소:
① Control Processor (µController)
- Hailo 칩 내에서 모델 그래프 흐름 제어
- HEF 파일 파싱 → 작업 스케줄링
② Compute Units
- 다양한 신경망 연산 (Conv, FC, Pooling 등) 전용 유닛
- 각 유닛은 모델의 각 Layer에 매핑됨
- 병렬 파이프라인 처리 (피쳐맵 → 필터 처리 → 다음 레이어)
③ Tensor Memory (SRAM)
- 외부 DRAM 없이 내부 SRAM으로 피처맵 이동
- Layer-to-layer 이동 간 지연 최소화
- 효율적인 데이터 재사용 (on-chip caching)
④ DMA 엔진
- Host ↔ NPU 간 Zero-copy 입출력 가능
- PCIe/M.2 등 인터페이스 최적화
✅ 4. HEF 모델 파일 구조
.hef 파일은 TappAS에서 생성된 Hailo 실행 그래프입니다. 내부 구성은 다음과 같습니다:
- NN Graph Partitioning 정보: 각 레이어가 어떤 유닛에 매핑되는지
- Scheduling Plan: 병렬 실행 순서
- Quantization 정보: INT8 양자화 파라미터 포함
- IO Stream Mapping: 입출력 버퍼 연결 정보
HailoRT는 이 파일을 해석하여 내부 구조를 자동으로 구성하고 실행합니다.
✅ 5. VStreams: 데이터 흐름의 핵심
**VStream (Virtual Stream)**은 HailoRT에서 모델의 입출력 경로를 나타내는 추상화된 데이터 통로입니다.
- 입력 VStream: 모델에 입력할 이미지, 벡터 등
- 출력 VStream: 예측 결과 추출
- HailoRT는 pipeline 방식으로 여러 추론 요청을 동시에 처리 가능
✅ 6. 시스템 연결 구성 예시 (Raspberry Pi + Hailo-8)
[ Python 애플리케이션 ]
↓ (HailoRT Python API)
[ HailoRT Engine ]
↓ (PCIe or M.2)
[ Hailo-8 NPU ]
↓
[ 실시간 영상 추론 (YOLOv5 등) ]
↓
[ 결과 출력 or 디바이스 제어 ]
✅ Hailo NPU 아키텍처의 차별점 요약
| 항목 | 설명 |
|---|---|
| 고성능/저전력 | 전용 계산 유닛 + SRAM 최적화 |
| 유연한 하드웨어 | NN 구조에 따라 유닛 자동 배치 |
| Zero-copy 입출력 | 성능 저하 없이 고속 데이터 전달 |
| 온칩 추론 처리 | 외부 메모리 의존도 최소화 |
Q1: Hailo 아키텍처에서 Compute Unit의 병렬 처리 방식은 어떤 스케줄링 전략을 사용하는가요?
Q2: 다른 NPU (예: EdgeTPU, Movidius)와 비교했을 때, Hailo의 데이터 흐름 최적화 방식은 어떤 장점이 있나요?
Q3: HailoRT를 기반으로 멀티 모델 동시 추론이 가능한 구조를 설계할 수 있을까요? 가능하다면 어떤 방식으로 이루어질 수 있을까요?
좋습니다. 이번에는 HailoRT와 라즈베리파이를 연동하여 AI 추론을 수행하는 전체 과정을 구체적이고 실용적으로 설명드리겠습니다. 실제 프로젝트에 바로 적용할 수 있는 수준으로 단계별로 구성해드릴게요.
✅ 1. 기본 구성 이해
Hailo NPU는 **외부 호스트 시스템(라즈베리파이)**와 연결되어 작동합니다. 라즈베리파이는 추론 요청을 보내고, 결과를 받아서 처리하는 역할을 합니다.
구성 요소:
| 역할 | 구성 |
|---|---|
| Host | 라즈베리파이 4 또는 5 (Linux 기반) |
| NPU | Hailo-8 모듈 (M.2 혹은 USB form factor) |
| SDK | HailoRT, TappAS, Python API |
| 입출력 | 카메라 영상, 이미지 파일 등 |
✅ 2. 하드웨어 준비
필수 장비:
- Raspberry Pi 4/5 (8GB 권장)
- Hailo-8 USB 모듈 또는 M.2 모듈 + M.2 HAT
- USB 3.0 포트 (데이터 병목 최소화)
- 전원 어댑터 (Hailo 모듈 포함 시 충분한 전력 공급 필요)
Hailo USB 모듈은 전원과 데이터가 함께 공급되므로 별도 보드 수정이 필요 없습니다.
✅ 3. 소프트웨어 설치 (라즈베리파이에서)
① OS 설치
- Raspberry Pi OS (64-bit), Ubuntu 22.04 LTS 권장
uname -m # aarch64 확인
② 필수 패키지 설치
sudo apt update
sudo apt install -y build-essential cmake python3-dev python3-pip libusb-1.0-0-dev
③ HailoRT SDK 설치
- Hailo 공식 홈페이지 또는 GitHub에서 다운로드
https://hailo.ai/developer-zone - SDK 설치 예시:
tar -xzf hailort-sdk-<version>.tar.gz
cd hailort-sdk
./install.sh
설치 후
/usr/lib/hailort,/usr/include/hailort디렉토리 생성됨
✅ 4. 모델 준비 (HEF 파일 생성)
- PC 또는 클라우드에서 TensorFlow / PyTorch 모델 학습
- TappAS 도구로
.hef포맷으로 컴파일
hailo model-compile yolov5.onnx --output yolov5.hef
.hef파일을 라즈베리파이로 복사
scp yolov5.hef pi@raspberrypi.local:/home/pi/
✅ 5. Python 기반 추론 코드 작성
예제 코드 (YOLOv5)
import hailo
import numpy as np
import cv2
from hailo_platform import (HailoPlatform, VDevice, HEF, InputVStreamParams, OutputVStreamParams)
# Hailo NPU 초기화
hef = HEF("yolov5.hef")
device = VDevice()
network_group = device.create_hef(hef)
input_vstreams = network_group.create_input_vstream(InputVStreamParams())
output_vstreams = network_group.create_output_vstream(OutputVStreamParams())
# 이미지 로딩
image = cv2.imread("test.jpg")
resized_image = cv2.resize(image, (640, 640)).astype(np.uint8)
input_data = [resized_image]
# 추론 수행
input_vstreams[0].send(input_data)
results = output_vstreams[0].recv()
# 결과 처리
print("Detection Results:", results)
✅ 6. 카메라 연동 및 실시간 추론
- 라즈베리파이 CSI 카메라 or USB 카메라 사용 가능
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
input_data = [cv2.resize(frame, (640, 640)).astype(np.uint8)]
input_vstreams[0].send(input_data)
results = output_vstreams[0].recv()
# 결과 시각화
for obj in results:
x, y, w, h = obj['bbox']
cv2.rectangle(frame, (x, y), (x+w, y+h), (0,255,0), 2)
cv2.imshow("Hailo Inference", frame)
if cv2.waitKey(1) == 27:
break
✅ 7. 성능 참고
| 항목 | 수치 |
|---|---|
| 추론 시간 | 약 5~10ms (YOLOv5s 기준) |
| 전력 소모 | 전체 시스템 약 6~8W |
| 지원 해상도 | 640×640 또는 320×320 |
| 멀티 추론 | 가능 (멀티 스레드 or 모델 분할 시) |
✅ 활용 팁
- 병렬 추론 최적화:
VStreams에 비동기 스트림 설정 가능 - CPU 사용률 낮추기: Zero-copy DMA 덕분에 효율적
- C++로 구현하면 더 고속 처리 가능
✅ 정리
| 단계 | 설명 |
|---|---|
| 1. 하드웨어 연결 | USB / M.2 형태로 Hailo-8 모듈 연결 |
| 2. SDK 설치 | HailoRT, Python API 설치 |
| 3. 모델 준비 | .hef 파일 생성 후 전송 |
| 4. 추론 코드 작성 | HailoRT API로 추론 실행 |
| 5. 실시간 연동 | OpenCV 등으로 카메라 스트림 처리 |
Q1: 실시간 멀티 카메라 입력을 처리할 때 HailoRT는 어떤 방식으로 스트림을 분리할 수 있을까요?
Q2: 라즈베리파이에서 HailoRT 기반 추론을 백그라운드 프로세스 또는 Docker로 구성하려면 어떤 전략이 좋을까요?
Q3: YOLO 외에 어떤 AI 모델이 HailoRT에서 가장 효율적으로 작동하나요? (예: FaceNet, DeepSORT 등)


'라즈베리파이 5' 카테고리의 다른 글
| VS Code 라즈베리파이 피코 개발환경 설정 (2) | 2025.07.08 |
|---|---|
| Raspberry Pi AI HAT+ Hailo 8L 설치 2 (4) | 2025.07.03 |
| Raspberry Pi AI HAT+ Hailo 설치 1 (5) | 2025.07.03 |
| Hailo NPU 학습 내용 정리 2 (0) | 2025.06.20 |
| 라즈베리파이 센서 보드 구성 (5) | 2025.06.13 |
| 인터럽트가 있는 Raspberry Pi Pico (1) | 2025.05.30 |
| Raspberry Pi 피코, Pico W, W2 LED 표시기용 UPS 휴대용 전원 공급 장치 (0) | 2025.05.22 |
| 메이커를 위한 라즈베리파이, 이승현 저 (3) | 2025.05.06 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.
귀사가 성공하기까지의 긴 고난의 시간을 캐어랩과 함께 하세요.
캐어랩