이 문서에서는 클러스터 상태 스캐너 (CHS) 도구를 사용하여 GPU 클러스터의 문제를 테스트하는 방법을 설명합니다. Cluster Director에서 만든 클러스터를 테스트하려면 대신 클러스터 상태 모니터링을 참조하세요.
CHS 도구는 GPU 클러스터의 상태를 확인하고 클러스터가 워크로드를 실행할 준비가 되었는지 확인하는 테스트를 실행합니다. CHS를 사용하여 사전 예방적 상태 점검을 실행하거나 워크로드에 문제가 발생할 때 진단 도구로 사용할 수 있습니다. 클러스터 구성을 확인하는 것 외에도 다음 테스트를 실행할 수 있습니다.
- NCCL 점검: NVIDIA Collective Communications Library (NCCL)를 사용하여 GPU 간의 네트워크 통신을 검증합니다.
- GPU 점검: NVIDIA의 Data Center GPU Manager (DCGM) 도구를 활용하여 개별 GPU의 상태를 확인합니다.
- Neper 점검: Neper 도구를 사용하여 클러스터 내의 네트워크 성능을 평가합니다.
- 낙오 항목 감지: LLM 학습 워크로드 파이프라인 병렬 처리 중에 표시되는 패턴과 매우 유사한 노드 간의 네트워크 트래픽 패턴을 실행합니다. 낙오 항목 감지에 대해 자세히 알아보세요.
- Tinymax 점검: 오픈소스 LLM 프레임워크인 Maxtext를 사용하여 클러스터 내의 ML 학습을 평가합니다.
CHS 점검 및 테스트는 작업을 실행하지 않는 노드에서만 실행할 수 있습니다. 사용 중인 노드에서 점검 또는 테스트를 실행하려고 하면 점검 또는 테스트가 실패합니다.
CHS 도구는 클러스터를 만드는 데 사용한 프로비저닝 모델과 관계없이 Google Kubernetes Engine (GKE) 또는 Slurm으로 오케스트레이션되는 GPU 클러스터에 사용할 수 있습니다. 하지만 CHS는 다음 머신 유형에서만 사용할 수 있습니다.
- A4X Max
- A4X
- A4
- A3 Ultra
- A3 Mega
- A3 High
다음 섹션에서는 CHS를 설치하는 방법과 이를 사용하여 상태 점검을 실행하고 구성을 확인하는 방법을 설명합니다.
CHS 설치
다음 절차에 따라 CHS를 설치합니다.
Compute Engine > VM 인스턴스 페이지로 이동합니다.
로그인 노드를 찾습니다. 이름이
DEPLOYMENT_NAME+login-001패턴을 따를 수 있습니다.로그인 노드의 연결 열에서 SSH 를 클릭합니다.
다음 명령어를 사용하여 저장소를 클론하고 저장소의 루트 디렉터리로 이동합니다.
git clone https://github.com/GoogleCloudPlatform/cluster-health-scanner && cd cluster-health-scanner
다음 명령어를 사용하여 Google Cloud CLI의 종속 항목을 설치합니다.
pip3 install -r cli/requirements.txt
선택사항: 각 머신에 대해 다시 인증할 필요 없이
configcheck명령어가 클러스터에서 구성 값을 가져오도록 하려면 다음 명령어를 사용하여 Google Cloud CLI SSH 키를 로컬 SSH 에이전트에 추가합니다.ssh-add ~/.ssh/google_compute_engine
다음 명령어를 사용하여 별칭
cluster_diag을cluster_diag.py에 추가합니다.alias cluster_diag="python3 cli/cluster_diag.py"
상태 점검 실행
CHS를 설치한 후 다음을 실행하여 GPU 클러스터의 상태를 확인합니다.
Compute Engine > VM 인스턴스 페이지로 이동합니다.
로그인 노드를 찾습니다. 이름이
DEPLOYMENT_NAME+login-001패턴을 따를 수 있습니다.로그인 노드의 연결 열에서 SSH 를 클릭합니다.
저장소의 루트 디렉터리에 있는지 확인합니다.
다음 명령어를 사용하여 클러스터의 현재 상태를 확인합니다.
cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE status
다음을 바꿉니다.
ORCHESTRATOR: 사용 중인 오케스트레이터에 따라gke또는slurm입니다.GPU_TYPE: 사용 중인 GPU 머신 유형으로 다음 값 중 하나일 수 있습니다.a4x-maxgpu-4g-metala4x-highgpu-4ga4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
다음 명령어를 사용하여 클러스터 내의 개별 GPU의 상태를 확인합니다.
cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE gpu
다음을 바꿉니다.
ORCHESTRATOR: 사용 중인 오케스트레이터에 따라gke또는slurm입니다.GPU_TYPE: 사용 중인 GPU 머신 유형으로 다음 값 중 하나일 수 있습니다.a4x-maxgpu-4g-metala4x-highgpu-4ga4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
선택사항: 다음 템플릿 명령어를 사용하여 추가 점검을 실행합니다.
--run_only_on_available_nodes플래그를 추가하여 사용할 수 없는 노드를 건너뛰는 것이 좋습니다.cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE CHECK
다음을 바꿉니다.
ORCHESTRATOR: 사용 중인 오케스트레이터에 따라gke또는slurm입니다.GPU_TYPE: 사용 중인 GPU 머신 유형으로 다음 값 중 하나일 수 있습니다.a4x-maxgpu-4g-metala4x-highgpu-4ga4-highgpu-8ga3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
CHECK: 실행하려는 점검입니다. 다음 옵션 중 하나를 사용합니다.- 상태
- nccl
- GPU
- 낙오 항목
- neper
- tinymax
구성 확인하기
CHS를 설치한 후 다음을 실행하여 클러스터의 구성을 확인합니다.
- 저장소의 루트 디렉터리에 있는지 확인합니다.
다음 명령어를 사용하여 클러스터의 구성을 확인합니다. 기본적으로 이 명령어는 차이점을 생성합니다. 차이점을 건너뛰고 구성만 출력하려면
--no-diff플래그를 추가합니다.cluster_diag -o ORCHESTRATOR configcheck GPU_TYPE
다음을 바꿉니다.
ORCHESTRATOR: 사용 중인 오케스트레이터에 따라gke또는slurm입니다.GPU_TYPE: 사용 중인 GPU 머신 유형으로 다음 값 중 하나일 수 있습니다.a4x-maxgpu-4g-metala3-ultragpu-8ga3-megagpu-8ga3-highgpu-8ga3-highgpu-4ga3-highgpu-2ga3-highgpu-1g
다음 스크린샷은 성공적인 구성 점검 결과를 보여줍니다.