최신 GPU 명령어까지 직접 다룰 줄 아는 AI, 아직은 반쪽짜리다
최신 GPU 명령어까지 직접 다룰 줄 아는 AI, 아직은 반쪽짜리다
PTXBench는 AI 모델이 엔비디아 최신 GPU(H100, B200)의 저수준 명령어(PTX)를 직접 써서 빠른 커널 코드를 짤 수 있는지 측정하는 벤치마크다. 연구팀은 GEMM(행렬곱)과 어텐션 연산에서 여러 모델을 테스트한 결과, 정방향 연산은 곧잘 성공하지만 역방향 어텐션 연산에서는 성공률이 크게 떨어지고, 목표 명령어를 실행한다고 해서 꼭 빠른 것도 아니라는 점을 발견했다. 추가로 Qwen3.6-27B 모델을 학습시켜 개선을 시도했으나, 데이터 구성과 문제 균형, 그리고 답을 가르쳐주는 교사 모델의 품질에 따라 결과가 들쭉날쭉했다.
METAL MEDIA 해설 도표
최신 GPU 명령어까지 직접 다룰 줄 아는 AI, 아직은 반쪽짜리다
- 01PTX(엔비디아 GPU를 가장 낮은 수준에서 직접 제어하는 프로그래밍 인터페이스)를 AI가 얼마나 잘 다루는지 측정하는 PTXBench라는 벤치마크를 만들었다
- 02모델에게 GPU 아키텍처 지식을 주고 CUDA 커널 코드를 여러 번 고쳐 쓰게 하면서, 코드가 맞는지, 목표 명령어가 실제로 실행되는지, cuBLAS 같은 최고 성능 라이브러리보다 빠른지를 각각 따로 측정했다
- 03Gemini 3.1 Pro, Claude Opus 4.8, GLM-5.2, Qwen3.6-27B 등을 테스트한 결과, 정방향 연산에서는 성공하지만 복잡한 역방향 어텐션에서는 실패율이 크게 높아졌고, 목표 명령어 실행에 성공해도 항상 빠른 코드는 아니었다
- 04Fixit이라는 방법으로 실패 사례와 교사 모델의 수정본을 학습 데이터로 만들어 Qwen3.6-27B를 미세조정했더니 일부 과제는 개선됐지만, 새로운 문제 유형으로는 잘 일반화되지 않았다
- 05학습 데이터의 양보다 문제 종류를 골고루 담았는지, 균형이 맞는지, 그리고 정답 풀이를 가르쳐주는 교사 모델의 실력이 결과에 더 큰 영향을 미쳤다
무엇을 했나
- PTX(엔비디아 GPU를 가장 낮은 수준에서 직접 제어하는 프로그래밍 인터페이스)를 AI가 얼마나 잘 다루는지 측정하는 PTXBench라는 벤치마크를 만들었다
- 모델에게 GPU 아키텍처 지식을 주고 CUDA 커널 코드를 여러 번 고쳐 쓰게 하면서, 코드가 맞는지, 목표 명령어가 실제로 실행되는지, cuBLAS 같은 최고 성능 라이브러리보다 빠른지를 각각 따로 측정했다
- Gemini 3.1 Pro, Claude Opus 4.8, GLM-5.2, Qwen3.6-27B 등을 테스트한 결과, 정방향 연산에서는 성공하지만 복잡한 역방향 어텐션에서는 실패율이 크게 높아졌고, 목표 명령어 실행에 성공해도 항상 빠른 코드는 아니었다
- Fixit이라는 방법으로 실패 사례와 교사 모델의 수정본을 학습 데이터로 만들어 Qwen3.6-27B를 미세조정했더니 일부 과제는 개선됐지만, 새로운 문제 유형으로는 잘 일반화되지 않았다
- 학습 데이터의 양보다 문제 종류를 골고루 담았는지, 균형이 맞는지, 그리고 정답 풀이를 가르쳐주는 교사 모델의 실력이 결과에 더 큰 영향을 미쳤다

