Introdução ao Milvus com GPU: desbloqueando desempenho 10x maior
Você está pronto para aprimorar sua busca vetorial com aceleração por GPU? Milvus 2.3, a versão mais recente do Milvus, oferece suporte oficial a GPUs NVIDIA A100, proporcionando um aumento de 10x na taxa de transferência e reduções significativas na latência. Esta postagem do blog vai se aprofundar nas motivações por trás dessa inovação estratégica e mostrar como começar com a versão GPU do Milvus.
Por que o Milvus introduz suporte a GPU?
Bancos de dados vetoriais desempenham um papel crucial na recuperação de dados em larga escala e na busca por similaridade. No entanto, estratégias tradicionais de indexação baseadas em CPU precisam de ajuda para acompanhar a crescente demanda por alto desempenho e baixa latência, particularmente com a ascensão de Grandes Modelos de Linguagem (LLMs), como o GPT-3. Reconhecendo a potencial sinergia entre o Milvus e as GPUs NVIDIA, a equipe do Milvus decidiu introduzir suporte a GPU no Milvus 2.3.
Graças ao suporte da equipe da NVIDIA (agradecimentos especiais a @wphicks e @cjnolet da NVIDIA por suas valiosas contribuições ao código RAFT), o suporte a GPU no Milvus se tornou uma realidade, tornando possível pesquisar de forma rápida e eficiente em enormes conjuntos de dados e expandir o cenário da IA.
Começando com a versão GPU do Milvus
Vamos nos aprofundar nas etapas para iniciar sua jornada com a versão GPU do Milvus.
Instalando o driver CUDA
Em primeiro lugar, certifique-se de que sua máquina host reconhece sua GPU NVIDIA. Você pode verificar isso executando o seguinte comando:
lspci
Você está pronto para prosseguir se vir o campo "NVIDIA" na saída do dispositivo. Abaixo está o resultado do meu dispositivo, que reconhece uma placa de vídeo 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
Em seguida, instale os drivers CUDA necessários. Você pode encontrar o driver apropriado para seu sistema no site da NVIDIA.
Por exemplo, se você usa o sistema operacional (SO) Ubuntu Linux 20.04, pode baixar e instalar o driver executando os seguintes comandos:
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
Observação:
Você pode pular a etapa de instalação do CUDA se sua máquina host não exigir drivers CUDA.
A versão mínima do driver necessária depende do tipo da sua GPU:
GPUs profissionais da série NVIDIA Tesla: >=450.80.02
GPUs para jogos: >=520.61.05
Após instalar o driver, você deve reiniciar o sistema para que ele entre em vigor. Assim que a reinicialização for concluída, você pode prosseguir inserindo o seguinte comando:
nvidia-smi
Observação: A imagem GPU do Milvus oferece suporte a placas de vídeo NVIDIA com Compute Capability 6.1, 7.0, 7.5 e 8.0.
Para saber a Compute Capability da sua GPU, visite NVIDIA GPU Compute Capability.
Para obter instruções sobre como instalar o NVIDIA Container Toolkit, consulte a documentação da NVIDIA.
Configuração de GPU do Milvus
A versão GPU do Milvus oferece suporte apenas a um único processo Milvus e a uma única GPU por padrão. Você pode executar vários processos ou contêineres Milvus e definir a variável de ambiente CUDA_VISIBLE_DEVICES para utilizar várias GPUs.
- Em um Contêiner, você pode definir essa variável de ambiente usando
-e:
sudo docker run --rm -e NVIDIA_VISIBLE_DEVICES=3 milvusdb/milvus:v2.3.0-gpu-beta
- Você pode definir essa variável de ambiente em um Docker Compose usando o campo
device_ids. Consulte o acesso à GPU com a Documentação do Docker Compose para obter mais informações.
Observação:
Mesmo que você configure várias placas gráficas para um único processo ou contêiner Milvus, o Milvus só pode utilizar uma.
Você pode ajustar o desempenho ajustando variáveis de ambiente como
KNOWHERE_STREAMS_PER_GPU(para simultaneidade de fluxos CUDA) eKNOWHERE_GPU_MEM_POOL_SIZE(para o tamanho do pool de memória da GPU).Recomendamos fortemente ajustar sua variável de ambiente se você implantar dois processos Milvus em uma única placa gráfica. Caso contrário, o Milvus pode sofrer falhas devido à competição por memória.
Criando a versão GPU do Milvus localmente
Antes de criar o Milvus localmente, certifique-se de ter instalado as dependências necessárias.
- CUDA Toolkit
sudo apt install --no-install-recommends cuda-toolkit
- Python 3, pip, libopenblas-dev, libtbb-dev e pkg-config:
sudo apt install python3-pip libopenblas-dev libtbb-dev pkg-config
- Conan, um gerenciador de pacotes C/C++:
pip3 install conan==1.59.0 --userexpoprt PATH=$PATH:~/.local/bin
CMake (>=3.23): consulte o Repositório APT da Kitware para obter mais detalhes.
Golang: consulte a documentação do Go para obter mais detalhes.
Depois de instalar todas as ferramentas necessárias, crie a versão GPU do Milvus usando o seguinte comando:
make milvus-gpu
Executando o Milvus
Inicie o Milvus no modo autônomo executando o seguinte comando:
cd binsudo ./milvus run standalone
Se você preferir a conteinerização, pode usar o arquivo docker-compose.yml fornecido para implantação.
docker-compose up -d
Conclusão
A introdução do suporte a GPU no Milvus 2.3 abre possibilidades empolgantes para acelerar o desempenho de bancos de dados vetoriais. Com GPUs NVIDIA A100 à sua disposição, você pode obter ganhos notáveis tanto em throughput quanto em latência, tornando-o uma escolha atraente para aplicações com uso intensivo de dados e cargas de trabalho de IA.
Continue lendo

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.

Why I’m Against Claude Code’s Grep-Only Retrieval? It Just Burns Too Many Tokens
Learn how vector-based code retrieval cuts Claude Code token consumption by 40%. Open-source solution with easy MCP integration. Try claude-context today.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.



