openxla/tokamax
Tokamax: A GPU and TPU kernel library.
해결하는 문제
Tokamax는 NVIDIA GPU와 Google TPU용 고성능 맞춤형 가속기 커널을 제공하여 일반적인 딥러닝 연산에 대한 저수준 최적화를 수동으로 구현할 필요를 줄입니다. 특히 현대 AI 모델에 핵심적인 Attention 및 정규화 연산에서 발생하는 성능 격차를 집중적으로 해결합니다.
작동 방식
JAX와 Pallas 위에 구축된 Tokamax는 특정 연산을 위한 최신 기술 커널을 구현합니다. 사용자는 특정 구현(예: Triton 또는 Mosaic)을 선택하거나, 커널 형태에 따라 가장 효율적인 것을 자동으로 선택할 수 있습니다. 성능을 극대화하기 위해, 특정 워크로드에 가장 적합한 설정을 탐색하는 자동 튜닝 시스템을 포함하며, 이 설정은 직렬화하여 재사용 가능해 수치 일관성을 보장합니다.
대상 사용자
JAX를 사용하여 GPU 및 TPU 하드웨어의 최대 성능을 끌어내기 위해 맞춤형 커널과 자동 튜닝을 필요로 하는 AI 연구자 및 엔지니어를 대상으로 설계되었습니다.
주요 특징
- 다중 가속기 지원: NVIDIA GPU와 Google TPU 모두에서 작동합니다.
- 사전 구축된 커널: FlashAttention, 게이트형 선형 유닛(SwiGLU), LayerNorm, RMSNorm, 혼합 전문가(Mixture of Experts, ragged_dot)의 최적화된 구현이 포함되어 있습니다.
- 자동 튜닝 도구: 가장 빠른 커널 설정을 자동으로 찾는 프레임워크를 제공하며, 사용자가 자체 자동 튜닝 탐색 공간을 정의할 수 있습니다.
- 하드웨어 벤치마킹: JAX의 파이썬 오버헤드를 우회하여 실제 가속기 실행 시간을 측정할 수 있는 유틸리티를 포함하며, CUPTI 프로파일러와 같은 도구를 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트