A DeepSeek publicou uma versão Ascend de sua biblioteca de kernels DeepGEMM para desenvolvedores que trabalham com os NPUs da série 950 da Huawei. O README do repositório indica 30 de setembro de 2026 como data do lançamento inicial; o pacote Python se identifica como versão 0.1.0. Ele oferece às equipes um ponto de partida de código aberto para multiplicação de matrizes e operações relacionadas a modelos nesse hardware. Até agora, os números de desempenho vêm dos próprios testes da DeepSeek.

O lançamento é relevante para engenheiros que avaliam uma pilha de software Ascend porque expõe o código-fonte dos kernels e pontos de entrada conhecidos do DeepGEMM, além de documentar como compilar a extensão. O desempenho de modelos completos e o custo operacional ainda precisam ser testados com cargas de trabalho no sistema previsto.

O que o lançamento inclui

O DeepGEMM é uma biblioteca para as operações matriciais usadas repetidamente em modelos de IA. O README do Ascend lista kernels GEMM BF16, FP8 e FP4, operações agrupadas para modelos de mistura de especialistas, logits MQA, uma operação MegaMoE fundida e um kernel mHC prenorm. As exportações do pacote Python mostram funções GEMM densas e agrupadas, funções MQA, auxiliares de layout de fatores de escala e controles de compilação JIT e uso de AI core. O repositório está sob a licença MIT.

A DeepSeek afirma que a versão Ascend é totalmente compatível em nível de API com o DeepGEMM upstream. O mesmo deep_gemm nome de pacote e boa parte da interface pública podem facilitar a migração de código, mas o README aponta uma diferença importante no layout dos dados: o Ascend agrupa cada par de fatores de escala UE8M0 ao longo de K em um valor de 16 bits int16 e armazena os valores agrupados na ordem MN-major. O pacote exporta funções para converter os fatores de escala para o layout exigido. Uma aplicação que use entradas quantizadas ainda precisa fornecer dados adequados e validar seus próprios resultados; a compatibilidade é uma afirmação dos mantenedores, não um teste de migração feito pela BIG CHANGE.

O que um desenvolvedor precisa para experimentar

Os requisitos documentados são um NPU Ascend, CANN 9.20 com bisheng e ld.lld como ferramentas, torch_npu, Python 3.10 ou posterior e um compilador e uma biblioteca padrão compatíveis com C++20 <format>. Os mantenedores dizem que o desenvolvimento e a validação ocorreram na série Ascend 950. tilelang é declarado como dependência do pacote para o kernel HC prenorm; tree-sitter e tree-sitter-cpp são necessários para gerar stubs de tipos ao compilar a partir do código-fonte. O README não fixa uma versão do torch_npu nem comprova validação em outros dispositivos Ascend.

O README orienta os desenvolvedores a clonar o repositório com seus submódulos e compilar a extensão C++ por meio de develop.sh, ou instalá-la a partir do código-fonte obtido com pip install . --no-build-isolation. Sua configuração de build importa torch e torch_npu, localiza o kit de ferramentas Ascend por meio de ASCEND_HOME_PATH ou ASCEND_TOOLKIT_HOME e vincula as bibliotecas Ascend e Torch NPU. Portanto, avaliar os kernels exige o hardware e a cadeia de ferramentas adequados. O repositório inclui testes das operações. A BIG CHANGE examinou a documentação e o código, mas não executou o build nem os kernels.

Até onde vão os benchmarks

A DeepSeek relata medições em um Ascend 950DT com CANN 9.20, usando bench_msprof com o cache L2 frio. Para uma forma de multiplicação matricial BF16 densa, M=4096, N=7168 e K=16384, sua tabela de desempenho registra 2.229,9 microssegundos, 431 TFLOPS e 99,8% do limite de hardware indicado na própria tabela. Na mesma forma, relata 1.117,6 microssegundos e 861 TFLOPS para FP8×FP8. São medições de kernels em tipos e formas específicos, não medições de throughput de modelos. A tabela também apresenta resultados de GEMM agrupado, MQA, MegaMoE e prenorm em configurações próprias; os valores de MegaMoE são médias com oito ranks, paralelismo de especialistas de oito, roteamento top-k de seis e um especialista compartilhado.

O código de teste compara as saídas de GEMM com referências geradas e usa uma verificação cruzada ACLNN nos casos densos compatíveis. Para algumas formas e receitas, ele ignora explicitamente essa comparação ACLNN suplementar. O código e os testes publicados permitem examinar as afirmações, mas a BIG CHANGE não reproduziu os números do README de forma independente. O lançamento não oferece um benchmark em condições equivalentes com outra pilha de aceleradores, uma comparação de custos nem um resultado de serviço de ponta a ponta.

A principal mudança

A DeepSeek lançou o código dos kernels DeepGEMM Ascend para a série Ascend 950.

Os desenvolvedores podem inspecionar e compilar operações GEMM conhecidas e operações relacionadas a modelos para esse hardware. O lançamento documenta o CANN 9.20 e um layout de fatores de escala específico do Ascend.

Equipes com Ascend 950 agora têm código de kernel para avaliar com as formas de seus próprios modelos. A DeepSeek relata resultados próximos do limite em uma configuração de teste Ascend 950DT; a BIG CHANGE não executou os kernels.

O desempenho de aplicações completas, o suporte a outros dispositivos Ascend e o custo operacional ainda precisam ser estabelecidos.

Fontes e leituras adicionais

  • Repositório e README do DeepGEMM Ascend: nota de lançamento de 30 de setembro, pré-requisitos, afirmações sobre interfaces e tabelas de benchmark produzidas pelo projeto. O README é uma fonte primária dos mantenedores do projeto, não uma validação independente.
  • Exportações do pacote e configuração de build: versão, funções públicas de Python, dependências declaradas e vínculo do build a partir do código-fonte no commit inicial.
  • Harness de testes GEMM: como o repositório verifica as saídas e chama o profiler, inclusive as condições em que uma comparação ACLNN é ignorada. Esses arquivos não reproduzem de forma independente os números publicados.