Transformers documentation
Ядра
Ядра
Операции PyTorch являются универсальными. Производители оборудования и сообщество создают специализированные реализации, которые работают быстрее на конкретных платформах. Установка этих оптимизированных ядер представляет собой сложную задачу, поскольку требует соответствия версий компиляторов, CUDA toolkits и платформенно-специфичных сборок.
| платформа | поддерживаемые устройства |
|---|---|
| NVIDIA GPU (CUDA) | Современные архитектуры с вычислительной мощностью 7.0+ (Volta, Turing, Ampere, Hopper, Blackwell) |
| Видеокарты AMD (ROCm) | Совместимо с устройствами, поддерживающими ROCm |
| Apple Silicon (Metal) | Чипы серии M (M1, M2, M3, M4 и новее) |
| Intel GPU (XPU) | Intel Data Center GPU Max Series и совместимые устройства |
Kernels решает эту проблему, распространяя предварительно скомпилированные бинарные файлы через Hub. Он определяет вашу платформу во время выполнения и автоматически загружает нужный бинарный файл.
При use_kernels=True Transformers определяет слои, для которых доступны оптимизированные реализации ядер. Ядра загружаются с Hub и кэшируются только при необходимости, чтобы сократить время запуска. Ядра ускоряют вычислительно сложные операции, такие как внимание, нормализация и объединённые операции.
Не для всех операций существуют реализации на уровне ядра. Если ядро недоступно, библиотека использует стандартный PyTorch.
Детерминизм
Некоторые ядра дают результаты, слегка отличающиеся от результатов PyTorch, из-за изменения порядка операций или стратегий накопления. Эти различия функционально эквивалентны, но влияют на воспроизводимость.
Для детерминированного поведения попробуйте следующее.
- См. документацию репозитория ядра для гарантий детерминизма. Например, ядро SDPA в gpt-oss-metal-kernels совпадает с реализацией PyTorch в 97% случаев.
- Отключите конкретные ядра, которые влияют на ваш сценарий использования.
- Установите случайные зерна и флаги детерминизма PyTorch.
Ресурсы
- руководство Загрузка ядер для начала работы
- Репозиторий Kernels на GitHub
- статья в блоге «Улучшите свои модели за 5 минут с помощью Hugging Face Kernel Hub»