구글에서 선호하는 출처로 추가

엔비디아, CUDA 13.4에 작업별 GPU 메모리 제한 추가

CUDA 13.4의 MPS V3에 작업별 GPU 메모리 제한 기능이 추가됐다. 쿠버네티스에서 쓰려면 지원 드라이버와 cgroup 환경에 더해 Operator와 스케줄러를 구성해야 한다.

토포AI로 이 기사 더 깊이 읽기

작업용 컴퓨터에 장착되는 GPU 가속기 / TokenPost.ai

CUDA 13.4의 MPS V3에 작업별 GPU 메모리 제한 기능이 추가됐다. 하드 한도를 넘는 메모리 할당은 메모리 부족 오류로 실패한다.

엔비디아($NVDA)는 27일 기술 블로그에서 이 기능을 쿠버네티스 작업에 적용하는 방법을 공개했다. CUDA의 다중 프로세스 서비스인 MPS V3와 리눅스 cgroup을 결합해 컨테이너별 GPU 메모리 사용 범위를 설정하는 방식이다.

메모리 한도는 소프트 한도와 하드 한도로 나뉜다. 소프트 한도는 작업의 메모리 목표치로, 이를 넘겨도 할당은 성공할 수 있다. 다만 실제 메모리 경쟁이 발생하면 MPS가 해당 작업을 퇴출하거나 종료할 수 있다.

하드 한도는 메모리 할당의 최대치다. 이를 초과하는 할당은 메모리 부족 오류로 처리된다. 소프트 한도와 달리 하드 한도는 초과 사용을 허용하지 않는다.

쿠버네티스에서 CUDA 기능만 설치한다고 작업별 GPU가 자동 배정되는 것은 아니다. 스케줄러가 작업을 실행할 GPU와 메모리 요청량, 연산 공유 방식을 정해야 한다.

오픈소스 GPU Fractioning Operator는 설정을 GPU 노드에 적용하고 GPU 전체가 아닌 분할 단위로 메모리·연산 사용량을 측정한다. 스케줄러가 GPU 배정과 모드 선택을 맡고 Operator가 노드에서 제한을 적용하는 구조다.

엔비디아는 KAI Scheduler가 GPU Fractioning을 처음 통합한 스케줄러라고 밝혔다. KAI Scheduler 변경 기록에는 9월 23일 공개된 v0.18.0에 분할 GPU 메모리 요청과 연산 모드 지원이 추가된 것으로 나온다.

작업은 필요한 메모리와 최대 사용 한도를 따로 지정할 수 있다. 최대 사용 한도를 두면 요청한 메모리를 넘겨 사용할 수 있는 범위도 설정할 수 있다.

연산 자원을 나누는 방식은 시간 분할과 SM 공유로 구분된다. 시간 분할은 여러 작업이 GPU 사용 시간을 번갈아 쓰고, SM 공유는 GPU 연산 자원을 여러 작업이 동시에 이용하는 방식이다.

엔비디아는 두 방식의 오류 격리 수준이 다르다고 설명했다. 시간 분할에서는 작업별 오류 영역이 분리되지만, SM 공유에서는 오류 영역을 함께 쓴다. 스케줄러는 두 연산 모드가 같은 GPU에서 섞이지 않도록 관리한다.

기존 GPU 공유 방식인 MIG는 GPU를 하드웨어 단위로 나눈다. 이번 메모리 분할 기능은 MPS V3를 이용해 작업별 메모리 경계를 설정하며, 엔비디아 문서는 MIG 장치에서 이 기능을 지원하지 않는다고 명시했다.

적용 환경도 맞춰야 한다. CUDA 13.4의 새 기능을 사용하려면 R615 이상 드라이버가 필요하고, 메모리 분할에는 리눅스 cgroup v2 환경이 요구된다.

쿠버네티스 클러스터에서는 GPU 노드에 Operator와 이를 지원하는 스케줄러도 구성해야 한다. 따라서 CUDA 13.4 지원 여부만으로 모든 GPU와 클러스터에서 같은 기능을 바로 사용할 수 있는 것은 아니다.

엔비디아가 앞서 러스트 기반 GPU 커널 작성 경로를 공개한 데 이어, 이번에는 여러 작업을 한 GPU에 배치할 때 메모리와 연산 자원을 관리하는 기능을 제시했다.

오늘의 스탬프 0명이 오늘 찍었어요
오늘의 스탬프 0명이 오늘 찍었어요

0

    불러오는 중…

    토큰포스트 앱 다운로드 QR 코드 QR 코드 스캔하고
    ios, Android 앱
    다운로드 하기