Buckets:

mishig's picture
|
download
raw
2.59 kB

Kernels

As operações do PyTorch são de uso geral. Os fornecedores de hardware e a comunidade criam implementações especializadas que rodam mais rápido em plataformas específicas. A instalação desses kernels otimizados é um desafio, pois exige a compatibilização de versões de compiladores, toolkits CUDA e builds específicos da plataforma.

plataforma dispositivos compatíveis
GPUs da NVIDIA (CUDA) Arquiteturas modernas com capacidade de computação 7.0+ (Volta, Turing, Ampere, Hopper, Blackwell)
GPUs AMD (ROCm) Compatível com dispositivos compatíveis com ROCm
Apple Silicon (Metal) Chips da série M (M1, M2, M3, M4 e mais novos)
GPUs da Intel (XPU) Intel Data Center GPU Max Series e dispositivos compatíveis

Kernels resolve isso distribuindo binários pré-compilados por meio do Hub. Ele detecta sua plataforma em tempo de execução e carrega automaticamente o binário adequado.

Quando use_kernels=True, o Transformers identifica camadas com implementações de kernel otimizadas disponíveis. Ele baixa e armazena em cache kernels do Hub apenas quando necessário, para reduzir o tempo de inicialização. Os kernels aceleram operações intensivas de computação, como atenção, normalização e operações fundidas.

Nem todas as operações possuem implementações de kernel. A biblioteca recorre ao PyTorch padrão quando nenhum kernel está disponível.

Determinismo

Alguns kernels produzem resultados ligeiramente diferentes dos do PyTorch devido à reordenação de operações ou a estratégias de acumulação. Essas diferenças são funcionalmente equivalentes, mas afetam a reprodutibilidade.

Para um comportamento determinístico, tente o seguinte.

  • Consulte a documentação do repositório de kernels para as garantias de determinismo. Por exemplo, o kernel SDPA em gpt-oss-metal-kernels corresponde à implementação do PyTorch 97% das vezes.
  • Desative kernels específicos que afetam seu caso de uso.
  • Defina as sementes aleatórias e as flags de determinismo do PyTorch.

Recursos

Xet Storage Details

Size:
2.59 kB
·
Xet hash:
89b79a1ce35dd7cf4cdb71bf98d6e9ca5a15a183ea8ba7aab19620487352ce84

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.