[Paper] KEET: GPU 커널 성능을 LLM 에이전트를 사용해 설명하기

발행: (2026년 5월 6일 PM 12:47 GMT+9)
8 분 소요
원문: arXiv

Source: arXiv - 2605.04467v1

개요

이 논문은 KEET(Kernel Execution Explanation Toolkit)를 소개한다. KEET는 대형 언어 모델(LLM)을 “에이전트”로 활용하여 NVIDIA의 Nsight Compute 프로파일링 도구가 생성하는 복잡하고 기술적인 출력을 GPU 커널이 느린 이유와 튜닝 방법에 대한 명확한 자연어 설명으로 변환한다. 원시 성능 카운터와 개발자 친화적인 인사이트 사이의 격차를 메워줌으로써, KEET는 엔지니어가 그래프와 표를 뒤져 병목 현상을 찾는 데 소비하는 시간을 크게 줄이는 것을 목표로 한다.

핵심 기여

  • Agentic LLM pipeline은 Nsight Compute 보고서를 파싱하고, 관련 메트릭을 추출하며, 성능 문제에 대한 근거 있는 텍스트 설명을 생성합니다.
  • Optimization suggestion module은 설명을 구체적인 코드 수준 권고와 결합합니다(예: 메모리 접근 패턴, occupancy 조정).
  • Empirical evaluation은 NVIDIA H100 GPU에서 실행되는 다양한 CUDA 커널(단순부터 복잡까지) 집합에 대해 수행되었으며, KEET‑augmented 프롬프트가 코드 최적화 및 객관식 Q&A와 같은 하위 LLM 작업을 향상시킴을 보여줍니다.
  • Scalable analysis는 대량 프로파일 배치를 처리함으로써 입증되었으며, 도구가 다수의 커널에 걸친 공통 패턴을 도출하고 개발자에게 보다 나은 최적화 조언을 제공하도록 합니다.

방법론

  1. 프로파일 추출 – 대상 커널에서 Nsight Compute를 실행하고, 그 CSV/JSON 출력(수천 개의 카운터, 루프라인 메트릭 등)을 수집합니다.

  2. LLM 에이전트 설계 – 체인‑오브‑생각 프롬프트 전략을 사용합니다:

    • Parsing Agent는 가장 중요한 카운터(예: SM 활용도, 메모리 대역폭, 스톨 원인)를 식별합니다.
    • Explanation Agent는 해당 숫자를 일상적인 영어로 번역하고, 각 주장을 뒷받침하는 구체적인 메트릭 값을 인용합니다.
    • Recommendation Agent는 식별된 병목을 알려진 CUDA 모범 사례 해결책(예: 스레드‑블록 크기 증가, 공유 메모리 사용, 실행 구성 조정)과 매핑합니다.
  3. 프롬프트 엔지니어링 – 생성된 설명을 이후 LLM 질의의 컨텍스트로 삽입합니다(예: “이 커널을 개선하기 위한 코드 변경을 제안해 주세요”).

  4. 평가 – 저자들은 세 가지 설정을 비교합니다:

    • (a) 프로파일 컨텍스트 없이 순수 LLM,
    • (b) 원시 숫자 카운터와 함께 사용하는 LLM, 그리고
    • (c) KEET의 자연어 설명과 함께 사용하는 LLM.
      최적화 제안 작업 및 객관식 질문에 대한 정확도가 측정됩니다.

결과 및 발견

  • Explanation quality matters – When KEET’s textual summary is provided as context, LLMs achieve up to 23 % higher accuracy on multiple‑choice questions about kernel performance compared to raw numeric input.
  • Better optimization suggestions – In code‑generation experiments, the LLM produces more relevant and implementable changes (e.g., “replace global loads with __ldg intrinsics”) when guided by KEET explanations.
  • Batch processing gains – Analyzing hundreds of profiles at once lets KEET surface recurring issues (e.g., low L2 hit rate) and automatically prioritize them for the development team.
  • Human validation – A small user study with GPU developers reported that KEET’s explanations reduced the time to pinpoint the primary bottleneck by ≈40 % on average.

실용적 시사점

  • Faster debugging cycles – 개발자는 Nsight Compute 보고서를 KEET에 붙여넣고 즉시 간결한 “왜 느린가” 단락을 받아볼 수 있어 수동 검토 시간을 크게 줄일 수 있습니다.
  • LLM‑assisted code refactoring – KEET의 출력을 코드 생성 모델(예: GitHub Copilot, Claude)에 전달하면 성능을 고려한 보다 정확한 리팩토링 제안을 받아볼 수 있어 시행‑착오 루프를 감소시킵니다.
  • Continuous integration – KEET을 CI 파이프라인에 스크립트화하여 성능 회귀를 자동으로 감지하고, 코드가 프로덕션에 배포되기 전에 수정안을 제시할 수 있습니다.
  • Education & onboarding – 새로운 GPU 프로그래머가 KEET이 저수준 메트릭을 고수준 논리로 변환해 주므로 성능 튜닝 개념을 더 빠르게 학습할 수 있습니다.

제한 사항 및 향후 작업

  • 모델 의존성 – 설명의 품질은 기본 LLM에 좌우되며, 규모가 작거나 능력이 낮은 모델은 모호하거나 부정확한 조언을 제공할 수 있습니다.
  • 프로파일 범위 – KEET는 현재 NVIDIA GPU의 Nsight Compute 데이터에 초점을 맞추고 있으며, AMD ROCm 또는 Intel oneAPI 프로파일링 도구로 확장하면 적용 범위가 넓어집니다.
  • 정적 규칙 집합 – 권장 사항은 알려진 CUDA 최적화 목록에서 선별된 것이며, 시스템은 이 지식 베이스에 포함되지 않은 새로운 또는 아키텍처 특화 트릭을 놓칠 수 있습니다.
  • 파싱 확장성 – 매우 큰 프로파일(예: 다중 커널 워크로드)에서는 현재 LLM API의 토큰 제한에 부담을 주어 청크 처리 전략이 필요합니다.

향후 연구 방향으로는 강화 학습을 통합하여 에이전트가 제안된 변경 사항을 실시간으로 “테스트”하도록 하고, 커뮤니티가 기여한 최적화 패턴으로 지식 베이스를 확장하며, 다벤더 프로파일링 형식을 지원하는 것이 포함됩니다.

저자

  • Joshua H. Davis
  • Klaudiusz Rydzy
  • Srinivasan Ramesh
  • Aadit Nilay
  • Daniel Nichols
  • Swapna Raj
  • Nikhil Jain
  • Abhinav Bhatele

논문 정보

  • arXiv ID: 2605.04467v1
  • 분류: cs.PF, cs.DC
  • 발행일: 2026년 5월 6일
  • PDF: PDF 다운로드
0 조회
Back to Blog

관련 글

더 보기 »