Copyright (C) 커널연구회 (www.kernel.bz)작성자: 정재준(rgbi3307 골뱅이 nate.com)문서위치 메인(출처): https://kernel.bz/blogPost/https://www.kernel.bz/blogPost/riscv-pi5-perf아래 내용은 누구나 사용할 수 있습니다. 저자정보는 지우지 말고 위의 출처를 기입해 주시기 바랍니다.커널 버전 [v6.6) 최근에 판매되고 있는 NPU 모듈인 Hailo는 PCIe 인터페이스로 연결 됩니다. PCIe 슬롯이 있는 타겟 보드에 Hailo PCIe 디바이스 드라이버를 포팅하면 사용할 수 있습니다. 이번 블로그에서는 현재 대중적으로 많이 사용하고 있는 라즈베리파이5와 오픈 아키텍쳐로 주목 받고 있는 RISC-V 보드(JH7110)에 Hailo 모듈을 포팅하여 서로 성능을 비교해 보도록 하겠습니다. 먼저 하드웨어 스펙을 요약 비교하면 다음과 같습니다. 하드웨어 스펙 요약 라즈베리파이5 하드웨어 스펙 ARM 64-bit Cortex-A76 quad-core (2.4GHz) 메모리: 4GB or 8GB 제조사: BroadCom BCM2712 카메라: CSI 연결 제공(자동인식) 가격: 15만원 내외 RISC-V (JH7110) 하드웨어 스펙 RISC-V 64-bit U74 quad-core (1.5GHz) 메모리: 4GB or 8GB 제조사: StarFive JH7110 카메라: USB 카메라(자동인식) 가격: 12만원 내외 라즈베리파이5의 CPU 속도가 2.4GHz로 RISC-V(JH7110) 1.5GHz에 비해서 40% 빠르게 동작합니다. CPU 클럭 속도가 증가하면 비례하여 발열량도 높아져서 라즈베리파이5는 기본적인 옵션으로 냉각팬을 설치하도록 권장하고 있습니다. RISC-V(JH7110)는 속도는 다소 느리지만 CPU 발열량은 낮은 편입니다. 그리고 가격도 라즈베리파이5에 비해서 저렴 합니다. 위와 같이 하드웨어는 성능차이가 많이 나지는 않습니다. 문제는 소프트웨어 성능이 중요 하겠습니다. 소프트웨어는 여러가지 성능평가 지표에 따라서 다양하게 나타날 수 있기 때문에, 먼저 아래와 같이 정리해 보겠습니다. 소프트웨어 성능평가 지표 라즈베리파이는 다음과 같이 대부분의 소프트웨어를 apt install 패키지 설치 되므로 사용하기는 쉽습니다. 하지만 이것을 가지고 여러가지 어플리케이션을 구현 하려면, 소스를 모두 분석하기 힘들고 주변 장치 제어하기가 오히려 어려워 집니다. 한마디로, 사용 편의성은 좋지만 실제 프로젝트 업무에 최적화(커스터마이징) 하기는 쉽지 않습니다. 라즈베리파이5 소프트웨어 환경 RISC-V(JH7110) 환경에서는 리눅스 커널과 PCIe 드라이버, HailoRT 라이브러리가 오픈 소스로 제공 되므로 이것을 포팅 잘하면 실제 프로젝트 업무에 최적화(커스터마이징)해 나갈 수 있습니다. 카메라와 장치제어(환경센서)를 C언어 표준 라이브러리로 최적화 할 수 있습니다. RISC-V(JH7110) 환경 구성도 PCIe 드라이버와 HailoRT 라이브러리 소스를 포팅하는 과정이 다소 어렵지만, 아래와 같이 오픈소스를 활용하여 빌드할 수 있습니다. RISC-V(JH7110) Hailo 드라이버 포팅 화면(Screen) 출력은 C언어 표준 라이브러를 사용하여 비디오 메모리(FrameBuffer)에 직접 출력하면 실행 속도가 빨라 집니다. 아울러 객체를 인식한 회수와 객체의 위치 이동을 판단하여 표시 합니다. 또한 동시에 환경센서(온도, 습도, 조도) 데이터를 수집하여 출력 합니다. RISC-V(JH7110) Hailo 화면 출력 구성 커널연구회는 위의 내용을 C언어 표준 라이브러리로 구현하여, 엔지니어들이 실제 업무에 편리하게 적용할 수 있도록 SDK로 제공하고 있습니다. 좀 더 자세한 내용은 아래 블로그 링크 참조 바랍니다. 커널연구회 Hailo SDK 상세설명블로그 링크: https://www.kernel.bz/blogPost/jh7110-hailo 소프트웨어 성능평가 결과(요약 정리)위의 평가 내용을 최종적으로 다음과 같이 요약 정리할 수 있습니다. RISC-V(JH7110)는 라즈베리파이5에 비해서 CPU 속도가 40%정도 느리지만, 소프트웨어를 최적화 하여 오히려 성능을 향상 시킬 수 있습니다. 아래의 평가(벤치마크) 데이터를 보시면, RISC-V(JH7110)에서 실행되는 쓰레드 running 숫자를 높이면 라즈베리파이5에 비해서 좋은 성능을 발휘 합니다. 이렇게 실행 하면서 메모리 사용량은 오히려 66% 절감할 수 있습니다. 감사합니다.