릴리즈 노트#

v1.3.1#

출시일: 2026년 7월 9일 유형: Minor

NPU 내부 16비트 정수 지원, SIMD 수준 선택, NPU 타임아웃 설정, RedHat 계열 OS용 DNF(RPM) 패키지 지원과 안정성 및 성능 개선이 포함되었습니다.

추가#

  • 16비트 정수형 지원 — NPU 내부 자료형으로 16비트 정수형을 지원합니다. 모델 입출력 자료형에는 영향이 없습니다.

  • RedHat 계열 OS용 DNF(RPM) 패키지 — RHEL, Rocky Linux(x86_64, aarch64)에서 모빌린트 DNF 저장소를 통해 mobilint-qb-runtimemobilint-cli를 설치할 수 있습니다. 설치 방법은 런타임 라이브러리 설치를 참고하세요.

  • SIMD 수준 선택 — 스케일 및 전치 연산에서 AVX-512를 지원합니다. 기본적으로 시스템이 지원하는 가장 빠른 SIMD 수준을 자동으로 선택하며, QBRUNTIME_SIMD_LEVEL 환경 변수(auto, avx512, avx2, sse2)로 직접 지정할 수도 있습니다.

  • NPU 타임아웃 설정QBRUNTIME_NPU_TIMEOUT_MS 환경 변수로 qb Runtime이 NPU 응답을 기다리는 시간을 설정할 수 있습니다.

변경#

  • 가변 길이 입력을 사용하는 모델에서 inferSpeedrun을 실행할 때 더 이상 비정상 종료되지 않습니다.

  • inferAsync API에서 발생하던 문제를 수정했습니다.

  • Model::releaseBuffer()를 호출하지 않은 경우에도 Model::dispose()가 더 이상 3초 동안 대기하지 않습니다.

  • Linux에서 추론 및 데이터 전송 성능을 개선했습니다.

알려진 문제#

  • Windows에서 대형 모델 실행 — 7B LLM을 포함한 일부 대형 모델이 Windows에서 실행되지 않을 수 있습니다. 수정 작업이 진행 중이며 v1.3.2에 포함될 예정입니다.

v1.2.0#

출시일: 2026년 4월 2일 유형: Minor

Batch LLM 지원이 추가되었습니다.

추가#

  • BatchParam — Batch LLM 추론을 위한 새 구조체 BatchParam. 추론 시 각 배치에 필요한 정보를 담습니다:

    • sequence_length : 각 배치의 시퀀스 길이.

    • cache_size : 각 배치가 사용할 캐시 크기.

    • cache_id : 각 배치의 캐시 식별자. 동일한 컨텍스트의 모든 입력은 같은 캐시 ID를 사용해야 하며, 값은 모델이 지원하는 최대 배치 수 이내여야 합니다.

    Batch LLM을 사용하려면 여러 입력을 하나로 이어 붙인 뒤 — 형상이 (1, seq_len, hidden_dim)일 때 seq_len 차원 기준 — 각 입력에 대한 BatchParam을 전달합니다:

    import qbruntime
    import numpy as np
    
    ## 모델이 지원하는 최대 배치 수를 확인합니다.
    print(model.get_cache_infos()[0].num_batches)
    
    ## 입력을 2번째 차원(axis=1)으로 이어 붙입니다.
    batch_input = np.concatenate([input0, input1], axis=1)
    
    ## qbruntime.BatchParam(sequence_length, cache_size, cache_id)
    batch_params = [
        qbruntime.BatchParam(10, 0, 0),
        qbruntime.BatchParam(80, 0, 1),
    ]
    res = model.infer([batch_input], params=batch_params)
    
    batch_params2 = [
        qbruntime.BatchParam(1, 10, 0),
        qbruntime.BatchParam(1, 80, 1),
    ]
    res = model.infer(res, params=batch_params2)
    