| GPU | Model | GEMM | MHA-Fwd | MHA-Fwd-Causal | MHA-Bwd | MHA-Bwd-Causal |
|---|---|---|---|---|---|---|
| H100 | Gemini 3.1 Pro | 33.3 / 60.4 / 56.2 (33.3 / 62.5 / 59.4) | 33.3 / 39.6 / 45.8 (33.3 / 39.6 / 45.8) | 25.0 / 52.1 / 55.2 (25.0 / 52.1 / 55.2) | 8.3 / 33.3 / 38.5 (8.3 / 33.3 / 38.5) | – / 22.9 / 25.0 (8.3 / 25.0 / 26.0) |
| Claude Opus 4.8 | 91.7 / 95.8 / 94.8 (91.7 / 95.8 / 94.8) | 50.0 / 81.2 / 90.6 (66.7 / 89.6 / 94.8) | 50.0 / 77.1 / 75.0 (83.3 / 89.6 / 82.3) | 8.3 / 62.5 / 79.2 (50.0 / 83.3 / 89.6) | – / 22.9 / 44.8 (25.0 / 41.7 / 59.4) | |
| GLM-5.2 | 33.3 / 60.4 / 61.5 (33.3 / 62.5 / 62.5) | 16.7 / 8.3 / 8.3 (16.7 / 14.6 / 15.6) | – / 8.3 / 10.4 (8.3 / 16.7 / 17.7) | 8.3 / 6.2 / 5.2 (8.3 / 18.8 / 16.7) | – (– / 22.9 / 15.6) | |
| Qwen3.6-27B | – | – | – | – | – | |
| B200 | Gemini 3.1 Pro | 8.3 / 47.9 / 45.8 (8.3 / 47.9 / 45.8) | – / 12.5 / 15.6 (– / 12.5 / 15.6) | – / 8.3 / 10.4 (8.3 / 12.5 / 12.5) | – / 2.1 / 2.1 (– / 2.1 / 2.1) | – (– / 2.1 / 1.0) |
| Claude Opus 4.8 | 25.0 / 64.6 / 80.2 (75.0 / 81.2 / 88.5) | – / 20.8 / 38.5 (83.3 / 87.5 / 86.5) | – / 16.7 / 32.3 (91.7 / 77.1 / 83.3) | – / 6.2 / 10.4 (83.3 / 89.6 / 91.7) | – (25.0 / 52.1 / 68.8) | |
| GLM-5.2 | 16.7 / 27.1 / 28.1 (33.3 / 37.5 / 34.4) | – / – / 1.0 (33.3 / 22.9 / 26.0) | 8.3 / 2.1 / 1.0 (33.3 / 22.9 / 25.0) | – (8.3 / 25.0 / 30.2) | – (16.7 / 18.8 / 22.9) | |
| Qwen3.6-27B | – (– / – / 1.0) | – | – | – | – |

| Model | Model release | Knowledge cutoff | Lag after PTX release (months) | |
|---|---|---|---|---|
| Hopper | Blackwell | |||
| Gemini 3.1 Pro | Feb. 2026 | Jan. 2025 | 25 | ≈0 |
| Claude Opus 4.8 | May 2026 | Jan. 2026 | 37 | 12 |
| GLM-5.2 | June 2026 | Not disclosed | ≤42 | ≤17 |
| Qwen3.6-27B | Apr. 2026 | Not disclosed | ≤40 | ≤15 |

| Prompt knowledge | Target inst. correctness (%) (turn correctness) | Target inst. best speedup (best speedup) |
|---|---|---|
| Architecture parameters | – (50.0 / 29.2 / 26.0) | – (0.056 / 0.119 / 0.273) |
| Architecture parameters + PTX template functions | – / 20.8 / 19.8 (– / 20.8 / 19.8) | – / 0.542 / 0.542 (– / 0.542 / 0.542) |
| Architecture parameters + PTX template functions + architecture contract | 8.3 / 33.3 / 38.5 (8.3 / 33.3 / 38.5) | 0.206 / 0.375 / 0.515 (0.206 / 0.375 / 0.515) |

