[Paper] AscendCraft: DSL 가이드 트랜스컴파일을 통한 자동 Ascend NPU 커널 생성
Source: arXiv - 2601.22760v1
번역하려는 텍스트를 제공해 주시면, 요청하신 대로 한국어로 번역해 드리겠습니다. (코드 블록, URL 및 마크다운 형식은 그대로 유지됩니다.)
개요
딥러닝 성능은 특수 하드웨어에서 실행되는 고도로 최적화된 커널에 달려 있습니다. 대형 언어 모델(LLM)이 GPU 커널을 자동 생성하는 데 가능성을 보여주었지만, 화웨이의 Ascend NPU에 대해 동일한 작업을 수행하는 것은 Ascend의 프로그래밍 모델(AscendC)이 불투명하고 문서가 부족하기 때문에 여전히 어려운 문제였습니다. AscendCraft는 Ascend 커널의 핵심 의미를 포착하는 경량 도메인‑특화 언어(DSL)를 도입하고, LLM을 사용해 DSL 코드를 완전한 AscendC 커널로 “트랜스컴파일”함으로써 이 격차를 해소합니다.
핵심 기여
- AscendC용 DSL 추상화 – 저수준 보일러플레이트를 숨기면서 Ascend NPU 고유의 실행 의미론을 노출하는 간결하고 인간이 읽기 쉬운 언어.
- 두 단계 생성 파이프라인 – (1) LLM이 고수준 연산자 설명으로부터 DSL 코드를 생성; (2) 제약 기반 LLM 낮추기 단계가 DSL을 최적화된 AscendC로 변환.
- 높은 성공률 – 생성된 커널의 98.1 %가 컴파일되고, 다양한 벤치마크 스위트(MultiKernelBench)에서 90.4 %가 기능 정확성 테스트를 통과.
- 경쟁력 있는 성능 – 생성된 커널의 46.2 %가 동일 하드웨어에서 PyTorch의 즉시 실행 런타임을 능가하거나 동등함.
- 확장성 입증 – 시스템이 새로운 “mHC” 아키텍처용 커널을 성공적으로 생성했으며, 기존 PyTorch 구현보다 성능이 우수함.
방법론
- DSL 설계 – 저자들은 AscendC의 핵심 개념(텐서 타일링, 메모리 계층 구조, 벡터 명령)을 소수의 고수준 프리미티브로 추출했습니다. DSL은 의도적으로 “경량”으로 설계되어 LLM이 적은 수의 전문가 예시만으로 학습할 수 있도록 했습니다.
- 프롬프트 엔지니어링 및 예시 선택 – 각 연산자 카테고리(예: 컨볼루션, 행렬 곱셈, 요소별 연산)마다 선별된 DSL 스니펫 모음이 LLM에 few‑shot 시연으로 제공됩니다. 이를 통해 모델이 Ascend의 실행 모델을 준수하면서 구문적으로 올바른 DSL 코드를 생성하도록 유도합니다.
- 구조화된 트랜스컴파일 – 두 번째 LLM 패스는 DSL 출력과 함께 일련의 형식적 제약조건(예: 레지스터 제한, 벡터 폭)을 받습니다. 이 패스는 DSL을 점진적으로 AscendC로 낮추면서 필요한 pragma, 메모리 복사, 루프 중첩을 삽입하고 각 단계가 제약조건을 만족하는지 확인합니다.
- 자동 검증 – 생성된 AscendC 커널을 Ascend 툴체인으로 컴파일하고 실제 Ascend 디바이스에서 실행한 뒤, 레퍼런스 출력과 비교하여 기능적 정확성을 평가합니다. 성능은 동일한 입력에 대해 PyTorch eager 실행과 비교하여 측정합니다.
결과 및 발견
| Metric | Value |
|---|---|
| 컴파일 성공 | 98.1 % |
| 기능 정확도 (레퍼런스 테스트 통과) | 90.4 % |
| 커널 ≥ PyTorch eager 성능 | 46.2 % |
| 다루는 연산자 (7가지 카테고리) | Convolution, GEMM, Pooling, Element‑wise, Softmax, Normalization, Reduction |
| 새로운 아키텍처 (mHC) 커널 생성 | 2개의 올바른 커널, 모두 PyTorch eager보다 현저히 빠름 |
이 의미는:
- DSL은 고수준 연산자 의도와 Ascend의 저수준 프로그래밍 모델 사이의 “시맨틱 갭”을 효과적으로 메워줍니다.
- 잘 구조화된 DSL과 제약 조건 검사를 통해 안내된 LLM은 구문적으로 올바른 코드뿐 아니라, 이전에 자동 생성이 어려웠던 하드웨어 플랫폼에 대해 성능 좋은 커널도 생성할 수 있습니다.
- 이 접근 방식은 연산자군 전반에 걸쳐 확장 가능하며, 손으로 작성된 커널 없이도 새로운 하드웨어 확장에 적응합니다.
Practical Implications
- Accelerated kernel development cycles – Teams can prototype custom operators for Ascend NPUs in hours rather than weeks, freeing expert compiler engineers for higher‑level optimizations.
- Lower barrier to entry – Start‑ups and research labs lacking deep AscendC expertise can still tap the performance benefits of Ascend hardware by leveraging AscendCraft’s DSL + LLM workflow.
- Integration into CI pipelines – The high compilation success rate makes it feasible to automatically generate and test kernels as part of continuous integration, ensuring that new model variants always have an optimized implementation ready.
- Portability to other NPUs – The DSL‑first philosophy is hardware‑agnostic; with modest adjustments to the DSL’s primitives, the same pipeline could target other proprietary accelerators (e.g., Cambricon, Graphcore).
- Cost‑effective performance tuning – Since the generated kernels already beat eager PyTorch in many cases, developers can achieve near‑optimal inference speed without manual hand‑tuning, reducing cloud compute expenses.
제한 사항 및 향후 작업
- Coverage gaps – 7개의 연산자 카테고리를 테스트했지만, 보다 이색적인 커널(예: 맞춤형 어텐션 메커니즘)은 아직 검증되지 않았습니다.
- Performance ceiling – 커널의 46 %가 PyTorch eager와 동등하거나 능가하지만, 모든 마이크로아키텍처 세부 사항을 활용하는 수작업 최적화 커널에는 아직 미치지 못합니다.
- Reliance on prompt quality – 시스템 성공은 잘 설계된 few‑shot 예제에 달려 있으며, 완전히 새로운 도메인으로 확장하려면 추가적인 프롬프트 엔지니어링 작업이 필요할 수 있습니다.
- Hardware‑specific constraints – 현재 제약 조건 집합은 Ascend에 맞춰져 있으며, 다른 NPU로 확장하려면 새로운 제약 모델과 더 풍부한 DSL 구성이 필요합니다.
- Future directions include expanding the DSL to cover control‑flow constructs, integrating reinforcement‑learning‑based kernel tuning, and open‑sourcing the pipeline to foster community‑driven extensions.
저자
- Zhongzhen Wen
- Shudi Shao
- Zhong Li
- Yu Ge
- Tongtong Xu
- Yuanyi Lin
- Tian Zhang
논문 정보
- arXiv ID: 2601.22760v1
- 카테고리: cs.DC, cs.LG, cs.PF, cs.SE
- 출판일: 2026년 1월 30일
- PDF: PDF 다운로드