AI Briefing

Vx, 타입 시스템으로 이기종 컴퓨팅 메모리 지역성 강제

·2026.10.05 09:00

핵심 내용

Vx는 타입 시스템으로 메모리 지역성을 강제해 호스트-디바이스 포인터 오류를 컴파일 시점에 차단한다.

자세히 보기

Vx는 이기종 컴퓨팅을 위한 시스템 프로그래밍 언어로, CPU, GPU, NPU 및 가속기 메모리를 타입 시스템에 통합했다. 기존 언어가 하드웨어 경계를 런타임 인프라로 취급하는 것과 달리, Vx는 데이터 지역성을 컴파일 타임에 강제하여 호스트-디바이스 포인터 접근 오류를 런타임 세그폴트가 아닌 컴파일 오류로 처리한다.

타입 기반 메모리 지역성 강제

핵심 전제는 이질성이 런타임이 아닌 타입 시스템에 속한다는 것이다. NPU 고대역폭 메모리에 고정된 텐서는 호스트 DRAM의 텐서와 다른 타입을 가진다. Apple의 통합 메모리 아키텍처처럼 물리적으로 경계가 없는 경우에도 경계를 넘나들려면 명시적인 transfer() 호출이 필요하다. 이를 통해 런타임 검사 없이 데이터 지역성을 증명할 수 있다.

컴파일러는 엄격한 타입 지정을 통해 다음과 같은 오류를 방지한다:

  • 역참조 안전성: 호스트 코드는 디바이스 메모리에 고정된 포인터를 역참조할 수 없다.
  • 용량 검증: 실행 전 선언된 하드웨어 한계에 대해 배치를 확인한다.
  • 가시성 검사: 비동기 전송이 가시화되기 전 데이터 접근을 차단한다.
  • 선형 타입: 소유권 추적을 통해 이동 후 사용 오류를 감지한다.

하드웨어 인식 컴파일

Vx는 비용 모델을 하드코딩하지 않는다. 대신 특정 하드웨어 부품의 메모리 계층과 상호 연결을 설명하는 머신 파일을 사용한다. 컴파일러는 이러한 선언된 기능에 따라 코드 배치를 허용하거나 거부한다.

저장소에는 주요 가속기에 대한 머신 파일이 포함되어 있다:

  • NVIDIA H100, H200, B200, A100
  • AMD MI300X
  • Apple M4 및 멀티 GPU 노드

이 파일들은 정확한 SI 단위(예: GiB vs GB)를 사용하며 대역폭 및 용량 수치의 출처를 인용한다. 검증되지 않은 사양은 명시적으로 표시된다.

컴파일 아키텍처

Vx 컴파일러는 병렬성과 결정성을 위해 설계되었다. 심볼을 포인터 추적 대신 인덱싱하는 평면 배열 기반 중간 표현을 사용한다. 이를 통해 중앙 잠금이나 쿼리 엔진 없이 프론트엔드를 병렬로 실행할 수 있다. 컴파일러는 스레드 수와 관계없이 동일한 MLIR 출력을 생성하여 재현 가능한 빌드를 보장한다.

백엔드 지원 및 제한 사항

Vx는 현재 MLIR 컴파일을 지원하며 다음 백엔드를 제공한다:

  • x86-64 및 ARM64 CPU (LLVM IR 경유)
  • NVIDIA GPU (NVVM/PTX/SASS 경유)
  • Apple AMX/ANE (CoreML 기본 디스패치 플러그인 경유)
  • 분산 시스템 (매니페스트 기반 원격 영역 경유)

이 언어는 빠른 프로토타이핑이나 동적 워크로드용으로 설계되지 않았다. 이기종 디바이스 전반에서 성능 예측 가능성과 메모리 안전성이 중요한 시스템 프로그래밍을 목표로 한다. Apple Silicon macOS 및 Linux x86_64에서 사용 가능하다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.