본문으로 건너뛰기

AMD 추론용 Netra Kernel 공개

Netra Kernel이 AMD gfx950용 추론 연산을 고정 계약의 raw-assembly 커널과 결정적 엔진으로 컴파일한다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Netra Kernel은 AMD gfx950 GPU에서 대규모 언어 모델 추론 연산을 배포 전에 raw-assembly 커널로 특화하고, 고정 계약을 담은 Netra Engine으로 패키징하는 오픈소스 플랫폼입니다. Compiler가 shape, 데이터 형식, 레이아웃, 양자화, launch 차원, 메모리 계획과 tactic을 미리 확정하므로 Runtime은 symbol과 buffer를 연결한 뒤 고정 launch 또는 HIP Graph를 재생합니다. Qwen3.6-35B-A3B-FP8을 8× MI350X와 DP8 구성으로 실행한 검증에서는 평균 78,498.66 output tokens/s를 기록했고 15,360 / 15,360 검사와 18개 커널의 .text 일치 검사를 통과했습니다. 다만 이 결과는 특정 checkpoint와 하드웨어, 그래프 설정, 요청 집합, 다섯 번의 측정에 한정되며, 계약이 맞지 않는 요청은 별도 특화 커널이나 framework fallback으로 처리됩니다.

섹션별 상세

01
Netra Kernel은 AMD GPU에서 대규모 언어 모델 추론을 실행하기 위한 Ahead-of-time GPU 커널과 엔진 빌드 시스템입니다. Python compiler가 모델 설명 또는 canonical graph를 입력으로 받아 계약, profile, 레이아웃, tactic, 정적 메모리 계획을 검증하고 특화 raw-assembly 커널을 생성합니다. 실행 시점에는 고정된 symbol과 launch 정보만 사용하므로 동적으로 범용 커널을 선택하는 구조보다 serving 경로를 예측하기 쉽다는 점이 핵심입니다.
02
이 시스템은 모델 이름이 아니라 연산의 완전한 계약을 기준으로 커널을 재사용합니다. 연산과 정확한 차원, 데이터 형식과 누산·반올림·감산 순서, 양자화와 scale 해석, 텐서 및 weight 레이아웃, ABI와 launch 차원, LDS와 workspace, graph capture 조건이 모두 일치할 때 서로 다른 frontend가 같은 tactic과 binary를 선택합니다. 계약이 맞지 않으면 별도의 특화 인스턴스를 만들거나 framework fallback으로 돌려 근사 dispatch를 피합니다.
03
Netra Engine은 선택된 tactic, launch metadata, 정적 메모리와 레이아웃 계획, 생성 소스, 선택적 code object, 결정적 HIP Graph recipe를 함께 보관합니다. Netra Runtime은 엔진을 로드한 뒤 symbol을 확인하고 persistent 및 boundary buffer를 연결하며, 호출자 소유 stream에서 고정 launch 또는 초기화 시점에 준비한 graph를 실행합니다. 엔진 산출물에는 의미상 timestamp와 machine-specific build path가 없어 반복 가능한 배포와 artifact 검증에 맞춰져 있습니다.
04
초기 production backend는 AMD gfx950 wave64와 FP8 추론이며, 지원 연산에는 FP8 routed MoE, BF16 routing, GQA FP8-KV attention, split-sequence verification, GDN이 포함됩니다. gfx950 compiler는 decode와 고정 verification 또는 prefill profile을 대상으로 하고 FP8 E4M3의 block-scale 및 layout semantics를 명시적으로 다룹니다. Gemma와 Llama는 계약 재사용의 예시로 제공되지만 checkpoint 또는 성능 승인을 받은 배포로 광고되지 않으며, gfx1151 wave32 경로는 별도 track으로 남아 있습니다.
05
Qwen3.6-35B-A3B-FP8의 검증 배포는 8× MI350X, DP8 구성에서 평균 78,498.66 output tokens/s를 기록했습니다. 요청·입력·출력·토큰·캐시 검사는 15,360 / 15,360을 통과했고, 생성된 18개 artifact의 .text가 잠긴 커널 18개와 모두 일치했습니다. 결과는 78,748.15 tokens/s locked baseline보다 0.32% 이내였지만, 저장소는 이 수치가 해당 checkpoint, 하드웨어 토폴로지, graph configuration, 요청 집합, 다섯 번의 측정에만 해당한다고 명시합니다.
06
Tactic은 Experiment, Verified, Accepted, Rejected 상태로 관리되며 단순히 짧은 microbenchmark에서 빠르다는 이유만으로 배포 후보가 되지 않습니다. 승인을 받으려면 기록된 correctness gate뿐 아니라 수치 동작, graph replay, 전체 serving 정확성, 동일 조건의 end-to-end 성능을 통과해야 합니다. 지원되지 않는 row count나 계약은 framework MoE 경로로 남기므로 특화 커널의 범위를 벗어난 요청도 명시적인 fallback으로 처리됩니다.
bash
git clone https://github.com/NetraRuntime/netra-kernel.git
cd netra-kernel
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e ./compiler -e '.[test]'
make check

저장소를 내려받아 Python 가상 환경을 만들고 compiler와 테스트 의존성을 설치한 뒤 기본 검사를 실행합니다.

bash
netra-compile compile \
  --model manifests/gfx950/models/qwen36-moe-m1-golden.json \
  --target gfx950 \
  --profile decode_m1 \
  --library-root . \
  --output build/netra-engines/qwen36-35b-current-best
