Transformers documentation

Kernels

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kernels

Las operaciones de PyTorch son de uso general. Los fabricantes de hardware y la comunidad crean implementaciones especializadas que se ejecutan más rápido en plataformas específicas. Instalar estos kernels optimizados es un desafío porque requiere coincidir con las versiones del compilador, los toolkits de CUDA y las compilaciones específicas de la plataforma.

plataformadispositivos compatibles
GPUs de NVIDIA (CUDA)Arquitecturas modernas con capacidad de cómputo 7.0+ (Volta, Turing, Ampere, Hopper, Blackwell)
GPUs de AMD (ROCm)Compatible con dispositivos compatibles con ROCm
Apple Silicon (Metal)Chips de la serie M (M1, M2, M3, M4 y más nuevos)
GPUs de Intel (XPU)Intel Data Center GPU Max Series y dispositivos compatibles

Kernels resuelve esto distribuyendo binarios precompilados a través del Hub. Detecta tu plataforma en tiempo de ejecución y carga el binario adecuado automáticamente.

Cuando use_kernels=True, Transformers identifica las capas con implementaciones de kernel optimizadas disponibles. Descarga y almacena en caché los kernels desde el Hub solo cuando es necesario para reducir el tiempo de inicio. Los kernels aceleran operaciones intensivas de cálculo, como la atención, la normalización y las operaciones fusionadas.

No todas las operaciones tienen implementaciones de kernel. La biblioteca recurre a PyTorch estándar cuando no hay un kernel disponible.

Determinismo

Algunos núcleos producen resultados ligeramente diferentes a los de PyTorch debido al reordenamiento de operaciones o a las estrategias de acumulación. Estas diferencias son funcionalmente equivalentes, pero afectan la reproducibilidad.

Para un comportamiento determinista, prueba lo siguiente.

  • Consulte la documentación del repositorio de kernels para conocer las garantías de determinismo. Por ejemplo, el kernel SDPA en gpt-oss-metal-kernels coincide con la implementación de PyTorch el 97% de las veces.
  • Desactiva los kernels específicos que afectan a tu caso de uso.
  • Establecer semillas aleatorias y banderas deterministas de PyTorch.

Recursos

Update on GitHub