View a markdown version of this page

AWS PCS에서 사용자 지정 GRES 설정 구성 - AWS PCS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS PCS에서 사용자 지정 GRES 설정 구성

Slurm은 gres.conf를 사용하여 컴퓨팅 노드에서 GPUs, 다중 프로세스 서비스(MPS) 및 다중 인스턴스 GPU(MIG) 디바이스와 같은 일반 리소스(GRES)를 관리합니다. AWS PCS를 사용하면 컴퓨팅 노드 그룹을 생성하거나 업데이트하는 slurmConfiguration 동안의 gresCustomSettings 속성을 gres.conf 통해 사용자 지정할 수 있습니다.

파라미터 및 값 페어의 플랫 목록인 다른 사용자 지정 설정과 달리 gresCustomSettings는 레코드 목록입니다. 각 레코드는 하나의 GRES 디바이스 또는 리소스를 설명하는 gres.conf 속성 집합입니다. 예를 들어 레코드는 8개의 A100 GPU를 Name=gpu Type=a100 File=/dev/nvidia[0-7] 선언합니다. GPUs

Slurm에서 gres.conf 레코드는 NodeName= 접두사를 지정하지 않는 한 클러스터의 모든 노드에 적용됩니다. AWS PCS는 항상 컴퓨팅 노드 그룹의 NodeName= 접두사를 추가하므로 지정하지 않고 제공하는 모든 레코드는 해당 컴퓨팅 노드 그룹에만 적용됩니다. AWS PCS는 클러스터 전체 gres.conf 레코드를 지원하지 않습니다.

gres.conf 설정 구성

gres.conf 사용자 지정 설정은 컴퓨팅 노드 그룹을 생성하는 동안 AWS 콘솔, CLI 또는 SDKs를 통해 구성하거나 나중에 업데이트 작업을 통해 수정할 수 있습니다.

AWS Management Console

컴퓨팅 노드 그룹 리소스의 생성 또는 편집 페이지에서 추가 스케줄러 설정으로 이동합니다. 한 줄에 하나의 gres.conf 레코드를 네이티브 gres.conf 형식(예: Name=gpu Type=a100 File=/dev/nvidia[0-7])으로 입력합니다.

AWS CLI

프로그래밍 방식의 gres.conf 설정 관리를 위해 컴퓨팅 노드 그룹 생성 또는 업데이트 작업에서 gresCustomSettings 필드를 사용합니다. 목록의 각 요소는 하나의 gres.conf 레코드입니다.

예- 컴퓨팅 노드 그룹의 GPU 디바이스 선언
aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng-1 \ --slurm-configuration \ 'gresCustomSettings=[{Name=gpu,Type=a100,File=/dev/nvidia[0-7]}]'

컴퓨팅 노드 그룹에 지원되는 gres.conf 설정

컴퓨팅 노드 그룹 수준의 각 레코드에서 지원되는 gres.conf 속성은 다음과 같습니다.

각 속성의 의미와 허용되는 값은 Slurm gres.conf 설명서를 참조하세요. AWS PCS는 Slurm이 적용하는 것과 동일한 규칙에 따라 레코드를 검증합니다. 특히 각 레코드는 Name 또는 활성 AutoDetect 값을 선언해야 하며, GPU 레코드(Name=gpu)는 활성 AutoDetect 값이 디바이스를 검색MultipleFiles하지 않는 한 File 또는를 지정해야 합니다.

활성 AutoDetect 값은 nvml 또는와 같이 감지를 켜는 모든 값입니다full.는 AutoDetect=off 감지를 끄므로 활성 값이 아니며 레코드에 단독으로 있을 수 없습니다.

AWS PCS가 gres.conf 레코드를 적용하는 방법

GRES 구성은 Slurm 구성의 두 위치에 나타나며, AWS PCS는 둘 다 씁니다.

  • 에서 제공하는 gres.conf 레코드는 노드에 있는 디바이스를 gresCustomSettings 설명합니다.

  • 의 Gres 설정은 스케줄러가 할당할 수 있는 항목을 형식으로 slurm.conf 선언합니다name[:type]:count. 에서 컴퓨팅 노드 그룹에 대한 사용자 지정 Slurm 설정으로 제공합니다slurmCustomSettings. 자세한 내용은 AWS PCS 컴퓨팅 노드 그룹에 대한 사용자 지정 Slurm 설정 섹션을 참조하세요.