netra-compile explain \
  --engine build/netra-engines/qwen36-35b-current-best
netra-compile validate \
  --engine build/netra-engines/qwen36-35b-current-best \
  --static \
  --library-root .

검증된 Qwen3.6-35B serving 계약을 gfx950 decode 프로필의 결정적 엔진으로 생성하고 엔진 설명과 정적 검증을 수행합니다.

bash
cmake -S . -B build/gfx950-engine-sdk \
  -DCMAKE_HIP_COMPILER=/opt/rocm/llvm/bin/clang++ \
  -DCMAKE_HIP_ARCHITECTURES=gfx950 \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX=/opt/netra
cmake --build build/gfx950-engine-sdk --parallel
cmake --install build/gfx950-engine-sdk

gfx950용 HIP 엔진 런타임을 Release 모드로 빌드하고 버전이 지정된 런타임, C 헤더, CMake target, pkg-config 파일을 설치합니다.

bash
netra-compile list-tactics --target gfx950 --library-root .

현재 라이브러리에서 gfx950 대상으로 선택 가능한 tactic 목록을 조회합니다.

07
배포자는 CPU만으로 Python 3.10 이상 환경에서 compiler와 엔진 artifact를 만들 수 있고, gfx950 code object를 생성할 때 ROCm을 추가합니다. netra-sglang은 filename과 SHA-256으로 승인된 artifact를 묶고 SGLang entry-point plugin을 통해 graph capture 전에 경로를 활성화하며, 별도 adapter가 inference-engine 경계만 변환합니다. 이를 통해 SGLang checkout을 직접 수정하지 않고도 검증된 소스 snapshot과 tuning table을 재현할 수 있습니다.
bash
ROCM_DIR=/opt/rocm \
bash tools/compiler/build_gfx950_tactic_catalog.sh \
  build/qwen36-35b-current-best \
  manifests/gfx950/deployments/qwen36-35b-current-best.json

Qwen3.6-35B 배포 레시피에 필요한 gfx950 artifact를 교차 어셈블리하고 생성된 .text 섹션을 잠긴 hash와 비교합니다.

용어 해설

사전 컴파일(Ahead-of-time Compilation)
실행 시점이 아니라 배포 전에 모델 연산을 미리 컴파일하는 방식입니다. Netra Kernel은 모델 계약, 텐서 레이아웃, 데이터 형식, 실행 차원을 사전에 확정하고 AMD GPU용 raw-assembly 커널과 엔진을 생성합니다. 런타임의 동적 분기와 커널 선택 비용을 줄이는 데 목적이 있습니다.
Raw-assembly 커널(Raw-assembly Kernel)
GPU 명령어에 가까운 어셈블리 수준으로 작성된 특화 실행 커널입니다. Netra Kernel은 연산별 스케줄, 레이아웃, LDS, 작업 크기를 컴파일 시점 상수로 고정해 실행 중 shape 분기를 제거합니다. 특정 계약에서 성능과 실행 예측 가능성을 확보하는 대신 지원 범위가 계약에 종속됩니다.
HIP Graph
AMD GPU 작업의 커널 실행과 메모리 작업을 그래프로 기록한 뒤 반복 재생하는 실행 방식입니다. Netra Runtime은 엔진 초기화 과정에서 HIP 핸들을 준비하고 선택적으로 그래프 레시피를 캡처하며, 서비스 요청에서는 캐시된 핸들과 호출자 소유 스트림을 재사용합니다. 반복 실행에서 런치 오버헤드를 줄이는 역할을 합니다.
AMD MI350X
AMD의 GPU 가속기로, 이 저장소의 초기 production backend가 목표로 삼는 하드웨어입니다. 검증된 배포는 8개의 MI350X를 DP8 구성으로 사용하고 gfx950 wave64 커널을 실행합니다. 성능 수치는 이 하드웨어 토폴로지와 특정 그래프 및 요청 집합에 한정됩니다.
Tactic
특정 연산 계약에 사용할 커널 구현과 실행 파라미터를 선택하는 후보입니다. Netra Compiler는 correctness, 수치 의미, 결정성, 성능 근거와 maturity 상태를 기준으로 tactic을 선택하고 엔진에 기록합니다. 단일 microbenchmark가 빠르더라도 전체 서비스 정확성과 그래프 재생을 통과하지 못하면 Accepted 상태로 승격되지 않습니다.

기술

  • Netra Compiler
  • Netra Engine
  • Netra Runtime
  • AMD gfx950
  • wave64
  • AMD MI350X
  • FP8 E4M3
  • HIP Graph
  • ROCm
  • SGLang
  • Python
  • C ABI
  • CMake
  • pkg-config
  • Qwen3.6-35B-A3B-FP8
  • Gemma
  • Llama

활용 사례

  • AMD GPU에서 Qwen3.6-35B-A3B-FP8 serving
  • FP8 routed MoE 추론
  • 고정 decode 및 verification 또는 prefill 프로필 실행
  • SGLang 기반 serving 환경에 승인된 gfx950 artifact 통합
  • CPU 환경에서의 결정적 엔진 artifact 생성과 검증
  • 계약이 일치하는 Gemma 및 Llama 연산 frontend 간 tactic 재사용

언급된 리소스

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 08. 25.수집 2026. 08. 25.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.