Transformers documentation

커널

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).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

커널

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 Data Center GPU Max Series 및 호환 장치

Kernels은 Hub를 통해 사전 컴파일된 바이너리를 배포하여 이 문제를 해결합니다. 런타임에 플랫폼을 감지하고 올바른 바이너리를 자동으로 로드합니다.

use_kernels=True일 때, Transformers는 최적화된 커널 구현이 사용 가능한 레이어를 식별합니다. 시작 시간을 줄이기 위해 필요한 경우에만 Hub에서 커널을 다운로드하고 캐시합니다. 커널은 어텐션, 정규화, 퓨즈된 연산과 같이 계산 집약적인 연산을 가속화합니다.

모든 연산에 대해 커널 구현이 제공되지는 않습니다. 커널이 사용 불가능한 경우 라이브러리는 표준 PyTorch로 폴백됩니다.

결정론

일부 커널은 연산 순서 변경 또는 누적 전략으로 인해 PyTorch와 약간 다른 결과를 생성할 수 있습니다. 이러한 차이는 기능적으로 동등하지만 재현성에 영향을 미칩니다.

결정론적 동작을 위해 다음을 시도해 보세요.

  • 결정성 보장에 대해서는 커널 저장소 문서를 확인하세요. 예를 들어, gpt-oss-metal-kernels의 SDPA 커널은 PyTorch 구현과 97%의 경우 일치합니다.
  • 사용 사례에 영향을 미치는 특정 커널을 비활성화합니다.
  • random 시드와 PyTorch 결정론 플래그를 설정합니다.

리소스

Update on GitHub