인스턴스 유형별 사용
GPU 인스턴스 사용
GPU 유형의 인스턴스를 사용하기 위해서는 적절한 드라이버를 설치해야 합니다. 드라이버가 설치된 GPU 전용 OS 이미지를 사용하여 인스턴스를 생성하거나, 기본 이미지로 인스턴스를 생성한 후 별도로 퍼블릭 드라이버를 다운로드하여 설치할 수 있습니다. 운영체제별 GPU 드라이버를 설치하여 GPU를 사용하는 방법은 다음과 같습니다.
현재 카카오클라우드에서 제공 중인 Ubuntu 20.04 이미지, NVIDIA A100을 기준으로 안내합니다.
Step 1. NVIDIA 드라이버 설치하기
NVIDIA 드라이버를 설치합니다. 권장 드라이버 및 CUDA 버전은 다음과 같습니다.
GPU 유형 | NVIDIA 버전 | CUDA 버전 |
---|---|---|
NVIDIA A100 | 450.80.02 이상 | CUDA Toolkit 11.1 이상 |
- NVIDIA 드라이버 다운로드에 대한 자세한 설명은 NVIDIA 공식 사이트 > Driver Downloads를 참고하시기 바랍니다.
- NVIDIA 드라이버 설치 및 구성에 대한 자세한 설명은 NVIDIA 공식 사이트 > NVIDIA Driver Installation Quickstart Guide를 참고하시기 바랍니다.
-
NVIDIA 드라이버를 설치할 인스턴스에 NVIDIA 장비가 있는지 명령을 실행해 확인합니다.
NVIDIA 장비 검색 명령어$ lspci | grep -i NVIDIA
-
설치할 수 있는 드라이버 버전을 확인합니다.
-
설치된 드라이버가 최신 버전이 아닐 경우,
apt update -y
명령어를 실행하여 업데이트를 실행합니다. -
Command ‘ubuntu-drivers’ not found
라는 메시지가 나올 시,sudo apt install ubuntu-drivers-common
명령을 입력하여 ubuntu-drivers-common을 설치합니다설치할 드라이버 버전 확인 명령어$ ubuntu-drivers devices
드라이버 버전 확인 예시$ ubuntu-drivers devices
**==** /sys/devices/pci0000:00/0000:00:04.0 **==**
modalias : pci:v000010DEd000020B0sv000010DEsd0000134Fbc03sc02i00
vendor : NVIDIA Corporation
driver : nvidia-driver-515-server - distro non-free
driver : nvidia-driver-470 - distro non-free
driver : nvidia-driver-470-server - distro non-free
driver : nvidia-driver-510-server - distro non-free
driver : nvidia-driver-510 - distro non-free
driver : nvidia-driver-450-server - distro non-free
driver : nvidia-driver-515 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin
-
-
설치 가능한 드라이버를 선택하여 설치를 진행합니다.
드라이버 설치$ sudo apt install nvidia-driver-470
드라이버 설치
-
재부팅을 실행합니다.
재부팅 명령어$ sudo reboot
-
설치한 드라이버 정보를 확인합니다.
설치한 드라이버 정보 확인 명령어$ nvidia-smi
설치한 드라이버 정보 확인 예시$ nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.141.03 Driver Version: 470.141.03 CUDA Version: 11.4 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA A100 80G... Off | 00000000:00:05.0 Off | 0 |
| N/A 33C P0 41W / 300W | 35MiB / 80994MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
| 1 NVIDIA A100 80G... Off | 00000000:00:06.0 Off | 0 |
| N/A 34C P0 43W / 300W | 35MiB / 80994MiB | 0% Default |
| | | Disabled |
+-------------------------------+----------------------+----------------------+
Step 2. NVIDIA CUDA Toolkit 설치하기
NVIDIA CUDA Toolkit를 설치합니다.
CUDA Toolkit를 재설치 시 Toolkit 삭제
CUDA Toolkit를 재설치하는 경우, 다음의 설치 환경을 준비합니다.
-
기존 CUDA 관련 설정을 삭제합니다.
CUDA 설정 삭제 명령어$ sudo rm -rf /usr/local/cuda*
-
~/.bashrc
또는/etc/profile
에 다음의 기존 설정이 있는 경우, 삭제합니다.기존 설정 삭제export PATH=$PATH:/usr/local/cuda-11.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64
export CUDADIR=/usr/local/cuda-11.4 -
모든 기존 설정을 삭제한 후,
nvcc -V
명령을 실행해 해당 명령이 실행되지 않는 것을 확인합니다.nvcc -V 명령 실행 결과$ nvcc -V
Command 'nvcc' not found, but can be installed with: sudo apt install nvidia-cuda-toolkit
CUDA Toolkit 설치
-
NVIDIA 공식 사이트 > CUDA Toolkit Archive에서 설치할 CUDA Toolkit 버전을 선택합니다. 버전 선택 시 하단에서 Base Installer 명령어를 확인할 수 있습니다.
CUDA Toolkit 버전 선택 및 Base Installer 명령어 확인
-
Base Installer의 명령어(첫째 줄)를 실행하여 CUDA Toolkit 설치용 파일을 다운로드합니다.
CUDA Toolkit 설치용 파일 다운로드 명령어 예시$ wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run
Base Installer의 Toolkit 설치용 파일 다운로드 명령 실행 결과
-
Base Installer의 명령어(둘째 줄)를 실행하여 CUDA Toolkit 설치용 파일을 실행합니다.
- CUDA Toolkit 설치용 파일 실행 시 1분 이상의 시간이 소요됩니다.
CUDA Toolkit 설치용 파일 실행 명령어$ sudo sh cuda_11.4.0_470.42.01_linux.run
-
방향키를 눌러 Continue를 선택하고, Enter를 누릅니다.
Continue 선택
-
accept
를 입력하고, Enter를 누릅니다.accept 입력
-
Space를 눌러 Driver의 체크 박스의 선택을 해제하고 Install을 선택한 후, Enter를 누릅니다.
- 기존 설정이 있는 경우,
Existing installation of CUDA Toolkit 11.x found
메시지가 나타납니다. 해당 경우 Upgrade all을 선택하고 Enter를 누릅니다.
Install 선택
- 기존 설정이 있는 경우,
-
UDA Toolkit이 정상적으로 설치 완료된 경우, 다음의 화면을 확인할 수 있습니다.
CUDA Toolkit 설치 완료
-
다음의 명령을 실행하여 CUDA Toolkit 관련 환경 변수를 추가합니다.
CUDA Toolkit 관련 환경 변수 추가 명령어$ sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.4/bin' >> /etc/profile"
$ sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64' >> /etc/profile"
$ sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.4' >> /etc/profile"
$ source /etc/profile -
nvcc -V
명령을 실행하여 설치된 CUDA Toolkit을 확인합니다.CUDA Toolkit 설치 확인 결과
NPU 인스턴스 사용
NPU 유형의 인스턴스를 사용하기 위해서는 적절한 드라이버를 설치해야 합니다. 드라이버가 설치된 NPU 전용 OS 이미지를 사용하여 인스턴스를 생성하거나, 기본 이미지로 인스턴스를 생성한 후 별도로 드라이버를 다운로드하여 설치할 수 있습니다. Linux 운영체제에서 NPU 드라이버를 설치하는 방법은 다음과 같습니다.
- 현재 카카오클라우드에서 제공 중인 Ubuntu 20.04 이미지, FuriosaAI WARBOY를 기준으로 안내합니다.
- FuriosaAI에서 제공하는 APT 서버 설정이 필요하며, 자세한 설명은 FuriosaAI Docs > 드라이버, 펌웨어, 런타임 설치 가이드를 참고하시기 바랍니다.
- FuriosaAI NPU 드라이버 설치 및 구성에 대한 기술 문의는 FuriosaAI 고객센터에 문의하여 기술지원을 받을 수 있습니다.
Step 1. FuriosaAI 드라이버 설치하기
FuriosaAI NPU 드라이버를 설치합니다. 권장 드라이버 및 SDK 버전은 다음과 같습니다.
NPU 유형 | 드라이버 버전 | SDK 버전 |
---|---|---|
FuriosaAI Warboy | 1.7 이상 | 0.9.1 |
-
FuriosaAI NPU 드라이버를 설치할 인스턴스에 FuriosaAI 장비가 있는지 명령을 실행해 확인합니다.
FuriosaAI 장비 검색 명령어$ lspci -nn | grep 1200
16:00.0 Processing accelerators [1200]: Device [1ed2:0000] (rev 01)또는
FuriosaAI 장비 검색 명령어$ sudo update-pciids
$ lspci | grep FuriosaAI
16:00.0 Processing accelerators: FuriosaAI, Inc. Warboy (rev 01) -
드라이버의 설치를 진행합니다.
드라이버 설치 명령어$ sudo apt install furiosa-driver-warboy
-
런타임 라이브러리 및 유틸리티의 설치를 진행합니다.
런타임 라이브러리 및 유틸리티 설치 명령어$ sudo apt install furiosa-libnux furiosa-toolkit
-
설치된 패키지의 버전을 고정합니다.
패키지 버전 고정 명령어$ sudo apt-mark hold furiosa-driver-warboy furiosa-libhal-warboy furiosa-libcompiler furiosa-libnux furiosa-toolkit libonnxruntime
-
설치한 드라이버 정보를 확인합니다.
설치한 드라이버 정보 확인 명령어$ furiosactl info
설치한 드라이버 정보 확인 예시$ furiosactl info
+------+--------+----------------+-------+--------+--------------+
| NPU | Name | Firmware | Temp. | Power | PCI-BDF |
+------+--------+----------------+-------+--------+--------------+
| npu0 | warboy | 1.6.0, c1bebfd | 52°C | 2.52 W | 0000:00:05.0 |
+------+--------+----------------+-------+--------+--------------+
Step 2. FuriosaAI Python SDK 설치하기
FuriosaAI Python SDK를 설치합니다.
효과적인 Python 실행 환경 구성을 위해 가상환경(venv, pyenv, pipenv, conda, etc.)을 설치합니다.
해당 가이드에서는 Miniconda를 설치하여 독립된 Python 실행 환경을 생성하여 가상 환경을 구성합니다.
- FuriosaAI SDK 설치 및 구성에 대한 자세한 설명은 FuriosaAI Docs > Python SDK 설치 및 사용 가이드를 참고하시기 바랍니다.
- FuriosaAI NPU 및 Software에 대한 자세한 설명은 FuriosaAI Docs > FuriosaAI NPU 및 SDK 문서를 참고하시기 바랍니다.
-
Miniconda를 설치합니다.
Miniconda 설치 명령어$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ SHELL=bash sh ./Miniconda3-latest-Linux-x86_64.sh
$ source ~/.bashrc
(base)$ conda --version -
독립된 Python 실행 환경을 생성하고 활성화합니다.
Python 실행 환경 생성 명령어(base)$ conda create -n my-env python=3.9
(base)$ conda activate my-env
(my-env)$ python --version
Python 3.9.16 -
Furiosa SDK를 설치합니다.
Furiosa SDK 설치 명령어(my-env)$ pip install --upgrade pip setuptools wheel
(my-env)$ pip install 'furiosa-sdk[full]' -
설치된 SDK를 확인합니다.
Furiosa SDK 설치 확인 명령어(my-env)$ furiosa --version
Furiosa SDK 설치 확인 예시(my-env)$ furiosa --version
0.9.1-release (rev: a240782)
Step 3. FuriosaAI Python SDK 예제 실행하기
설치한 FuriosaAI의 SDK를 이용하여 추론을 수행하는 예제를 실행합니다.
-
Git에서 furiosa-sdk 예제를 내려받습니다.
Furiosa SDK repository clone 명령어(my-env)$ git clone https://github.com/furiosa-ai/furiosa-sdk --depth 1
-
예제 실행에 필요한 라이브러리를 설치합니다.
라이브러리 설치 명령어(my-env)$ cd furiosa-sdk/examples/inferences
(my-env)$ pip install -r requirements.txt -
예제 코드를 실행합니다.
추론 예제 프로그램 실행 명령어(my-env)$ ./image_classify.py ../assets/images/car.jpg
libfuriosa_hal.so --- v0.11.0, built @ 43c901f
INFO:furiosa.common.native:loaded native library libnux.so (0.9.1 d91490fa8)
Loading and compiling the model /home/ubuntu/furiosa-sdk/examples/inferences/../assets/quantized_models/imagenet_224x224_mobilenet_v1_uint8_quantization-aware-trained_dm_1.0_without_softmax.tflite
Saving the compilation log into /home/ubuntu/.local/state/furiosa/logs/compile-20230516064013-fzjjxx.log
Using furiosa-compiler 0.9.1 (rev: d91490fa8 built at 2023-04-19T13:49:26Z)
2023-05-16T06:40:13.769147Z INFO nux::npu: Npu (npu0pe0-1) is being initialized
2023-05-16T06:40:13.773685Z INFO nux: NuxInner create with pes: [PeId(0)]
...
Prediction elapsed 0.00 secs
[Top 5 scores:]
sports car: 155
pickup: 152
car wheel: 148
convertible: 148
racer: 143
2023-05-16T06:41:00.568028Z INFO nux::npu: NPU (npu0pe0-1) has been destroyed
2023-05-16T06:41:00.568453Z INFO nux::capi: session has been destroyed