Como parte do #OPensourceWeek em andamento, a Deepseek anunciou o lançamento da DeepGemm, uma biblioteca de ponta projetada para multiplicações eficientes da Matrix Geral Matrix (GEMMs). Esta biblioteca é adaptada para suportar as gemms densas e de mixagem (MOE), tornando-a uma ferramenta poderosa para treinamento e inferência V3/R1. Com o DeepGemm, pretendemos ultrapassar os limites do desempenho e da eficiência nas cargas de trabalho da IA, promovendo nosso compromisso de promover a inovação de código aberto no campo.
Este lançamento marca o dia 3 de nossas celebrações da semana de código aberto, após os lançamentos bem -sucedidos de Deepseek flashml no dia 1 e Deepseek Deepp no dia 2.
O que é Gemm?
A multiplicação geral da matriz (GEMM) é uma operação que leva duas matrizes e as multiplica armazenando o resultado em uma terceira matriz. É uma operação elementary na álgebra linear, amplamente utilizada em várias aplicações. Sua fórmula é

O GEMM é elementary para otimizar o desempenho dos modelos. É particularmente útil no aprendizado profundo, onde é usado principalmente no treinamento e inferência de redes neurais.
Esta imagem mostra GEMM (multiplicação geral da matriz), mostrando as matrizes A, B e o C. resultante destaca a ladrilhos, dividindo matrizes em blocos menores (mtil, ntile, ktile) para uso de cache otimizado. Os azulejos azuis e amarelos ilustram o processo de multiplicação, contribuindo para o azulejo verde “block_m, n” em C. Essa técnica melhora o desempenho, aprimorando a localidade de dados e o paralelismo.
O que é FP8?
FP8, ou ponto flutuante de 8 bits, é um formato projetado para computação de alto desempenho, que permite precisão reduzida e representação eficiente de dados numéricos com valores reais. Enormes conjuntos de dados podem resultar em alta sobrecarga computacional em aplicativos de aprendizado de máquina e aprendizado profundo, é aqui que o FP8 desempenha um papel important, reduzindo a complexidade computacional.
O formato FP8 normalmente consiste em:
- 1 bit de sinal
- 5 bits de expoente
- 2 bits de fração
Essa representação compacta permite cálculos mais rápidos e uso reduzido de memória, tornando -o ultimate para treinar grandes modelos em {hardware} moderno. O trade-off é uma perda potencial de precisão, mas em muitos cenários de aprendizado profundo, essa perda é aceitável e pode até levar a um melhor desempenho devido à redução da carga computacional.
Esta imagem ilustra formatos FP8 (ponto flutuante de 8 bits), especificamente E4M3 e E5M2, juntamente com FP16 e BF16 para comparação. Ele mostra como as representações do FP8 alocam bits para sinal, expoente e Mantissa, afetando a precisão e o alcance. O E4M3 usa 4 bits de expoente e 3 bits Mantissa, enquanto o E5M2 usa 5 e 2, respectivamente. A imagem destaca as compensações em precisão e alcance entre diferentes formatos de ponto flutuante, com o FP8 oferecendo precisão reduzida, mas menor pegada de memória.
Necessidade de DeepGemm
O DeepGEMM aborda os desafios na multiplicação da matriz, fornecendo uma biblioteca leve e de alto desempenho, fácil de usar e flexível o suficiente para lidar com uma variedade de operações da GEMM.
- Atende a uma necessidade crítica: DeepGemm preenche uma lacuna na comunidade de IA, fornecendo gemm FP8 otimizado.
- Alto desempenho e leve: Oferece computação rápida com uma pequena pegada de memória.
- Suporta layouts densos e moe: É versátil, lidando com arquiteturas de modelos padrão e de mistura de especialistas.
- Essencial para a IA em larga escala: Sua eficiência é essential para o treinamento e a execução de modelos de IA complexos.
- Otimiza as arquiteturas MOE: DeepGemm implementa tipos especializados em GEMM (grupos contíguos, mascarados) para eficiência MOE.
- Aumenta os modelos de Deepseek: Melhora diretamente o desempenho dos modelos de IA da Deepseek.
- Beneficia o ecossistema international de IA: Ao oferecer uma ferramenta altamente eficiente, ela ajuda os desenvolvedores da IA em todo o mundo.
Principais características de DeepGemm
DeepGemm se destaca com seus recursos impressionantes:
- Alto desempenho: atingindo até 1350 mais de TFLOPS FP8 nas GPUs NVIDIA Hopper, o DeepGEMM é otimizado para velocidade e eficiência.
- Design leve: a biblioteca não possui dependências pesadas, tornando -a tão limpa e direta quanto um tutorial. Esse método simplifica o processo, garantindo que o foco permaneça na funcionalidade principal sem a distração de configurações elaboradas.
- Compilação just-in-time: a abordagem de Deepgemm, compilação totalmente just-in-time (JIT), compila todos os kernels no tempo de execução, oferecendo uma experiência de usuário simplificada. Ao evitar os meandros de configurações complexas, os usuários podem se concentrar na implementação actual.
- Lógica do núcleo concisa: com a lógica do núcleo compreendendo aproximadamente 300 linhas de código, o DeepGEMM supera muitos kernels ajustados para especialistas em uma ampla gama de tamanhos de matriz. Esse design compacto não apenas facilita a compreensão e a modificação mais fácil, mas também garante alta eficiência.
- Suporte a diversos layouts: a biblioteca suporta layouts densos e dois tipos de layouts de MOE, atendendo a diferentes necessidades computacionais.
Métricas de desempenho
DeepGemm foi rigorosamente testado em várias formas da matriz, demonstrando acelerações significativas em comparação com as implementações existentes. Abaixo está um resumo das métricas de desempenho:
M | N | Ok | Computação | Largura de banda de memória | Aceleração |
---|---|---|---|---|---|
64 | 2112 | 7168 | 206 TFLOPS | 1688 GB/S. | 2.7x |
128 | 7168 | 2048 | 510 TFLOPS | 2277 GB/S. | 1.7x |
4096 | 4096 | 7168 | 1304 TFLOPS | 500 GB/S. | 1.1x |
Tabela 1: Métricas de desempenho mostrando a eficiência de DeepGemm em várias configurações.
Guia de instalação
Introdução a DeepGemm é direta. Aqui está um guia rápido para instalar a biblioteca:
Etapa 1: Pré -requisitos
- Hopper Structure GPUs (SM_90A)
- Python 3.8 ou acima
- CUDA 12.3 ou acima (recomendado: 12.8 ou superior)
- Pytorch 2.1 ou acima
- Cutlass 3.6 ou acima (pode ser clonado como um submódulo Git)
Etapa 2: Clone the DeepGemm Repository
Run
git clone --recursive (e-mail protected):deepseek-ai/DeepGEMM.git
Etapa 3: instale a biblioteca
python setup.py set up
Etapa 4: importar DeepGemm em seu projeto Python
import deep_gemm
Para obter instruções detalhadas de instalação e informações adicionais, visite o DeepGemm Github repositório.
Conclusão
DeepGemm se destaca como uma poderosa biblioteca FP8 GEMM, conhecida por sua velocidade e facilidade de uso, tornando -o um ótimo ajuste para enfrentar os desafios das tarefas avançadas de aprendizado de máquina. Com seu design leve, execução rápida e flexibilidade para trabalhar com diferentes layouts de dados, o DeepGemm é uma ferramenta preferida para desenvolvedores em todos os lugares. Esteja você trabalhando em treinamento ou inferência, esta biblioteca é construída para simplificar fluxos de trabalho complexos, ajudando pesquisadores e profissionais a ultrapassar os limites do que é possível na IA.
Fique ligado para Analytics Vidhya Weblog Para nossa análise detalhada sobre o lançamento do DeepSeek Day 4!