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](https://huggingface.co/docs/kernels/index) resolve isso distribuindo binários pré-compilados por meio do [Hub](https://huggingface.co/kernels-community). 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](../installation#cache-directory) 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](https://huggingface.co/kernels-community/gpt-oss-metal-kernels#4-scaled-dot-product-attention-sdpa) 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
- guia [Carregando kernels](./loading_kernels) para começar
- Repositório do GitHub [Kernels](https://github.com/huggingface/kernels)
- post no blog [Reforce seus modelos em 5 minutos com o Hugging Face Kernel Hub](https://huggingface.co/blog/hello-hf-kernels)

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.