AEGLOSLAB Arduino UNO Q 완전 가이드

제9부 AI·엣지 응용

9.1 GPU·DSP 하드웨어 이해 — Adreno 702, Hexagon DSP, Qualcomm AI Engine

UNO Q의 AI·비전 기능을 제대로 쓰려면 먼저 "무엇이 계산을 하는가"를 알아야 한다. Qualcomm Dragonwing QRB2210 MPU 안에는 CPU 말고도 GPU(Adreno 702), 상시 구동 DSP(Hexagon), 카메라 전용 ISP가 각각 따로 들어 있다. 이 장은 이 네 블록의 사양과 역할을 정리하고, "Qualcomm AI Engine"이라는 마케팅 용어가 실제로 무엇을 가리키는지 정리한다. 이후 장(9.2~9.5)에서 다룰 One-Click AI·TFLite/ONNX 가속·GPU 직접 추론은 모두 이 장의 하드웨어 구성을 전제로 한다.

9.1.1 QRB2210의 이기종 컴퓨팅 — 블록 구성

QRB2210은 하나의 칩 안에 성격이 다른 4개의 연산 블록을 묶은 SoC(System-on-Chip)다. CPU가 범용 프로그램을 실행하는 동안, GPU는 그래픽·병렬 연산을, DSP는 상시 켜진 채로 저전력 센서·오디오 처리를, ISP는 카메라 원시 신호 전처리를 각각 전담한다.

Cortex-A53 ×4 2.0GHz Debian Linux 일반 애플리케이션 Adreno 702 845MHz 3D 그래픽 OpenCL·Vulkan 범용연산 Hexagon DSP 상시 구동 센서 퓨전 음성/오디오 듀얼 13MP ISP 카메라 전처리 Qualcomm AI Engine (이기종 조정 계층)

이 절의 수치는 Qualcomm 공식 문서(Qualcomm Dragonwing QRB2210 Processor Product Brief, docs.qualcomm.com)와 Arduino 공식 하드웨어 문서(docs.arduino.cc)를 교차 확인한 값이다. 두 출처의 GPU·ISP 수치가 서로 일치해 신뢰도가 높다고 판단했다.

  • CPU: 커스텀 64비트 Arm Cortex-A53 쿼드코어, 2.0GHz.
  • GPU: Qualcomm Adreno 702, 845MHz, 64비트 어드레싱.
  • DSP: Hexagon DSP, 상시 구동(always-on) 서브시스템(세대 번호는 공식 자료에 명시되지 않음 — 9.1.3 참고).
  • ISP: 듀얼 13MP(또는 단일 25MP) 이미지 시그널 프로세서, 최대 30fps.

9.1.2 Adreno 702 GPU — 그래픽과 범용 연산

Adreno 702는 원래 디스플레이용 3D 그래픽 가속기지만, API 지원 범위 덕분에 범용 병렬 연산(GPGPU)에도 쓸 수 있다.

  • 클럭: 845MHz.
  • API 지원: OpenGL ES 3.1, OpenCL 2.0, Vulkan 1.1.
  • 디스플레이: HD+(720×1680) @60Hz, 10비트 엔드투엔드, 최대 4개 하드웨어 레이어 합성.
  • 기타: Qualcomm UBWC(Universal Bandwidth Compression)로 메모리 대역폭 절감.

OpenCL 2.0과 Vulkan 1.1(컴퓨트 셰이더 포함)을 지원한다는 것은, 이론적으로는 GPU에서 행렬곱 같은 신경망 연산을 직접 실행할 수 있는 API 표면이 있다는 뜻이다. 실제로 이 경로가 얼마나 열려 있는지는 드라이버 스택이 두 계열이라는 점을 알아야 이해된다.

9.1.2.1 드라이버 스택 — Qualcomm 독점 vs Mesa 오픈소스

Debian 위에서 Adreno 702에 접근하는 경로는 크게 둘로 나뉜다.

