Premiers pas avec Milvus accéléré par GPU : débloquer des performances 10 fois supérieures
Êtes-vous prêt à améliorer votre recherche vectorielle grâce à l’accélération GPU ? Milvus 2.3, la dernière version de Milvus, prend officiellement en charge les GPU NVIDIA A100, offrant une augmentation de 10x du débit et des réductions significatives de la latence. Cet article de blog examinera les motivations derrière cette innovation stratégique et vous montrera comment démarrer avec la version GPU de Milvus.
Pourquoi Milvus introduit-il la prise en charge des GPU ?
Les bases de données vectorielles jouent un rôle crucial dans la récupération de données à grande échelle et la recherche par similarité. Cependant, les stratégies d’indexation traditionnelles basées sur le CPU peinent à suivre la demande croissante de hautes performances et de faible latence, en particulier avec l’essor des grands modèles de langage (LLM) comme GPT-3. Reconnaissant la synergie potentielle entre Milvus et les GPU NVIDIA, l’équipe Milvus a décidé d’introduire la prise en charge des GPU dans Milvus 2.3.
Grâce au soutien de l’équipe NVIDIA (remerciements particuliers à @wphicks et @cjnolet de NVIDIA pour leurs précieuses contributions au code RAFT), la prise en charge des GPU dans Milvus est devenue une réalité, permettant de rechercher rapidement et efficacement dans des jeux de données massifs et d’élargir le paysage de l’IA.
Bien démarrer avec la version GPU de Milvus
Plongeons dans les étapes pour commencer votre parcours avec la version GPU de Milvus.
Installation du pilote CUDA
Avant tout, assurez-vous que votre machine hôte reconnaît votre GPU NVIDIA. Vous pouvez le vérifier en exécutant la commande suivante :
lspci
Vous êtes prêt à continuer si vous voyez le champ "NVIDIA" dans la sortie du périphérique. Ci-dessous se trouve le résultat de mon périphérique, qui reconnaît une carte graphique 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
Ensuite, installez les pilotes CUDA nécessaires. Vous pouvez trouver le pilote approprié pour votre système sur le site web de NVIDIA.
Par exemple, si vous utilisez le système d’exploitation (OS) Ubuntu Linux 20.04, vous pouvez télécharger et installer le pilote en exécutant les commandes suivantes :
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
Remarque :
Vous pouvez ignorer l’étape d’installation de CUDA si votre machine hôte ne nécessite pas de pilotes CUDA.
La version minimale du pilote requise dépend de votre type de GPU :
GPU professionnels de la série NVIDIA Tesla : >=450.80.02
GPU gaming : >=520.61.05
Après avoir installé le pilote, vous devez redémarrer le système pour qu’il prenne effet. Une fois le redémarrage terminé, vous pouvez poursuivre en saisissant la commande suivante :
nvidia-smi
Remarque : L’image GPU de Milvus prend en charge les cartes graphiques NVIDIA avec une Compute Capability de 6.1, 7.0, 7.5 et 8.0.
Pour connaître la Compute Capability de votre GPU, consultez NVIDIA GPU Compute Capability.
Pour obtenir des instructions sur l’installation de NVIDIA Container Toolkit, reportez-vous à la documentation NVIDIA.
Configuration GPU de Milvus
La version GPU de Milvus ne prend en charge par défaut qu’un seul processus Milvus et un seul GPU. Vous pouvez exécuter plusieurs processus ou conteneurs Milvus et définir la variable d’environnement CUDA_VISIBLE_DEVICES pour utiliser plusieurs GPU.
- Dans un conteneur, vous pouvez définir cette variable d’environnement à l’aide de
-e:
sudo docker run --rm -e NVIDIA_VISIBLE_DEVICES=3 milvusdb/milvus:v2.3.0-gpu-beta
- Vous pouvez définir cette variable d’environnement dans un Docker Compose à l’aide du champ
device_ids. Consultez l’accès au GPU avec la documentation Docker Compose pour plus d’informations.
Remarque:
Même si vous configurez plusieurs cartes graphiques pour un seul processus ou conteneur Milvus, Milvus ne peut en utiliser qu’une seule.
Vous pouvez affiner les performances en ajustant des variables d’environnement comme
KNOWHERE_STREAMS_PER_GPU(pour la concurrence des flux CUDA) etKNOWHERE_GPU_MEM_POOL_SIZE(pour la taille du pool de mémoire GPU).Nous recommandons fortement d’ajuster votre variable d’environnement si vous déployez deux processus Milvus sur une seule carte graphique. Sinon, Milvus peut subir des plantages en raison de la concurrence pour la mémoire.
Compiler la version GPU de Milvus localement
Avant de compiler Milvus localement, assurez-vous d’avoir installé les dépendances nécessaires.
- CUDA Toolkit
sudo apt install --no-install-recommends cuda-toolkit
- Python 3, pip, libopenblas-dev, libtbb-dev et pkg-config:
sudo apt install python3-pip libopenblas-dev libtbb-dev pkg-config
- Conan, un gestionnaire de paquets C/C++:
pip3 install conan==1.59.0 --userexpoprt PATH=$PATH:~/.local/bin
CMake (>=3.23): consultez le dépôt APT Kitware pour plus de détails.
Golang: consultez la documentation Go pour plus de détails.
Après avoir installé tous les outils nécessaires, compilez la version GPU de Milvus à l’aide de la commande suivante:
make milvus-gpu
Exécuter Milvus
Démarrez Milvus en mode autonome en exécutant la commande suivante:
cd binsudo ./milvus run standalone
Si vous préférez la conteneurisation, vous pouvez utiliser le fichier docker-compose.yml fourni pour le déploiement.
docker-compose up -d
Conclusion
L’introduction de la prise en charge des GPU dans Milvus 2.3 ouvre des possibilités enthousiasmantes pour accélérer les performances des bases de données vectorielles. Avec des GPU NVIDIA A100 à votre disposition, vous pouvez obtenir des gains remarquables à la fois en débit et en latence, ce qui en fait un choix convaincant pour les applications gourmandes en données et les charges de travail d’IA.
Continuer à lire

Zilliz Cloud Delivers Better Performance and Lower Costs with Arm Neoverse-based AWS Graviton
Zilliz Cloud adopts Arm-based AWS Graviton3 CPUs to cut costs, speed up AI vector search, and power billion-scale RAG and semantic search workloads.

Creating Collections in Zilliz Cloud Just Got Way Easier
We've enhanced the entire collection creation experience to bring advanced capabilities directly into the interface, making it faster and easier to build production-ready schemas without switching tools.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.



