HazyResearch/HipKittens

Fast and Furious AMD Kernels

해결하는 문제

HipKittens는 AMD GPU 전용으로 고성능 AI 커널을 작성할 수 있도록 도와주는 저수준 C++ 프로그래밍 원시(primitives) 세트를 제공합니다. AMD의 CDNA3 및 CDNA4 칩렛 아키텍처의 특정 아키텍처적 특징을 최적화함으로써, 다양한 하드웨어 플랫폼 간에 AI 소프트웨어를 효율적으로 이식할 수 있는 다중 실리콘 미래를 실현하는 도전 과제를 해결합니다.

작동 방식

이 라이브러리는 하드웨어에서부터 구축되어 있으며, 실질적으로 실리콘의 동작 방식에 초점을 맞춥니다. 다음과 같은 핵심 원시를 구현합니다:

  • 타일 원시: 텐서 코어 유닛에 최적화된 메모리 연산으로, 백업 충돌이 없고, 주소 계산 비용을 최소화하는 코일레이션된 연산.
  • 파이썬 스타일 함수: 어셈블리 및 HIP을 래핑하는 경량 배치 계산 함수.
  • 비동기 로드/스토어: 레이턴시를 숨기고 주소 생성을 최적화하기 위해 공유 메모리로 직접 버퍼 로드.
  • uma 스케줄링 및 오버랩: 8웨이브 핑퐁 및 4웨이브 인터리브와 같은 특정 패턴을 사용하여 계산과 메모리 연산을 오버랩.

대상 사용자

AMD 하드웨어(MI300X, MI325X, MI350X, MI355X)를 타겟으로 하는 고성능 AI 커널(GEMM, Attention, Layernorm 등)을 개발하거나 연구하는 개발자 및 연구자에게 적합합니다.

주요 특징

  • 하드웨어 중심 설계: CDNA3 및 CDNA4 아키텍처에 특화되어 최적화됨.
  • 광범위한 커널 지원: BF16 GEMM, 다양한 Attention의 포워드/백워드(MHA, GQA, Causal), Rotary, 그리고 융합 Layernorm의 구현 포함.
  • AITER 통합: 공식적으로 AITER의 백엔드로 제공.
  • 성능 벤치마킹: Triton, CK, HipBLASLT, Mojo와 같은 베이스라인과 성능을 비교할 수 있는 스크립트 포함.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트