오렌지 파이는 간단히 말해서 NPU (Neural Processing Unit)이 탑재된 싱글보드 컴퓨터입니다. NPU가 달린 라즈베리파이라고 생각하시면 쉽습니다.
만약 딥러닝 모델이 돌아가는 작은 컴퓨터를 저렴한 가격에 쓰고 싶다면 오렌지 파이는 꽤 좋은 선택입니다.
오렌지 파이 5에는 Rockchip이라는 회사에서 만든 NPU인 RK3588이 탑재되어 있습니다.
오렌지 파이 뿐 아니라, 바나나파이에도 RK3588이 들어 있습니다. 바나나 파이와 오렌지 파이는 크게 차이는 없으므로, 도큐먼트를 더 많이 제공해 주는 플랫폼을 사용하시는 것이 좋겠습니다.
🍌바나나 파이를 쓸까 ? 🍊 오렌지 파이를 쓸까?
RKNN
다만 오렌지파이에서는 일반적인 딥러닝 모델 (ONNX, PyTorch 등) 을 바로 쓸 수가 없습니다. Nvidia 칩이 아니기 때문에 CUDA도 없습니다. 따라서 우리는 일반적인 딥러닝 모델을 오렌지 파이 NPU가 이해할 수 있는 포맷으로 변경해 줘야 하는데, 그게 바로 RKNN이고, 이 변환은 Rockchip에서 제공해주는 rknn-toolkit을 통해 이루어집니다.
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 를 수행하는 보드로 활용될 수 있습니다.