AWS PCS는 레코드를 로 렌더링gres.conf하고 관리하는 GRES 구성으로 조정합니다.

  • 선언한 모든 GPU 레코드는 AWS PCS가 컴퓨팅 노드 그룹에 대해 생성하는 기본 GPU 레코드를 대체합니다. GPU 레코드는 Name=gpu 또는 AutoDetect 속성을 지정하는 레코드입니다.

  • , mps shard또는 자체 리소스 이름과 같은 다른 리소스에 대한 레코드는 AWS PCS 기본값과 함께 추가됩니다.

  • AWS PCS는 GresTypes 설정slurm.conf에서 Gres 설정과의 AccountingStorageTRES 설정 gres/* 항목을 도출합니다.

Slurm 버전 26.05 이상에서는 컴퓨팅 노드 그룹에 Sockets slurmCustomSettings 대해 AutoDetect=full를 설정했거나 AWS PCS가 CPU 토폴로지를 자동으로 감지했기 때문에 노드의 소켓 레이아웃이 알려진 경우 기본적으로 GPU 컴퓨팅 노드 그룹에 AWS PCS가 설정됩니다. 소켓 레이아웃을 사용할 수 없는 경우 AWS PCS는 AutoDetect 대신 GPU 레코드를 내보냅니다.

gres.conf와 Gres 설정 간의 제약 조건

Slurm은 리소스를 예약하기 위해 GRES 구성의 양쪽이 필요하며, 리소스 중 하나에만 나타나는 리소스는 작동하지 않습니다. 뒤에 gres.conf 레코드slurm.conf가 없는의 Gres 설정 항목은 노드가 구성된 것보다 적은 리소스를 보고하고 노드가 드레이닝됩니다. Gres 항목이 없는 레코드는 디바이스가 노드에 있지만 예약할 수 없습니다.

AWS PCS는 컴퓨팅 노드 그룹을 생성하거나 업데이트할 때 두 그룹을 서로 검증하고 다음과 같은 경우 요청을 거부합니다.

  • slurm.conf Gres 항목은 gres.conf 레코드가 선언하지 않는 리소스의 이름을 지정합니다. 여기에는가 포함됩니다gpu. gpu 항목에는 개수가 gresCustomSettings인 경우에도의 GPU 레코드가 필요합니다0.

  • slurm.conf Gres 항목은 gres.conf 레코드 선언보다 더 많은 수의 리소스를 선언합니다. 까지 더 적은 수가 허용됩니다0. gres.conf 레코드는 노드에 있는 디바이스를 설명하는 반면,는 스케줄러가 할당할 수 있는 디바이스 수를 Gres 선언합니다.

  • slurm.conf Gres 항목은 gres.conf에서 선언하는 GPU 레코드가 없는 GPU 유형을 지정합니다.

마지막 두 검사는 레코드가 선언하는 내용에 따라 달라집니다. AWS PCS는 노드가 부팅될 때 Slurm이 검색하는 디바이스를 계산할 수 없으므로 만 활성화하는 레코드는 Gres 항목의 모든 gpu 개수와 유형을 AutoDetect 수락합니다. 이는 MIG 프로파일이 검증을 통과하는 방법입니다. AWS PCS는 공유 GRES(mps 및 shard)에 대한 개수 확인을 건너뛰고 GPU 레코드가를 선언하지 않을 때 유형 확인을 건너뜁니다Type.

AWS PCS는 일치하는 Gres 항목이 없는 레코드를 허용합니다. 리소스는 노드에 존재하지만 작업은 이를 요청할 수 없습니다. Gres 항목을 추가하여 예약할 수 있도록 합니다.

중요

AWS PCS는 레코드의 구문과 Gres 설정과의 일관성을 검증합니다. 하드웨어에 대해 검증하지 않습니다. File, Cores또는 Links 레이아웃이 부팅된 노드의 디바이스와 일치하지 않는 레코드는 노드를 비웁니다. MIG에도 동일하게 적용됩니다. 선언한 프로필은 노드에 구성된 프로필과 일치해야 Gres 합니다. 드레이닝된 노드 진단에 대한 자세한 내용은 섹션을 참조하세요AWS PCS에서 잘못된 노드 등록(INVALID_REG) 문제 해결.