Erste Schritte mit GPU-betriebenem Milvus: 10-mal höhere Leistung freischalten

Sep 29, 20234 min read

Sind Sie bereit, Ihre Vektorsuche mit GPU-Beschleunigung zu verbessern? Milvus 2.3, die neueste Version von Milvus, unterstützt offiziell NVIDIA A100 GPUs und bietet eine 10-fache Steigerung des Durchsatzes sowie erhebliche Reduzierungen der Latenz. Dieser Blogbeitrag wird die Beweggründe hinter dieser strategischen Innovation beleuchten und Ihnen zeigen, wie Sie mit der Milvus GPU-Version beginnen.

Warum führt Milvus GPU-Unterstützung ein?

Vektordatenbanken spielen eine entscheidende Rolle beim groß angelegten Datenabruf und bei der Ähnlichkeitssuche. Herkömmliche CPU-basierte Indexierungsstrategien haben jedoch Schwierigkeiten, mit der steigenden Nachfrage nach hoher Leistung und niedriger Latenz Schritt zu halten, insbesondere mit dem Aufkommen von Large Language Models (LLMs) wie GPT-3. Das Milvus-Team erkannte die potenzielle Synergie zwischen Milvus und NVIDIA GPUs und beschloss, GPU-Unterstützung in Milvus 2.3 einzuführen.

Dank der Unterstützung des NVIDIA-Teams (Besonderer Dank gilt @wphicks und @cjnolet von NVIDIA für ihre wertvollen Beiträge zum RAFT-Code) ist GPU-Unterstützung in Milvus Realität geworden, wodurch es möglich ist, riesige Datensätze schnell und effizient zu durchsuchen und die KI-Landschaft zu erweitern.

Erste Schritte mit der Milvus GPU-Version

Tauchen wir in die Schritte ein, um Ihre Reise mit der Milvus GPU-Version zu starten.

CUDA-Treiber installieren

Stellen Sie zuallererst sicher, dass Ihr Host-Rechner Ihre NVIDIA GPU erkennt. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen:

lspci

Sie können loslegen, wenn Sie das Feld "NVIDIA" in der Geräteausgabe sehen. Unten ist das Ergebnis meines Geräts, das eine NVIDIA T4-Grafikkarte erkennt.

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 

Installieren Sie als Nächstes die erforderlichen CUDA-Treiber. Den passenden Treiber für Ihr System finden Sie auf der NVIDIA-Website.

Wenn Sie beispielsweise das Betriebssystem (OS) Ubuntu Linux 20.04 verwenden, können Sie den Treiber herunterladen und installieren, indem Sie die folgenden Befehle ausführen:

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

Hinweis:

  1. Sie können den CUDA-Installationsschritt überspringen, wenn Ihr Host-Rechner keine CUDA-Treiber benötigt.

  2. Die erforderliche Mindesttreiberversion hängt von Ihrem GPU-Typ ab:

  • Professionelle GPUs der NVIDIA Tesla-Serie: >=450.80.02

  • Gaming-GPUs: >=520.61.05

Nach der Installation des Treibers müssen Sie das System neu starten, damit er wirksam wird. Sobald der Neustart abgeschlossen ist, können Sie fortfahren, indem Sie den folgenden Befehl eingeben:

nvidia-smi

Hinweis: Das Milvus GPU-Image unterstützt NVIDIA-Grafikkarten mit Compute Capability 6.1, 7.0, 7.5 und 8.0.

Milvus GPU-Konfiguration

Die Milvus-GPU-Version unterstützt standardmäßig nur einen einzelnen Milvus-Prozess und eine einzelne GPU. Sie können mehrere Milvus-Prozesse oder Container ausführen und die Umgebungsvariable CUDA_VISIBLE_DEVICES setzen, um mehrere GPUs zu nutzen.

  • In einem Container können Sie diese Umgebungsvariable mit -e setzen:
sudo docker run --rm -e NVIDIA_VISIBLE_DEVICES=3 milvusdb/milvus:v2.3.0-gpu-beta
  • Sie können diese Umgebungsvariable in Docker Compose mithilfe des Felds device_ids setzen. Weitere Informationen finden Sie unter GPU-Zugriff mit der Docker Compose Documentation.

Hinweis:

  1. Selbst wenn Sie mehrere Grafikkarten für einen einzelnen Milvus-Prozess oder Container konfigurieren, kann Milvus nur eine davon nutzen.

  2. Sie können die Leistung durch Anpassen von Umgebungsvariablen wie KNOWHERE_STREAMS_PER_GPU (für CUDA-Stream-Parallelität) und KNOWHERE_GPU_MEM_POOL_SIZE (für die Größe des GPU-Speicherpools) feinabstimmen.

  3. Wir empfehlen dringend, Ihre Umgebungsvariable anzupassen, wenn Sie zwei Milvus-Prozesse auf einer einzelnen Grafikkarte bereitstellen. Andernfalls kann es bei Milvus aufgrund von Speicherkonkurrenz zu Abstürzen kommen.

Milvus-GPU-Version lokal erstellen

Bevor Sie Milvus lokal erstellen, stellen Sie sicher, dass Sie die erforderlichen Abhängigkeiten installiert haben.

  • CUDA Toolkit
sudo apt install --no-install-recommends cuda-toolkit
  • Python 3, pip, libopenblas-dev, libtbb-dev und pkg-config:
sudo apt install python3-pip libopenblas-dev libtbb-dev pkg-config
  • Conan, ein C/C++-Paketmanager:
pip3 install conan==1.59.0 --userexpoprt PATH=$PATH:~/.local/bin

Nachdem Sie alle erforderlichen Tools installiert haben, erstellen Sie die Milvus-GPU-Version mit dem folgenden Befehl:

make milvus-gpu

Milvus ausführen

Starten Sie Milvus im Standalone-Modus, indem Sie den folgenden Befehl ausführen:

cd binsudo ./milvus run standalone

Wenn Sie Containerisierung bevorzugen, können Sie die bereitgestellte Datei docker-compose.yml für die Bereitstellung verwenden.

docker-compose up -d

Fazit

Die Einführung der GPU-Unterstützung in Milvus 2.3 eröffnet spannende Möglichkeiten zur Beschleunigung der Leistung von Vektordatenbanken. Mit NVIDIA A100 GPUs, die Ihnen zur Verfügung stehen, können Sie bemerkenswerte Verbesserungen sowohl beim Durchsatz als auch bei der Latenz erzielen, was es zu einer überzeugenden Wahl für datenintensive Anwendungen und KI-Workloads macht.

Aktualisiert am Jul 09, 2026