Python SDK 설치 및 사용 가이드

FuriosaAI Python SDK는 NPU를 사용하는 Python 응용을 작성하기 위한 소프트웨어 개발 키트이다. Python SDK를 이용하여 NPU 응용 애플리케이션 개발에 AI/ML 분야에서 가장 널리 사용되는 Python 생태계의 여러 도구와 라이브러리, 프레임워크들을 활용할 수 있다. Python SDK는 다양한 모듈로 구성되며 추론 API, 양자화 API, 명령행 도구, 서빙을 위한 서버 프로그램을 제공한다.

설치 사전 요구 사항

Python SDK 설치 및 사용을 위해서는 필수 패키지 설치 가이드를 따라 커널 드라이버, 펌웨어, 런타임 라이브러리를 반드시 설치해야 한다.

Python 실행 환경 구성

Python SDK는 Python 3.8 또는 그 상위 버전의 실행 환경이 필요하고 이 섹션에서는 Python 실행 환경 구성을 설명한다.

참고

FuriosaAI Python SDK를 사용하지 않거나 Python 실행 환경 구성에 익숙하다면 이 장을 건너뛰어도 좋다.

아래 명령으로 현재 시스템에 준비되어 있는 Python 버전을 확인할 수 있다.

python --version
Python 3.8.10

만약 Python 명령이 존재하지 않거나 3.8 미만의 Python을 사용하고 있다면 아래 방법 중에 하나를 선택하여 Python 환경을 구성할 수 있다.

  • Conda를 이용한 Python 환경 구성 (권장): Conda 는 특정 Python 어플리케이션만을 위한 독립된 Python 환경을 구성할 수 있게 해준다. 따라서 Conda를 사용하면 Python 어플리케이션을 설치할 때 종종 발생하는 패키지 의존성 문제나 Python 버전 문제를 피할 수 있다.

  • Linux 패키지를 이용한 Python 환경 구성: Linux 시스템에서 직접 Python 실행 환경을 구성한다. 다른 Python 실행 환경과 충돌이 우려되지 않는 경우 선택할 수 있다.

Conda를 이용한 Python 환경 구성

Conda는 특정 Python 어플리케이션만을 위한 독립된 Python 환경을 쉽게 구성하게 해준다. Conda에 대해 자세히 알고 싶다면 Conda 에서 다양한 문서를 참고할 수 있다.

설치는 아래와 같이 설치 프로그램을 다운 받아 시작할 수 있다. sh ./Miniconda3-latest-Linux-x86_64.sh 실행 시 물어보는 것은 모두 yes 를 선택하면 된다.

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sh ./Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda --version

독립된 Python 실행 환경 생성 및 활성화

Anaconda 설치 후에는 독립된 Python 실행 환경을 구성하고 필요할 때 활성화 할 수 있다.

  1. Python 3.9를 사용한다면 furiosa-3.9 라는 이름으로 아래 명령으로 실행 환경을 생성하자.

conda create -n furiosa-3.9 python=3.9
  1. 생성한 Python 3.9 환경은 activate 명령으로 활성화된다.

conda activate furiosa-3.9
# 버전 확인
python --version
  1. Python 실행 환경이 활성화 되고 나면 Python SDK 패키지 설치 를 따라 Python SDK를 설치 한다.

  2. Python 실행 환경의 사용을 끝내고 싶은 경우 deactivate 명령을 사용한다.

$ conda deactivate

한번 생성한 환경은 언제든지 다시 activate 하여 사용할 수 있다. 이미 설치했던 패키지는 활성화 후에 다시 설치하지 않아도 된다.

Linux 패키지를 이용한 Python 환경 구성

  1. 시스템에서 직접 Python 환경을 구성할 수 있는 경우 아래와 같이 필요한 패키지를 설치한다.

sudo apt install -y python3 python3-pip python-is-python3
  1. Python 버전을 확인해 잘 설치되었는지 확인한다.

python --version
Python 3.8.10

Python SDK 패키지 설치

furiosa-sdk를 설치하기에 앞서, Python의 패키지 설치 도구를 최신 버전으로 업데이트 해야한다.

pip install --upgrade pip setuptools wheel

경고

최신 버전으로 업데이트하지 않은 채로 furiosa-sdk를 설치할 경우 아래와 같은 에러를 접할 수 있다.

ERROR: Could not find a version that satisfies the requirement furiosa-quantizer-impl==0.10.* (from furiosa-quantizer==0.10.*->furiosa-sdk) (from versions: none)
ERROR: No matching distribution found for furiosa-quantizer-impl==0.10.* (from furiosa-quantizer==0.10.*->furiosa-sdk)

FuriosaAI Python SDK 패키지는 pypi 저장소에 업로드 되어 있어 pip 명령을 이용하여 다음과 같이 간편하게 설치할 수 있다.

pip install furiosa-sdk

패키지는 컴파일러 명령행 도구 및 추론 API를 포함하고 있다. 각각의 자세한 사용법은 furiosa-compiler튜토리얼 및 코드 예제 를 참고하라.

추가적인 기능은 Python Extra 패키지 형태로 제공하고 있으며 추가 패키지 목록 에서 필요한 패키지를 골라 설치할 수 있다. 예를 들어, 모델 서빙을 위해 server 와 모델과 SDK 간에 호환여부를 확인하기 위해 litmus 를 설치해야 해야 한다면 아래와 같이 확장 패키지를 지정한다.

pip install 'furiosa-sdk[server, litmus]'

추가 패키지 목록

Legacy Runtime/API

0.10.0 릴리스부터 새로 도입된 차세대 런타임인 FuriosaRT 대신 기존 런타임과 API를 사용하고자 하는 경우 아래와 같이 설치한다.

pip install 'furiosa-sdk[legacy]'

FuriosaAI Models

NPU에서 바로 실행 가능하며 최적화된 DNN 모델 아키텍쳐와 사전에 훈련된 모델 이미지 등을 Python 모듈 형태로 제공하는 패키지다. 설치는 다음 커맨드로 할 수 있다.

pip install 'furiosa-sdk[models]'

Quantizer

Quantizer 패키지는 모델을 양자화(quantization) 된 모델로 변환하기 위한 API 집합을 제공한다. FuriosaAI SDK와 NPU가 제공하는 양자화 기능에 대한 자세한 내용은 모델 양자화 에서 찾을 수 있다.

pip install 'furiosa-sdk[quantizer]'

Model Server

DNN 모델을 NPU로 가속하여 GRPC나 Restful API로 서빙하는 기능을 제공한다. 설치는 다음 커맨드로 할 수 있다. 자세한 사용법은 모델 서버 (서빙 프레임워크) 에서 찾을 수 있다.

pip install 'furiosa-sdk[server]'

Litmus

지정한 모델이 FuriosaAI SDK와 호환되는지 여부를 검사하는 도구이다. 이 과정에서 모델 양자화, 컴파일 등의 과정을 모의로 실행한다.

pip install 'furiosa-sdk[litmus]'