| Condition | MHA-Fwd | MHA-Fwd-Causal | MHA-Bwd | MHA-Bwd-Causal |
|---|---|---|---|---|
| Qwen3.6-27B w/o expert guidance | – | – | – | – |
| Qwen3.6-27B | – | – | – | – |
| Qwen3.6-27B-s1 w/o expert guidance | – | – / – / 4.2 (– / – / 4.2) | – / – / 4.2 (– / – / 4.2) | – / 4.2 / 3.1 (– / 4.2 / 3.1) |
| Qwen3.6-27B-s1 | 16.7 / 16.7 / 19.8 (16.7 / 16.7 / 19.8) | – / – / 3.1 (– / – / 3.1) | – / 2.1 / 4.2 (– / 2.1 / 4.2) | – / 2.1 / 4.2 (– / 2.1 / 5.2) |
| Qwen3.6-27B + retrieved repair notes | – | – | – | – |
| Qwen3.6-27B + retrieved repair notes and fixed kernel | – / 29.2 / 29.2 (– / 29.2 / 29.2) | – / 20.8 / 27.1 (– / 20.8 / 27.1) | – / 14.6 / 18.8 (– / 14.6 / 20.8) | – / 20.8 / 33.3 (– / 25.0 / 37.5) |

| GPU | Tag | Selected SASS family |
|---|---|---|
| H100 (Hopper) | H | *GMMA tensor compute; UTMALDG, UTMASTG, and UTMAREDG TMA payload transfer |
| B200 (Blackwell) | B | UTC*, LDTM, and STTM from the TCGEN05 tensor pathway |

| GPU | Component | Tokens |
|---|---|---|
| H100 | Architecture parameter | 259 |
| Template functions | 18,601 | |
| Architecture contract | 3,454 | |
| Total | 22,314 | |
| B200 | Architecture parameter | 413 |
| Template functions | 18,871 | |
| Architecture contract | 9,531 | |
| Total | 28,815 |

| GPU | Model | GEMM | MHA-Fwd | MHA-Fwd-Causal | MHA-Bwd | MHA-Bwd-Causal |
|---|---|---|---|---|---|---|
| H100 | Gemini 3.1 Pro | 0.687 / 0.934 / 0.962 (0.687 / 0.934 / 0.962) | 0.555 / 0.730 / 0.730 (0.555 / 0.730 / 0.730) | 0.614 / 0.651 / 0.768 (0.614 / 0.651 / 0.768) | 0.206 / 0.375 / 0.515 (0.206 / 0.375 / 0.515) | – / 0.634 / 0.639 (0.065 / 0.634 / 0.639) |
| Claude Opus 4.8 | 0.770 / 0.968 / 0.976 (0.770 / 0.968 / 0.976) | 0.759 / 0.770 / 0.839 (0.759 / 0.770 / 0.839) | 0.758 / 0.806 / 0.806 (0.758 / 0.806 / 0.806) | 0.300 / 0.440 / 0.489 (0.300 / 0.440 / 0.489) | – / 0.499 / 0.499 (0.058 / 0.499 / 0.499) | |
| GLM-5.2 | 0.447 / 0.692 / 0.692 (0.447 / 0.692 / 0.692) | 0.407 / 0.470 / 0.607 (0.407 / 0.470 / 0.607) | – / 0.471 / 0.533 (0.015 / 0.471 / 0.533) | 0.316 / 0.437 / 0.437 (0.316 / 0.437 / 0.437) | – (– / 0.101 / 0.101) | |
| Qwen3.6-27B | – | – | – | – | – | |
| B200 | Gemini 3.1 Pro | 0.273 / 0.680 / 0.892 (0.273 / 0.680 / 0.892) | – / 0.280 / 0.280 (– / 0.280 / 0.280) | – / 0.206 / 0.248 (0.013 / 0.206 / 0.248) | – / 0.087 / 0.133 (– / 0.087 / 0.133) | – (– / 0.015 / 0.015) |
| Claude Opus 4.8 | 0.782 / 1.012 / 1.012 (0.782 / 1.012 / 1.012) | – / 0.253 / 0.300 (0.110 / 0.253 / 0.300) | – / 0.232 / 0.269 (0.042 / 0.232 / 0.269) | – / 0.069 / 0.149 (0.022 / 0.136 / 0.155) | – (0.023 / 0.088 / 0.116) | |
| GLM-5.2 | 0.162 / 0.632 / 0.632 (0.162 / 0.632 / 0.632) | – / – / 0.027 (0.024 / 0.024 / 0.035) | 0.098 / 0.098 / 0.098 (0.098 / 0.098 / 0.098) | – (0.019 / 0.030 / 0.040) | – (0.018 / 0.034 / 0.034) | |
| Qwen3.6-27B | – (– / – / 0.006) | – | – | – | – |