경로구성성격
Qualcomm 독점(QNN/QAIRT)Qualcomm AI Runtime SDK, libQnnTFLiteDelegate.so 등AI 추론에 최적화. UNO Q 공식 이미지에 기본 포함되는지는 9.4에서 다루는 커뮤니티 보고에 따르면 불확실하다.
Mesa 오픈소스 스택Turnip(Vulkan 드라이버), Rusticl(OpenCL over Gallium)리눅스 커뮤니티가 역공학으로 만든 오픈소스 드라이버. 그래픽·범용 컴퓨트 API는 열려 있지만 AI 전용 최적화는 없다.

이 구분은 9.4(App Lab 없이 GPU 직접 추론하기)에서 다시 자세히 다룬다. 지금은 "Adreno 702가 API 스펙상 할 수 있는 것"과 "UNO Q 소프트웨어 이미지가 실제로 열어 둔 것"이 다를 수 있다는 점만 기억해 두자.

9.1.3 Hexagon DSP — 상시 구동 저전력 처리

Hexagon DSP는 QRB2210의 "상시 켜진(always-on)" 서브시스템으로, RPM(전력 관리 프로세서)과 함께 동작하며 Snapdragon 센서 코어·저전력 오디오 서브시스템과 자원을 공유한다.

  • 적합한 워크로드: IMU 등 센서 융합, 음성 웨이크워드(예: "Hey Arduino") 같은 상시 리스닝 오디오 처리.
  • 전력 특성: CPU/GPU를 깨우지 않고도 계속 동작할 수 있어, 배터리 구동 기기에서 "항상 듣고 있어야 하는" 기능에 유리하다고 알려져 있다.
  • ⚠️ 확인 필요: QRB2210 제품 브리프는 Hexagon DSP를 "센서 퓨전·음성/오디오 처리"로만 설명하며, 상위 Dragonwing/Snapdragon 라인업의 일부 칩이 광고하는 것과 같은 별도의 TOPS(초당 테라연산) 수치나 전용 텐서 가속기(HTA/NPU) 언급은 이 문서에서 찾지 못했다. App Lab의 오디오 Bricks(예: 키워드 스포팅)가 실제로 이 DSP를 경유하는지, 아니면 일반 CPU 프로세스로 실행되는지는 이 책 집필 시점 기준 공개 자료로 확인하지 못했다 — 확인 필요로 남긴다.
  • ⚠️ "6세대" 표기 주의(2.1.1 참고): 흔히 "6세대 Hexagon DSP"라는 표현을 접하지만, 이는 Hexagon의 아키텍처 코드명 QDSP6("6세대 디지털 신호 프로세서")에서 온 것으로 보이며 QRB2210 공식 제품 브리프에는 세대·버전 번호가 명시되어 있지 않다. 이 책에서는 이 칩 고유의 검증된 버전 정보로 단정하지 않는다.

9.1.4 듀얼 ISP — 카메라 전처리

  • 듀얼 13MP ISP(또는 단일 25MP), 최대 30fps.
  • 카메라 최대 2개까지 동시 지원.
  • 1080p 비디오 인코드/디코드 지원.

ISP는 AI 추론 자체를 하지 않는다. 센서에서 들어온 raw 이미지를 디모자이킹·노이즈 제거·색보정해 CPU/GPU가 쓸 수 있는 이미지로 만드는 전처리 전담 블록이다. 9.5(카메라 비전 예제)에서 다루는 Camera 클래스는 이 ISP 출력을 받아온다.

9.1.5 "Qualcomm AI Engine"이 가리키는 것

Arduino·Qualcomm 마케팅 자료는 One-Click AI가 "사전학습 모델을 Qualcomm AI 엔진에 배포한다"고 표현한다. 이때 "Qualcomm AI Engine"은 특정 칩 블록 하나의 이름이 아니라, CPU·GPU·DSP를 아우르는 이기종 추론 조정 계층(Qualcomm AI Runtime SDK, 구 SNPE, 현 QAIRT/QNN)을 가리키는 포괄 용어다. 즉 "AI Engine에서 실행된다"는 말 자체는 "그 세 블록 중 하나 이상에서 실행된다"는 뜻이지, GPU나 DSP가 반드시 쓰인다는 보장은 아니다.

