WoolyAI é um hipervisor agnóstico de hardware projetado para otimizar a infraestrutura de aprendizado de máquina (ML) ao permitir a execução contínua de aplicações PyTorch e CUDA não modificadas em ambientes heterogêneos de GPU, incluindo hardware NVIDIA e AMD. Ao abstrair as dependências de GPU, o WoolyAI melhora a utilização de recursos, simplifica os fluxos de trabalho de desenvolvimento e acelera a implantação de aplicações de ML sem a necessidade de modificações no código.
Principais Características e Funcionalidades:
- Execução CUDA entre Fornecedores: Utiliza compilação Just-In-Time (JIT) para executar aplicações PyTorch e CUDA não modificadas em clusters de GPU mistos, suportando GPUs NVIDIA e AMD.
- Desenvolvimento no Lado do CPU com Execução em GPU: Permite que os desenvolvedores construam e executem código PyTorch em estações de trabalho apenas com CPU, enquanto os kernels CUDA são executados em um pool centralizado de GPUs, mantendo os ambientes e ferramentas de desenvolvimento existentes.
- Contêiner CUDA Unificado: Fornece um único contêiner CUDA que opera sem problemas em GPUs NVIDIA e AMD, simplificando pipelines de CI/CD e reduzindo a necessidade de múltiplas imagens base.
- Gerenciamento Dinâmico de Recursos de GPU: Emprega alocação em tempo real de núcleos e memória de GPU, permitindo a execução simultânea de múltiplas cargas de trabalho de ML em uma única GPU sem particionamento estático ou divisão de tempo.
- Deduplicação de VRAM e Concorrência Multi-Adaptador: Compartilha pesos de modelo base na VRAM enquanto isola adaptadores, maximizando a eficiência de memória e a taxa de transferência para tarefas de avaliação e desenvolvimento.
Valor Principal e Problema Resolvido:
WoolyAI aborda os desafios de gerenciar infraestruturas de GPU diversificadas ao fornecer uma plataforma unificada que melhora a utilização de GPU, reduz a complexidade operacional e acelera a implantação de aplicações de ML. Elimina a necessidade de reescritas de código ao transitar entre diferentes fornecedores de GPU, suporta a execução simultânea de múltiplas cargas de trabalho em GPUs compartilhadas e oferece alocação dinâmica de recursos para atender a demandas variadas. Isso resulta em aumento de produtividade para equipes de operações de ML, escalonamento econômico de recursos de GPU e melhoria na consistência de desempenho em cargas de trabalho de ML.