46.4kデモを予約するログイン無料で始める

GPUを搭載したMilvusを使い始める:10倍の性能を引き出す

Sep 29, 20231 min read

GPUアクセラレーションによるベクトル検索の強化の準備はお済みですか?Milvusの最新リリースであるMilvus 2.3は、NVIDIA A100 GPUを正式にサポートし、スループットを10倍向上させ、レイテンシを大幅に削減します。このブログポストでは、この戦略的革新の背後にある動機について掘り下げ、Milvus GPUバージョンで始める方法を紹介します。

なぜMilvusはGPUサポートを導入するのか?

ベクトルデータベースは、大規模なデータ検索や類似検索において重要な役割を果たしています。しかし、特にGPT-3のような大規模言語モデル(LLM)の台頭により、従来のCPUベースのインデックス作成ストラテジーは、高性能かつ低レイテンシへの要求の高まりに対応するための助けが必要です。Milvusチームは、MilvusとNVIDIA GPUの潜在的な相乗効果を認識し、Milvus 2.3でGPUサポートを導入することを決定しました。

NVIDIAチームのサポートのおかげで(RAFTコードに貴重な貢献をしてくれたNVIDIAの@wphicksと@cjnoletに感謝します)、MilvusのGPUサポートが現実のものとなり、膨大なデータセットを迅速かつ効率的に検索し、AIの展望を広げることが可能になりました。

Milvus GPUバージョンで始める

それでは、Milvus GPUバージョンであなたの旅を始めるためのステップに飛び込んでみましょう。

CUDA ドライバのインストール

何よりもまず、ホストマシンがNVIDIA GPUを認識していることを確認してください。以下のコマンドを実行することで確認できます:

lspci

デバイスの出力に "NVIDIA "フィールドがあればOKだ。下記は私のデバイスの結果で、NVIDIA T4グラフィックカードを認識している。

00:00.0 ホストブリッジ:Intel Corporation 440FX - 82441FX PMC [Natoma]00:01.0 ISA bridge:Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]00:01.3 非 VGA 非分類デバイス:Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)00:03.0 VGA 互換コントローラ:Amazon.com, Inc.デバイス 111100:04.0 不揮発性メモリコントローラ:Amazon.com, Inc.デバイス 806100:05.0 イーサネットコントローラ:Amazon.com, Inc.Elastic Network Adapter (ENA)00:1e.0 3Dコントローラ:NVIDIA Corporation TU104GL [Tesla T4] (rev a1)00:1f.0不揮発性メモリコントローラ:Amazon.com, Inc.NVMe SSDコントローラ

次に、必要な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

注意:

  1. ホストマシンがCUDAドライバを必要としない場合は、CUDAのインストールステップを省略できます。

  2. 必要なドライバの最小バージョンは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 グラフィックカードをサポートしています。

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を参照してください。

**注意

  1. 1つのMilvusプロセスまたはコンテナに複数のグラフィックカードを設定しても、Milvusは1つのグラフィックカードしか使用できません。

  2. KNOWHERE_STREAMS_PER_GPU(CUDAストリーム同時実行)やKNOWHERE_GPU_MEM_POOL_SIZE`(GPUメモリプールサイズ)などの環境変数を調整することで、パフォーマンスを微調整することができます。

  3. 3.1枚のグラフィックカードに2つのMilvusプロセスをデプロイする場合、環境変数を調整することを強く推奨します。そうしないと、Milvusがメモリ競合によりクラッシュする可能性があります。

ローカルでのMilvus GPUバージョンのビルド

Milvusをローカルにビルドする前に、必要な依存関係がインストールされていることを確認してください。

  • CUDAツールキット
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
  • Conan, C/C++ パッケージマネージャ:
pip3 install conan==1.59.0 --userexpoprt PATH=$PATH:~/.local/bin

必要なツールをすべてインストールしたら、以下のコマンドでMilvus GPU版をビルドします:

make milvus-gpu

Milvus の実行

以下のコマンドを実行してスタンドアロンモードでMilvusを起動する:

cd binsudo ./milvus run standalone

コンテナ化を希望する場合は、提供されている docker-compose.yml ファイルをデプロイに使用することができる。

docker-compose up -d

結論

Milvus2.3におけるGPUサポートの導入は、ベクトル・データベースのパフォーマンスを加速するためのエキサイティングな可能性を開きます。NVIDIA A100 GPUを自由に使用することで、スループットとレイテンシの両方で顕著な向上を達成することができ、データ集約型のアプリケーションやAIワークロードにとって魅力的な選択肢となります。

Updated on Jul 09, 2026