이 구분이 중요한 이유는, 9.2에서 볼 App Lab의 사전 로드 모델 목록(Arduino 공식 저장소 arduino/app-bricks-py의 모델 매니페스트)을 실제로 확인해 보면, QNN(NPU/DSP 가속) 태그가 붙은 모델은 전부 VENTUNO Q 전용이고 UNO Q용 모델에는 하나도 없기 때문이다. 즉 이 책 집필 시점 기준, UNO Q에서 App Lab 사전학습 모델을 실행하면 실질적으로 CPU 경로를 거치는 것으로 보인다 — 자세한 근거와 표는 9.2.4, GPU 직접 접근 시도의 실패 사례는 9.4을 참고.

9.1.6 워크로드별 요약표

워크로드적합한 블록비고
화면 렌더링(Web UI, 데스크톱 GUI)Adreno 702 GPUOpenGL ES 3.1
범용 병렬 연산(행렬곱 등, 실험적)Adreno 702 GPUOpenCL 2.0 / Vulkan 1.1 컴퓨트 — 드라이버 경로는 9.4 참조
상시 센서 모니터링(IMU 등)Hexagon DSP저전력, CPU를 깨우지 않음(알려진 설계 목표)
상시 음성 웨이크워드 감지Hexagon DSP(가능성) 또는 CPU실제 경유 경로는 확인 필요
카메라 원시 신호 전처리듀얼 ISPAI 추론 아님
이미지 분류·객체 탐지(App Lab Brick)CPU(현재 확인된 경로)9.2.4 근거 참조
NPU/QNN 가속 추론(UNO Q 미확인, VENTUNO Q 전용으로 보임)9.4 참조

9.1.7 함정과 확인 필요 사항

  • TOPS 수치 없음: QRB2210의 GPU/DSP에 대해 "초당 몇 조 연산"류의 공식 AI 성능 지표를 찾지 못했다. 더 상위 Dragonwing 칩(예: QCS8550 계열)의 마케팅 자료와 혼동하지 않도록 주의한다.
  • AI Engine ≠ NPU: "Qualcomm AI Engine"이라는 이름 때문에 전용 NPU가 있다고 오해하기 쉽다. QRB2210 자체에는 별도의 전용 NPU 다이가 명시돼 있지 않다 — 있다면 CPU/GPU/DSP 중 어딘가에 통합된 형태일 텐데, 이 역시 확인 필요.
  • UNO Q와 VENTUNO Q는 별개의 사안: 이 책의 다른 곳(0.3)에서 제품군을 비교하지만, AI 가속에 관한 한 두 보드는 실제 소프트웨어 지원 수준이 다르다. VENTUNO Q용 모델 매니페스트에는 QNN 가속·소형 LLM(Gemma, Qwen)·TTS 모델이 다수 등록돼 있는 반면, UNO Q는 그렇지 않다 — VENTUNO Q가 정확히 어떤 SoC를 쓰는지는 이 책 집필 시점 기준 별도 검증이 필요하다.
  • 오픈소스 드라이버 vs 독점 드라이버: Mesa/Turnip/Rusticl이 존재한다고 해서 AI 추론이 가속된다는 뜻은 아니다. 이들은 표준 그래픽·컴퓨트 API를 여는 것이지, Qualcomm의 AI 최적화 커널을 대체하지 않는다.

9.1.8 다음 장으로

  • 9.2: 이 장의 CPU/GPU/DSP 구분을 바탕으로, App Lab의 사전학습 모델 배포 워크플로우를 실습한다.
  • 9.3: Python에서 직접 TensorFlow Lite·ONNX Runtime을 호출해 CPU 대비 가속 여부를 실험하는 방법.
  • 9.4: Adreno 702에 App Lab 없이 직접 접근하려는 커뮤니티 시도와 그 현재 상태(미해결).
  • 9.5: 카메라 비전 예제로 실제 추론 지연을 측정하는 방법.
  • 2.1: 두 프로세서(MPU/MCU) 아키텍처 전반은 별도 장에서 다룬다.