NVIDIA GPU (레거시)

추가 엔터프라이즈 배포로서 GPU 장치에 배포할 수 있는 가속 추론 솔루션을 제공합니다.

circle-exclamation

설치 요구사항

이러한 배포 옵션에는 Roboflow Enterprise 라이선스가 필요합니다arrow-up-right.

Enterprise GPU 추론 서버를 배포하려면 먼저 NVIDIA 드라이버와 nvidia-container-runtimearrow-up-right, Docker가 GPU를 추론 서버로 전달(passthrough)할 수 있도록 해야 합니다. 시스템에 이미 nvidia-container-runtime 설치되어 있는지, 설치가 성공했는지 다음 명령으로 확인할 수 있습니다:

docker run --gpus all -it ubuntu nvidia-smi

설치가 성공적이라면 컨테이너 내에서 GPU 장치를 볼 수 있습니다:

Tue Nov  9 16:04:47 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| 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  Tesla K80           Off  | 00000000:00:1E.0 Off |                    0 |
| N/A   41C    P0    56W / 149W |    504MiB / 11441MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

GPU TRT 컨테이너를 빌드하기 전에 필요한 마지막 항목은 프로젝트 정보입니다. 여기에 Roboflow API Key, Model ID 및 Model Version이 포함됩니다. 이러한 정보가 없다면 다음 링크를 따라 프로젝트 정보 찾기arrow-up-right로 이동하세요. 찾은 후에는 해당 세 변수를 나중에 사용하기 위해 저장하세요.

Enterprise GPU TRT

Enterprise GPU TRT 배포는 모델을 장치에서 컴파일하여 사용 가능한 하드웨어에 맞게 최적화합니다. GPU TRT 컨테이너에는 현재 세 가지 배포 옵션이 있습니다. AWS를 통한 EC2 배포, Windows의 WSL2 배포, Windows의 Anaconda 배포입니다.

Amazon EC2 배포

AMI 선택 및 EC2 인스턴스 시작

EC2 인스턴스에서 TRT GPU 컨테이너를 실행하려면 먼저 적절한 AMI를 선택해야 합니다. AMI는 인스턴스를 시작할 때 구성할 수 있으며 인스턴스 시작 전에 선택해야 합니다. 여기서는 NVIDIA GPU-Optimized AMI 를 사용할 것이며, 이 AMI는 Ubuntu 20.04, Docker 및 기타 요구사항이 사전 설치되어 제공됩니다.

NVIDIA GPU-Optimized AMI로 EC2 인스턴스 구성

SSH로 EC2 인스턴스에 로그인

EC2 인스턴스가 정상적으로 실행되면 SSH와 Amazon Keypair를 사용하여 로그인할 수 있습니다. Amazon은 인스턴스 연결에 대한 문서를 여기arrow-up-right에 제공합니다. Keypair가 준비되어 있고 EC2 인스턴스의 Public DNS를 알고 있다면 아래 명령으로 인스턴스에 로그인할 수 있습니다. 이 인스턴스의 기본 인스턴스-사용자-이름ubuntu입니다.

TRT GPU Docker 컨테이너 시작

SSH로 EC2 인스턴스에 로그인한 후 다음 명령으로 Docker 컨테이너를 시작할 수 있습니다:

엔진 컴파일 및 추론 실행

base64로 인코딩한 이미지를 서버에 POST하여 모델에서 추론을 실행하세요 — 캐시 없이 처음으로 모델을 컴파일하는 경우 추론 전에 컴파일이 수행됩니다:

Anaconda 배포

Anaconda 환경 설정

TRT 컨테이너를 Anacondaarrow-up-right 또는 Minicondaarrow-up-right에서 실행하려면 conda 환경을 만들고 Docker를 설치해야 합니다. 환경을 생성하려면 Anaconda 터미널 내에서 아래 명령을 사용합니다.

Anaconda 환경에 Docker 설치

Docker는 Docker Desktoparrow-up-right 을 통해 다운로드 및 실행할 수 있고, 또는 conda-forge를 통해 설치할 수 있습니다. 아래 코드는 Anaconda의 패키지 매니저를 사용하여 Docker를 설치합니다.

Anaconda 환경 내에서 Docker 컨테이너 실행

Docker Desktop을 설치한 경우 컨테이너에 접근하려면 Docker Desktop이 실행 중인지 확인하세요. Docker Desktop을 다운로드하지 않은 경우 이전의 conda-forge 설치 과정

을 통해 데몬 버전의 Docker에 접근할 수 있어야 합니다.

엔진 컴파일 및 추론 실행

docker run --gpus all -p 9001:9001 roboflow/inference-server-trt:latest

pybase64 encode your_img.jpg | curl -d @- "http://localhost:9001/[YOUR MODEL]/[YOUR VERSION]?api_key=[YOUR API KEY]"

Windows Subsystem 배포

Microsoft Store에서 Ubuntu 다운로드

