본문으로 건너뛰기

© 2026 Molayo

r/LocalLLaMA분석2026. 06. 19. 16:47

EvoTensile: AMD Tensile GEMM 커널 튜닝을 위한 진화 알고리즘 (Evolutionary algorithms)

요약

AMD Strix Halo(gfx1151) 환경에서 hipBLASLt의 NT 및 TT 레이아웃 GEMM 커널 성능을 최적화하기 위해 진화 알고리즘 기반의 EvoTensile을 개발했습니다. 이를 통해 100개의 입력 형태에 대해 성능을 20 TFLOPS에서 40 TFLOPS 수준으로 대폭 향상시켰습니다.

핵심 포인트

  • 진화 알고리즘을 활용한 AMD TensileLite 커널 튜닝 도구 EvoTensile 개발
  • Strix Halo(gfx1151)의 NT 레이아웃 GEMM 성능을 최대 2배 향상
  • 이론적 루프라인인 59.4 TFLOPS에 근접한 40 TFLOPS 달성
  • rocm-libraries 메인스트림 병합을 위한 광범위한 검증 필요

가장 기본적인 행렬 곱셈 (matmuls)이 더 빠르게 실행될 수 있도록 hipBLASLt의 커널을 튜닝하려는 노력이 있어 왔습니다. Strix Halo (gfx1151)에서는 추론에 사용되는 NN 및 TN 입력 레이아웃 (input layouts)의 GEMM은 이미 잘 튜닝되어 있는 반면, 훈련에 사용되는 NT 및 TT 레이아웃은 아직 튜닝되지 않은 것으로 알려져 있습니다.

커널을 튜닝하기 위해 우리가 사용하는 도구의 이름은 Tensile입니다 (구체적으로는 원래의 Tensile이 아닌 TensileLite입니다). 이 도구는 많은 튜닝 가능한 파라미터 (tunable parameters)로부터 커널을 생성할 수 있습니다. 남은 문제는 각 입력 형태 (input shape)에 대해 가장 빠른 커널을 생성하는 최적의 파라미터를 찾는 것이며, 이를 다양한 입력 형태에 대해 수행하는 것입니다. Formocast 및 Origami와 같이 탐색을 도울 수 있는 몇 가지 대리 모델 (surrogates)이 있지만, 이들은 아직 gfx1151의 성능을 예측할 수 없습니다.

저는 진화 알고리즘 (evolutionary algorithms)을 사용하여 탐색을 수행하는 EvoTensile을 만들었으며, 이는 효과가 있는 것으로 보입니다. 저는 100개의 입력 형태에 대해 NT 레이아웃을 튜닝했습니다. 속도는 20 TFLOPS에서 40 TFLOPS 정도로 향상되었습니다. 이론적 루프라인 (theoretical roofline)인 59.4 TFLOPS와 비교했을 때, 40 TFLOPS 정도면 충분히 좋다고 생각합니다.

EvoTensile 저장소: https://github.com/woct0rdho/evotensile
제가 포크한 rocm-libraries: https://github.com/woct0rdho/rocm-libraries . 이를 빌드하여 속도 향상을 테스트해 볼 수 있습니다.
성능을 추적한 저의 이전 이슈: https://github.com/ROCm/TheRock/issues/5314

저는 더 넓은 범위의 입력 형태 그리드에서 튜닝을 진행할 예정입니다. 만약 AMD 개발자분들이 이 글을 보신다면, 튜닝된 설정 (configs)의 정확성과 성능에 대해 더 광범위한 검증을 해주셨으면 합니다. 그래야 궁극적으로 이를 메인스트림 rocm-libraries에 병합할 수 있을 것입니다.

여러분이 무엇을 물어볼지 알고 있습니다: 아니요, 아직 llama.cpp의 융합된 역양자화-행렬 곱셈 (fused dequant-matmul) 커널을 튜닝할 수는 없습니다. 아마도 이를 Tensile과 유사한 프리미티브 (primitives)로 작성하고 튜닝할 수 있을 것입니다.
submitted by /u/woct0rdho
[link] [comments]

AI 자동 생성 콘텐츠

본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0