GPU 기반 Milvus 시작하기: 10배 더 높은 성능 활용하기
벡터 검색을 GPU 가속으로 향상시킬 준비가 되셨나요? Milvus의 최신 릴리스인 Milvus 2.3은 NVIDIA A100 GPU를 공식 지원하여 처리량을 10배 증가시키고 지연 시간을 크게 줄입니다. 이 블로그 게시물에서는 이러한 전략적 혁신의 동기를 자세히 살펴보고 Milvus GPU 버전을 시작하는 방법을 보여드립니다.
Milvus가 GPU 지원을 도입하는 이유는 무엇인가요?
벡터 데이터베이스는 대규모 데이터 검색 및 유사도 검색에서 중요한 역할을 합니다. 그러나 기존 CPU 기반 인덱싱 전략은 특히 GPT-3와 같은 대규모 언어 모델(LLM)의 부상으로 인해 고성능과 낮은 지연 시간에 대한 수요가 증가하는 상황을 따라잡는 데 어려움이 있습니다. Milvus와 NVIDIA GPU 간의 잠재적 시너지를 인식한 Milvus 팀은 Milvus 2.3에 GPU 지원을 도입하기로 결정했습니다.
NVIDIA 팀의 지원 덕분에(RAFT 코드에 귀중한 기여를 해주신 NVIDIA의 @wphicks와 @cjnolet에게 특별히 감사드립니다), Milvus의 GPU 지원이 현실이 되었으며, 대규모 데이터셋을 빠르고 효율적으로 검색하고 AI 환경을 확장할 수 있게 되었습니다.
Milvus GPU 버전 시작하기
Milvus GPU 버전으로 여정을 시작하는 단계를 살펴보겠습니다.
CUDA 드라이버 설치
무엇보다 먼저 호스트 머신이 NVIDIA GPU를 인식하는지 확인하세요. 다음 명령을 실행하여 이를 확인할 수 있습니다:
lspci
장치 출력에 "NVIDIA" 필드가 보이면 준비가 된 것입니다. 아래는 NVIDIA T4 그래픽 카드를 인식한 제 장치의 결과입니다.
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]00:01.3 Non-VGA unclassified device: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)00:03.0 VGA compatible controller: Amazon.com, Inc. Device 111100:04.0 Non-Volatile memory controller: Amazon.com, Inc. Device 806100:05.0 Ethernet controller: Amazon.com, Inc. Elastic Network Adapter (ENA)00:1e.0 3D controller: NVIDIA Corporation TU104GL [Tesla T4] (rev a1)00:1f.0 Non-Volatile memory controller: Amazon.com, Inc. NVMe SSD Controller
다음으로, 필요한 CUDA 드라이버를 설치합니다. 시스템에 적합한 드라이버는 NVIDIA 웹사이트에서 찾을 수 있습니다.
예를 들어 Ubuntu Linux 20.04 운영 체제(OS)를 사용하는 경우, 다음 명령을 실행하여 드라이버를 다운로드하고 설치할 수 있습니다:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.1-1_all.debsudo dpkg -i cuda-keyring_1.1-1_all.debsudo apt-get update
참고:
호스트 머신에 CUDA 드라이버가 필요하지 않은 경우 CUDA 설치 단계를 건너뛸 수 있습니다.
필요한 최소 드라이버 버전은 GPU 유형에 따라 다릅니다:
NVIDIA Tesla 시리즈 전문가용 GPU: >=450.80.02
게이밍 GPU: >=520.61.05
드라이버를 설치한 후에는 적용을 위해 시스템을 재시작해야 합니다. 재시작이 완료되면 다음 명령을 입력하여 진행할 수 있습니다:
nvidia-smi
참고: Milvus GPU 이미지는 Compute Capability 6.1, 7.0, 7.5 및 8.0을 갖춘 NVIDIA 그래픽 카드를 지원합니다.
GPU Compute Capability를 확인하려면 NVIDIA GPU Compute Capability를 방문하세요.
NVIDIA Container Toolkit 설치 지침은 NVIDIA 문서를 참조하세요.
Milvus GPU 구성
Milvus GPU 버전은 기본적으로 단일 Milvus 프로세스와 단일 GPU만 지원합니다. 여러 Milvus 프로세스 또는 컨테이너를 실행하고 CUDA_VISIBLE_DEVICES 환경 변수를 설정하여 여러 GPU를 활용할 수 있습니다.
- 컨테이너에서는
-e를 사용하여 이 환경 변수를 설정할 수 있습니다:
sudo docker run --rm -e NVIDIA_VISIBLE_DEVICES=3 milvusdb/milvus:v2.3.0-gpu-beta
- Docker Compose에서는
device_ids필드를 사용하여 이 환경 변수를 설정할 수 있습니다. 자세한 내용은 Docker Compose Documentation의 GPU access를 참조하세요.
참고:
단일 Milvus 프로세스 또는 컨테이너에 여러 그래픽 카드를 구성하더라도 Milvus는 하나만 활용할 수 있습니다.
KNOWHERE_STREAMS_PER_GPU(CUDA 스트림 동시성용) 및KNOWHERE_GPU_MEM_POOL_SIZE(GPU 메모리 풀 크기용)와 같은 환경 변수를 조정하여 성능을 세부적으로 조정할 수 있습니다.단일 그래픽 카드에 두 개의 Milvus 프로세스를 배포하는 경우 환경 변수를 조정할 것을 강력히 권장합니다. 그렇지 않으면 메모리 경쟁으로 인해 Milvus가 충돌할 수 있습니다.
Milvus GPU 버전 로컬 빌드
Milvus를 로컬에서 빌드하기 전에 필요한 종속성을 설치했는지 확인하세요.
- CUDA Toolkit
sudo apt install --no-install-recommends cuda-toolkit
- Python 3, pip, libopenblas-dev, libtbb-dev 및 pkg-config:
sudo apt install python3-pip libopenblas-dev libtbb-dev pkg-config
- C/C++ 패키지 관리자인 Conan:
pip3 install conan==1.59.0 --userexpoprt PATH=$PATH:~/.local/bin
CMake(>=3.23): 자세한 내용은 Kitware APT Repository를 참조하세요.
Golang: 자세한 내용은 Go documentation을 참조하세요.
필요한 모든 도구를 설치한 후 다음 명령을 사용하여 Milvus GPU 버전을 빌드하세요:
make milvus-gpu
Milvus 실행
다음 명령을 실행하여 standalone 모드로 Milvus를 시작하세요:
cd binsudo ./milvus run standalone
컨테이너화를 선호하는 경우 제공된 docker-compose.yml 파일을 사용하여 배포할 수 있습니다.
docker-compose up -d
결론
Milvus 2.3에 GPU 지원이 도입되면서 벡터 데이터베이스 성능을 가속화할 수 있는 흥미로운 가능성이 열렸습니다. NVIDIA A100 GPU를 활용하면 처리량과 지연 시간 모두에서 놀라운 향상을 달성할 수 있어, 데이터 집약적 애플리케이션과 AI 워크로드에 매력적인 선택이 됩니다.
계속 읽기

My Wife Wanted Dior. I Spent $600 on Claude Code to Vibe-Code a 2M-Line Database Instead.
Write tests, not code reviews. How a test-first workflow with 6 parallel Claude Code sessions turns a 2M-line C++ codebase into a daily shipping pipeline.

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Balancing Precision and Performance: How Zilliz Cloud's New Parameters Help You Optimize Vector Search
Optimize vector search with Zilliz Cloud’s level and recall features to tune accuracy, balance performance, and power AI applications.