| SFT-ed Model Label | GEMM | MHA-Fwd | MHA-Fwd-Causal | MHA-Bwd | MHA-Bwd-Causal |
|---|---|---|---|---|---|
| Qwen3.6-27B-s0 | – | – / 6.2 / 5.2 (– / 6.2 / 5.2) | – / 2.1 / 1.0 (– / 2.1 / 1.0) | – | – / – / 1.0 (– / – / 1.0) |
| Qwen3.6-27B-s1 | 25.0 / 14.6 / 13.5 (25.0 / 14.6 / 13.5) | 16.7 / 16.7 / 19.8 (16.7 / 16.7 / 19.8) | – / – / 3.1 (– / – / 3.1) | – / 2.1 / 4.2 (– / 2.1 / 4.2) | – / 2.1 / 4.2 (– / 2.1 / 5.2) |
| Qwen3.6-27B-s2 | – / 2.1 / 2.1 (– / 2.1 / 2.1) | – / 2.1 / 5.2 (– / 2.1 / 5.2) | – / – / 1.0 (– / – / 1.0) | – / – / 1.0 (– / – / 1.0) | – |
| Qwen3.6-27B-s3 | – / 2.1 / 3.1 (– / 2.1 / 3.1) | – / 4.2 / 2.1 (– / 4.2 / 2.1) | – / 6.2 / 4.2 (– / 6.2 / 4.2) | – / 4.2 / 4.2 (– / 4.2 / 4.2) | – |
| Qwen3.6-27B-s4 | 8.3 / 8.3 / 10.4 (8.3 / 8.3 / 10.4) | – / – / 4.2 (– / – / 4.2) | – / 4.2 / 2.1 (– / 4.2 / 2.1) | – / – / 1.0 (– / – / 1.0) | – |
| Qwen3.6-27B-s5 | 16.7 / 14.6 / 12.5 (16.7 / 14.6 / 12.5) | – / 2.1 / 4.2 (– / 2.1 / 4.2) | – / 2.1 / 3.1 (– / 2.1 / 3.1) | – / – / 5.2 (– / – / 5.2) | – / – / 4.2 (– / – / 4.2) |
| Qwen3.6-27B-s6 | 8.3 / 2.1 / 1.0 (8.3 / 2.1 / 1.0) | – | – | – | – |
| SFT-ed Model Label | GEMM | MHA-Fwd | MHA-Fwd-Causal | MHA-Bwd | MHA-Bwd-Causal |
|---|---|---|---|---|---|
| Qwen3.6-27B-s0 | – | – / 0.589 / 0.589 (– / 0.589 / 0.589) | – / 0.644 / 0.644 (– / 0.644 / 0.644) | – | – / – / 0.209 (– / – / 0.209) |
| Qwen3.6-27B-s1 | 0.303 / 0.303 / 0.340 (0.303 / 0.303 / 0.340) | 0.556 / 0.556 / 0.565 (0.556 / 0.556 / 0.565) | – / – / 0.395 (– / – / 0.395) | – / 0.380 / 0.389 (– / 0.380 / 0.389) | – / 0.192 / 0.199 (– / 0.192 / 0.199) |
| Qwen3.6-27B-s2 | – / 0.209 / 0.211 (– / 0.209 / 0.211) | – / 0.548 / 0.548 (– / 0.548 / 0.548) | – / – / 0.315 (– / – / 0.315) | – / – / 0.296 (– / – / 0.296) | – |
| Qwen3.6-27B-s3 | – / 0.274 / 0.280 (– / 0.274 / 0.280) | – / 0.465 / 0.465 (– / 0.465 / 0.465) | – / 0.388 / 0.388 (– / 0.388 / 0.388) | – / 0.494 / 0.494 (– / 0.494 / 0.494) | – |
| Qwen3.6-27B-s4 | 0.276 / 0.373 / 0.373 (0.276 / 0.373 / 0.373) | – / – / 0.452 (– / – / 0.452) | – / 0.383 / 0.383 (– / 0.383 / 0.383) | – / – / 0.199 (– / – / 0.199) | – |
| Qwen3.6-27B-s5 | 0.325 / 0.446 / 0.446 (0.325 / 0.446 / 0.446) | – / 0.425 / 0.573 (– / 0.425 / 0.573) | – / 0.241 / 0.246 (– / 0.241 / 0.246) | – / – / 0.295 (– / – / 0.295) | – / – / 0.246 (– / – / 0.246) |
| Qwen3.6-27B-s6 | 0.073 / 0.073 / 0.073 (0.073 / 0.073 / 0.073) | – | – | – | – |

