You are viewing main version, which requires installation from source. If you'd like
regular pip install, checkout the latest stable version (v5.22.2).
内核
PyTorch 操作是通用的。硬件厂商和社区会创建针对特定平台运行速度更快的专用实现。安装这些优化内核是一项挑战,因为它需要匹配编译器版本、CUDA 工具包以及特定平台的构建。
| 平台 | 支持的设备 |
|---|---|
| NVIDIA GPU(CUDA) | 计算能力 7.0 及以上的现代架构(Volta、Turing、Ampere、Hopper、Blackwell) |
| AMD GPU(ROCm) | 兼容支持 ROCm 的设备 |
| Apple Silicon(Metal) | M 系列芯片(M1、M2、M3、M4 及更新版本) |
| Intel GPU(XPU) | Intel 数据中心 GPU Max 系列及兼容设备 |
Kernels 通过 Hub 分发预编译的二进制文件来解决此问题。它会在运行时检测您的平台,并自动加载相应的二进制文件。
当 use_kernels=True 时,Transformers 会识别具有可用优化内核实现的层。仅在需要时从 Hub 下载并 缓存 内核,以减少启动时间。内核可加速注意力、归一化及融合操作等计算密集型操作。
并非所有操作都有内核实现。当没有可用的内核时,该库会回退到标准 PyTorch。
确定性
某些内核由于操作重排序或累加策略,产生的结果与 PyTorch 略有不同。这些差异在功能上是等价的,但会影响可复现性。
如需实现确定性行为,请尝试以下操作。
- 请查阅内核仓库的文档以了解确定性保证。例如,gpt-oss-metal-kernels 中的 SDPA 内核在 97% 的情况下与 PyTorch 实现的结果一致。
- 禁用影响您使用场景的特定内核。
- 设置随机种子和 PyTorch 确定性标志。
资源
- 参考 加载内核 指南开始入门
- Kernels GitHub 仓库
- 使用 Hugging Face Kernel Hub 在 5 分钟内增强您的模型 博客文章