새소식

장비 사용 설명서/RKNN

싱글보드 컴퓨터 위에서 돌아가는 딥러닝 모델, RKNN : RKNN이란 ?

  • -
단돈 15만원짜리 NPU가 탑재된 싱글보드 컴퓨터에서 딥러닝 모델을 inference 할 수 있도록


로봇에서 가벼운 딥러닝 모델을 사용하기 위해서 Orange Pi NPU를 최적화하는 작업을 몇 달간 집중적으로 한 적이 있었는데, RKNN 관련 한글 문서는 거의 없어서 삽질을 많이 했습니다. 경험과 나름의 노하우를 나누고 싶어 정리해보았습니다.

https://zito.gitbook.io/rknn_usermanual

 

1. RKNN이란? | RKNN Cookbook

단돈 15만원짜리 NPU가 탑재된 싱글보드 컴퓨터에서 딥러닝 모델을 inference 할 수 있도록

zito.gitbook.io

이 Gitbook의 내용과 동일한데, Gitbook이 좀 더 보기 쉽게 정리되어 있습니다. (작성 중)

 

목차

0. RKNN이란 ?
1. rknn_toolkit2 설치하기
2. 모델 변환하기
3. adb mode 사용하기
4. 모델 inference하기
5. 모델 경량화 : Quantization
6. Performance Evaluation
7. 최적화를 위해 : Custom Operation
8. 더 빠른 연산 : Matmul API
9. 

 

오렌지 파이는 간단히 말해서 NPU (Neural Processing Unit)이 탑재된 싱글보드 컴퓨터입니다. NPU가 달린 라즈베리파이라고 생각하시면 쉽습니다.

만약 딥러닝 모델이 돌아가는 작은 컴퓨터를 저렴한 가격에 쓰고 싶다면 오렌지 파이는 꽤 좋은 선택입니다.

오렌지 파이 5에는 Rockchip이라는 회사에서 만든 NPU인 RK3588이 탑재되어 있습니다.

오렌지 파이 뿐 아니라, 바나나파이에도 RK3588이 들어 있습니다. 바나나 파이와 오렌지 파이는 크게 차이는 없으므로, 도큐먼트를 더 많이 제공해 주는 플랫폼을 사용하시는 것이 좋겠습니다.

🍌바나나 파이를 쓸까 ? 🍊 오렌지 파이를 쓸까?


RKNN

 

다만 오렌지파이에서는 일반적인 딥러닝 모델 (ONNX, PyTorch 등) 을 바로 쓸 수가 없습니다. Nvidia 칩이 아니기 때문에 CUDA도 없습니다. 따라서 우리는 일반적인 딥러닝 모델을 오렌지 파이 NPU가 이해할 수 있는 포맷으로 변경해 줘야 하는데, 그게 바로 RKNN이고, 이 변환은 Rockchip에서 제공해주는 rknn-toolkit을 통해 이루어집니다.

rknn-toolkit2

 

GitHub - airockchip/rknn-toolkit2

Contribute to airockchip/rknn-toolkit2 development by creating an account on GitHub.

github.com

rknn-toolkit2에는 다음과 같은 기능들이 있습니다.

  • Model Conversion : Caffe, Tensorflow, ONNX, Darknet 모델들을 RKNN 모델로 변환할 수 있습니다.
  • Quantization : float 모델을 quantization 모델로 변환할 수 있습니다.
  • Model Inference
  • Performance Evaluation
  • Memory Evaluation
  • Model pre-compilation : pre-compilation을 이용해서 모델을 로드하는 시간을 줄일 수 있습니다. 또한 어떤 모델에 대해서는 모델 사이즈도 줄일 수 있습니다. 다만 pre-compiled RKNN 모델은 x86_64 Ubuntu 기반의 NPU 가 있는 하드웨어 플랫폼에서만 구동될 수 있습니다.
  • Model Segmentation : 이 함수는 여러 개의 모델들이 동시에 구동될 때 사용될 수 있습니다. 하나의 모델이 여러 개의 조각으로 분리되어 NPU 에서 실행됨으로써 실행 시간을 줄일 수 있습니다.

따라서 이러한 기능을 잘 활용하여 모델 및 알고리즘을 최적화한다면, 오렌지 파이는 임베디드 시스템 및 로봇, 드론 등에서 딥러닝 inference 를 수행하는 보드로 활용될 수 있습니다.

'장비 사용 설명서 > RKNN' 카테고리의 다른 글

(3) adb mode 사용하기  (0) 2025.01.27
(2) 모델 변환하기  (1) 2025.01.27
(1) rknn-toolkit2 설치하기  (0) 2025.01.27
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.