| SFT-ed Model Label | Config | Template | Reasoning Synthesizer | Record Count |
|---|---|---|---|---|
| Qwen3.6-27B-s0 | 8ops-Extended | KernelGen | GLM-5.2 | 494 |
| Qwen3.6-27B-s1 | 4ops | Fixit | GLM-5.2 | 158 |
| Qwen3.6-27B-s2 | 4ops-Extended | Fixit | GLM-5.2 | 259 |
| Qwen3.6-27B-s3 | 8ops-Extended | Fixit | GLM-5.2 | 406 |
| Qwen3.6-27B-s4 | 8ops-Post-balanced | Fixit | GLM-5.2 | 170 |
| Qwen3.6-27B-s5 | 8ops-Pre-balanced | Fixit | GLM-5.2 | 258 |
| Qwen3.6-27B-s6 | 8ops-Pre-balanced | Fixit | Qwen3.6-27B | 258 |
![Figure 11: Detailed execution infrastructure supporting PTXBench. MiniPTXAgent compiles generated CUDA–PTX locally and sends successfully compiled candidates to an isolated GPU profiling service for sanitization, evaluation, and optional diagnostics. A reliability monitor pauses dispatch, restarts unhealthy service state, and excludes affected turns from trajectories. After a restart, it also excludes thermally abnormal GPUs because throttling distorted latency by over 15% in our measurements [35].](https://media.metallab.ai/papers/2608.17379/f10.png)
왜 중요한가
GPU 커널 최적화는 AI 모델 학습과 서비스 속도를 좌우하는 핵심 기술인데, 사람 전문가가 일일이 저수준 코드를 짜는 것은 매우 어렵고 시간이 오래 걸린다. 이 연구는 AI가 실제로 최신 하드웨어 기능을 제대로 활용할 수 있는지, 그리고 어떻게 학습시켜야 나아지는지를 처음으로 체계적으로 검증한 시도라는 점에서 의미가 있다.

이 논문의 용어
- PTX · 엔비디아 GPU를 가장 낮은 수준에서 직접 제어할 수 있는 프로그래밍 인터페이스
- GEMM · 행렬과 행렬을 곱하는 연산, GPU 성능 측정에 자주 쓰이는 대표 작업
- SFT(지도 미세조정) · 정답 예시를 모델에게 보여주며 추가로 학습시키는 방법
- LoRA · 모델 전체가 아니라 일부만 가볍게 학습시켜 비용을 줄이는 미세조정 기법
- SASS · PTX 코드가 실제 GPU에서 실행될 때 변환되는 엔비디아의 네이티브 기계어
최신 논문
- AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다
- 논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기
- 고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법
- 로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다
- 에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법
- AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다
- AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다
- AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다
METAL MEDIA 최신 기사
그림 출처: Genghan Zhang et al., arXiv:2608.17379, CC BY 4.0