알려진 문제#

  • ARM(aarch64) 환경에서 LLM 모델 실행 시 “Bus Error”가 발생할 수 있습니다. v1.1.0부터 존재하는 문제이며, 드라이버 패치가 예정되어 있습니다.

v1.1.0#

출시일: 2026년 3월 23일 유형: Minor

자동 코어 모드 선택, 데이터 타입 조회 API, 성능 최적화가 포함되었습니다.

추가#

  • CoreMode::Auto — 런타임이 MXQ에서 사용 가능한 코어 모드를 자동으로 선택합니다. ModelConfigCoreMode::Auto를 설정하면(기본 생성자도 이미 Auto 사용) Multi, Global4, Global8 같은 비기본 모드를 수동으로 구성할 필요가 없습니다. setAutoCoreMode() 참고.

  • getModelInputDataType() / getModelOutputDataType() — 런타임에 모델 입력/출력 데이터 타입을 조회합니다.

  • getAvailableDeviceNumbers() — 사용 가능한 NPU 디바이스 번호 목록을 가져옵니다.

참고

scheme="all"처럼 여러 코어 모드를 생성하는 플래그로 컴파일된 MXQ는 기존과 같이 코어 모드를 수동으로 선택해야 합니다.

변경#

  • REGULUS에도 v1.0.0에서 도입된 동적 할당 방식이 적용되어 일관된 사용 패턴을 제공합니다.

  • Windows에서 NPU 디바이스로의 데이터 전송 성능을 개선했습니다.

  • 내부 타입 변환을 최적화했습니다.

  • GCC 9 미만에서 std::filesystem으로 인한 컴파일 오류를 수정했습니다.

  • 특정 모델에서 간헐적으로 발생하던 데드락을 수정했습니다.

  • [Breaking] 지원되는 REGULUS 드라이버 리비전이 REV0에서 REV1로 변경됩니다.

알려진 문제#

  • ARM(aarch64) 환경에서 LLM 모델 실행 시 “Bus Error”가 발생할 수 있습니다. 드라이버 패치가 예정되어 있습니다.

더 보기

전체 변경 이력은 Changelog 페이지를 참고하세요.

v1.0.0#

출시일: 2026년 1월 31일 유형: Major

확장성, 일관성, 그리고 향후 확장을 위한 구조 개편에 중점을 둔 메이저 릴리즈입니다. 업그레이드하려면 마이그레이션 가이드를 따라주세요.

추가#

  • uint8 추론 — uint8 양자화 모델을 qb Compiler로 컴파일하고 qb Runtime으로 실행할 수 있습니다. uint8 입력을 사용하는 모델의 전처리 시 CPU 부하를 줄여줍니다.

  • 액티베이션 슬롯setActivationSlots(int num)(C++)와 set_activation_slots(num)(Python)으로 NPU 추론과 데이터 전송 간 파이프라이닝을 조정합니다. 슬롯이 많을수록 NPU 메모리 사용량은 늘지만 멀티스레드 환경의 처리량이 향상됩니다.

참고

캐시를 사용하는 모델(예: LLM)에서는 현재 액티베이션 슬롯 수가 1로 제한됩니다.

변경#

  • [Highlight] 모델 수 제한 제거 — 최신 qb Compiler(MXQv7)로 컴파일된 모델은 컴파일 시 지정한 코어 모드와 무관하게, 가용 DRAM 범위 내에서 동시에 로드·실행됩니다. 다중 모델 서비스, 서로 다른 코어 모드 혼합 실행, LLM 같은 대형 모델에 도움이 되며 코드 변경이 필요 없습니다.

  • [Breaking] SDK qb 명칭 통일 — 런타임 라이브러리 maccelqb Runtime, 컴파일러 qubeeqb Compiler. 패키지·헤더·모듈 이름도 이에 맞게 변경되었습니다.

삭제#

  • 레거시 패키지(mobilint-npu-runtime, aries-driver)는 더 이상 유지보수되지 않습니다. 마이그레이션 가이드를 참고하세요.