Windows에서 TRT 컨테이너를 실행하려는 경우 Anaconda 외에 선택할 수 있는 방법으로 WSL2가 있습니다. Windows Subsystem for Linux는 Windows 10 이상 환경에서 터미널을 통해 Ubuntu를 비동기적으로 실행할 수 있게 합니다. Microsoft Store에서 Ubuntu 20.04.5를 무료로 찾아 다운로드할 수 있습니다. 설치 후에는 Windows 검색창에 Ubuntu를 입력하여 WSL2를 실행하세요.

Microsoft Store에서 WSL2 설치

WSL2에 Docker 설치(선택 사항) Docker Desktoparrow-up-right Ubuntu 20.04.5 LTS에는 Docker가 설치되어 있어야 하지만 설치되어 있지 않은 경우 Ubuntu에 Docker를 설치하기 위한 유용한 명령들이 아래에 있습니다. Anaconda 설치와 유사하게, Docker를 설치할 필요를 우회하기 위해arrow-up-right

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

엔진 컴파일 및 추론 실행

WSL2 환경에 Docker를 성공적으로 설치한 후 TRT 컨테이너를 실행할 수 있습니다. 컨테이너를 실행하려면 아래 명령을 사용하여 포트 9001에서 추론을 수신하도록 시작합니다. sudo docker run --gpus all -p 9001:9001 roboflow/inference-server-trt:latest 이제 GPU TRT 컨테이너가 Docker에서 실행 중입니다. 다른 Ubuntu 터미널을 열어 Docker 컨테이너로 추론 데이터를 보낼 준비를 합니다. 다음을 사용하세요: ls

cd

추론을 실행하려는 이미지의 위치로 이동한 다음 아래 명령을 사용하세요.

처음 추론하는 경우 모델이 컴파일되는 데 시간이 걸립니다. 모델이 빌드된 후의 추론은 더 빠릅니다.

확장 기능

모델 캐싱

모델을 오프라인으로 캐시하려면 먼저 도커 볼륨을 생성하세요: docker volume create roboflow 그런 다음, 도커 볼륨을

디렉토리에 마운트하여 서버를 시작하세요:

sudo docker run --gpus all -p 9001:9001 --network="host" --mount source=roboflow,target=/cache roboflow/inference-server-trt:latest

Roboflow TRT Docker 컨테이너 사용 예제를 빠르게 확인할 수 있는 리포지토리를 만들었습니다. 시작하려면 아래 git clone 명령으로 docker compose 템플릿을 다운로드하세요. 여기.

git clone https://github.com/roboflow/trt-demos.git

이 예제에서는 로드 밸런서를 사용해 8개의 GPU를 실행하도록 도커를 구성했습니다. 8개 미만의 GPU를 실행해야 하는 경우에 대해서는 여기arrow-up-right.

로드 밸런서 도커 컨테이너를 빌드하려면 아래 명령을 사용하세요. 사용 중인 로드 밸런서에 대한 추가 정보가 필요하면 해당 정보를

docker build . -t lb

docker-compose.yaml 파일의 서비스 이름이 .conf/roboflow-nginx.conf 파일에 올바르게 반영되어 있는지 확인한 후 docker compose를 실행하세요.

docker-compose up

이제 Docker는 볼륨과 포트를 로드 밸런서와 공유하는 여러 GPU 컨테이너를 시작해야 합니다. 이렇게 하면 로드 밸런서가 각 컨테이너의 처리량을 관리하여 최적의 속도를 유지할 수 있습니다. Docker Desktop에서 실행 중이라면 성공적인 부팅은 대략 다음과 같아야 합니다.

추론 실행

# Anaconda 배포

# Windows Subsystem Linux

Docker Compose 파일 구성

device_ids: ['1']

<계속>

location / { proxy_pass http://myapp1;.

이 두 파일을 변경한 후에는 docker-compose 튜토리얼을

계속 진행(로드 밸런서 빌드)할 수 있어야 합니다 TRT 컨테이너에서 Multi-Stream 사용하기 경우에 따라 동일한 TRT 컨테이너에서 동일한 GPU로 병렬 처리하려는 여러 카메라 스트림이 있을 수 있습니다. TRT 컨테이너에서 여러 모델 서비스를 실행하려면

--env NUM_WORKERS=[원하는 num_workers]

NVIDIA V100에서는 2–4개의 워커가 최적의 지연 시간을 제공하는 것으로 나타났습니다.

NVIDIA V100에서 Roboflow Accurate 모델에 대한 TRT 멀티스트림 벤치마크 통계 TRT 컨테이너에서 GPU 장치 ID 노출하기특정 경우 TRT 컨테이너를 특정 GPU 또는 vGPU에서 실행하려면 다음을 지정할 수 있습니다:

CUDA_VISIBLE_DEVICES=[원하는 GPU 또는 MIG ID]

\

먼저 요청에 올바른 모델 버전 요청 매개변수가 포함되어 있는지 확인하세요:

프로젝트 정보 찾기 최신 컨테이너가 풀(Pull)되었는지 재확인하세요:\

sudo docker pull roboflow/inference-server-trt:latest

캐시 볼륨을 사용하는 경우 비우세요:

sudo docker volume rm roboflow

docker run --gpus all -it ubuntu nvidia-smi

sudo docker volume create roboflow

Last updated

Was this helpful?