SDK qb v1.0.0 Update Note#

이번 업데이트는 사용자 관점에서의 사용 방식 변화는 크지 않지만, 내부 아키텍처와 SDK qb 전반에 걸친 중요한 개선이 포함된 Major Update입니다. 성능 확장성, 일관성, 향후 기능 확장을 고려한 구조 개편에 중점을 두었습니다.
1. Mobilint SDK qb 이름 통일#
기존에는 구성 요소별로 서로 다른 명칭을 사용하고 있어, SDK qb 전반의 구조를 처음 접하는 사용자에게 혼란을 줄 수 있었습니다. 이를 개선하기 위해 SDK qb 내 핵심 구성 요소의 명칭을 다음과 같이 통일하였습니다.
기존 런타임 라이브러리 maccel → qb Runtime
기존 컴파일러 qubee → qb Compiler
이번 명칭 통일을 통해 SDK qb 구성 요소 간의 역할과 관계가 보다 직관적으로 드러나며, 문서화 및 향후 기능 확장 시 일관된 사용자 경험을 제공할 수 있게 되었습니다.
설치#
패키지 네이밍 정책 변경에 따라 기존 패키지는 더 이상 유지보수되지 않습니다. 아래에 안내된 업데이트된 패키지 사용을 권장합니다.
I. APT 패키지 목록 업데이트#
패키지 설치 전에 APT 패키지 인덱스를 최신 상태로 갱신합니다.
sudo apt update
II. 런타임 라이브러리 설치#
기존 패키지명 mobilint-npu-runtime 에서 mobilint-qb-runtime 으로 변경되었습니다.
# C++ 라이브러리
sudo apt install mobilint-qb-runtime
# 파이썬 패키지
pip install mobilint-qb-runtime
III. 드라이버 설치#
드라이버 패키지 역시 네이밍 정책 변경에 따라 설치 패키지명이 aries-driver 에서 mobilint-aries-driver로 변경되었습니다.
sudo apt install mobilint-aries-driver
C++ 라이브러리 변경 사항#
컴파일 링킹 플래그 변경
# 기존 컴파일 방식 g++ -o example example.cpp -lmaccel # 변경된 컴파일 방식 g++ -o example example.cpp -lqbruntime
헤더 파일 경로 변경
// 기존 헤더 파일 # include "maccel/maccel.h" // 변경된 헤더 파일 # include "qbruntime/qbruntime.h"
파이썬 패키지 변경 사항#
모듈 이름 변경
# 기존 파이썬 모듈 import maccel # 변경된 파이썬 모듈 import qbruntime
2. 모델 수 제한 해제#
기존에는 NPU 코어 수에 따라 동시에 구동할 수 있는 모델 수에 제한이 존재했습니다. 이번 업데이트에서는 해당 구조를 개선하여, 모델 수 제한을 해제하였습니다.
최신 qb Compiler로 컴파일된 모델은 컴파일 시 지정된 코어 모드와 무관하게 DRAM 메모리 범위 내에서 더 많은 모델을 동시에 로딩 및 실행할 수 있습니다.
이를 통해 다음과 같은 이점을 얻을 수 있습니다.
다수의 모델을 동시에 운용하는 서비스 시나리오에서 유연성 향상
다양한 코어 모드의 모델들을 동시에 사용 가능
LLM 모델등 큰 모델 사용 상에 존재했던 코어 제약 제거
본 변경은 런타임의 내부 로직 변경및 최적화를 통해 이루어졌으며, 사용자 수준에서는 MXQv7 기반으로 컴파일된 모델이라면 기존 추론 코드 변경 없이 바로 적용됩니다.
3. 멀티 쓰레딩 성능 개선#
이번 업데이트와 함께, c++ 라이브러리에서는 .setActivationSlots(int num), 파이썬에서는 .set_activation_slots(num) 함수를 통해 NPU 추론과 데이터 이동 간의 파이프라이닝 최적화 방식을 더 자유롭게 사용하실 수 있도록 지원합니다.
위 함수는, 하나의 모델에서 사용할 입력 slot 수를 제어할 수 있는 방식을 제공하여 더 많은 slot 사용 시에는 NPU 메모리를 더 많이 차지하지만 npu 연산과의 파이프라이닝이 활성화되어 멀티 쓰레딩 상황에서의 성능면에서 이점을 얻을 수 있습니다.
NOTE: 현재 LLM등 Cache를 사용하는 모델에 한해서는 activation slot 수가 1로 제한됩니다.
4.uint8 추론 지원#
이번 업데이트에서는 uint8 정수형 기반 추론을 공식 지원합니다.
uint8 양자화 모델을 qb Compiler에서 컴파일 가능
qb Runtime에서 해당 모델의 추론 실행 지원
이를 통해 uint8 입력을 사용하는 모델들에 대해 전처리 과정에서 cpu 연산을 줄일 수 있습니다.
정리#
이번 Major Update는 외형적인 변화보다는 확장성, 일관성, 성능 최적화를 위한 내부 구조 개선에 초점을 맞춘 릴리스입니다.
앞으로도 SDK qb는 내부적으로 지속적인 성능 및 기능 개선을 이어갈 예정입니다.