테스트 클러스터

이 문서에서는 클러스터 상태 스캐너(CHS) 도구를 사용하여 GPU 클러스터의 문제를 테스트하는 방법을 설명합니다. 클러스터 디렉터에서 만든 클러스터를 테스트하려면 클러스터 상태 모니터링을 대신 참고하세요.

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는 다음 머신 유형에서만 사용할 수 있습니다.

  • A4
  • A3 Ultra
  • A3 Mega
  • A3 High

다음 섹션에서는 CHS를 설치하는 방법과 이를 사용하여 상태 점검을 실행하고 구성을 확인하는 방법을 설명합니다.

CHS 설치

다음 절차에 따라 CHS를 설치합니다.

  1. Compute Engine > VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 로그인 노드를 찾습니다. 이름이 DEPLOYMENT_NAME +login-001 패턴일 수 있습니다.

  3. 로그인 노드의 연결 열에서 SSH를 클릭합니다.

  4. 다음 명령어를 사용하여 저장소를 클론하고 저장소의 루트 디렉터리로 이동합니다.

    git clone https://github.com/GoogleCloudPlatform/cluster-health-scanner && cd cluster-health-scanner
    
  5. 다음 명령어를 사용하여 Google Cloud CLI의 종속 항목을 설치합니다.

    pip3 install -r cli/requirements.txt
    
  6. 선택사항: configcheck 명령어가 각 머신에 대해 다시 인증할 필요 없이 클러스터에서 구성 값을 가져오도록 하려면 다음 명령어를 사용하여 Google Cloud CLI SSH 키를 로컬 SSH 에이전트에 추가합니다.

    ssh-add ~/.ssh/google_compute_engine
    
  7. 다음 명령어를 사용하여 cluster_diag.py의 별칭 cluster_diag을 추가합니다.

    alias cluster_diag="python3 cli/cluster_diag.py"
    

상태 점검 실행

CHS를 설치한 후 다음 단계를 따라 GPU 클러스터의 상태를 확인합니다.

  1. Compute Engine > VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 로그인 노드를 찾습니다. 이름이 DEPLOYMENT_NAME +login-001 패턴일 수 있습니다.

  3. 로그인 노드의 연결 열에서 SSH를 클릭합니다.

  4. 저장소의 루트 디렉터리에 있는지 확인합니다.

  5. 다음 명령어를 사용하여 클러스터의 현재 상태를 확인합니다.

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE status
    

    다음을 바꿉니다.

    • ORCHESTRATOR: 사용하는 오케스트레이터에 따라 gke 또는 slurm입니다.
    • GPU_TYPE: 사용 중인 GPU 머신 유형이며 다음 값 중 하나일 수 있습니다.
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
  6. 다음 명령어를 사용하여 클러스터 내 개별 GPU의 상태를 확인합니다.

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE gpu
    

    다음을 바꿉니다.

    • ORCHESTRATOR: 사용하는 오케스트레이터에 따라 gke 또는 slurm입니다.
    • GPU_TYPE: 사용 중인 GPU 머신 유형이며 다음 값 중 하나일 수 있습니다.
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
  7. 선택사항: 다음 템플릿 명령어를 사용하여 추가 검사를 실행합니다. 사용할 수 없는 노드를 건너뛰려면 --run_only_on_available_nodes 플래그를 추가하세요.

    cluster_diag -o ORCHESTRATOR healthscan GPU_TYPE CHECK
    

    다음을 바꿉니다.

    • ORCHESTRATOR: 사용하는 오케스트레이터에 따라 gke 또는 slurm입니다.
    • GPU_TYPE: 사용 중인 GPU 머신 유형이며 다음 값 중 하나일 수 있습니다.
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g
    • CHECK: 실행할 검사입니다. 다음 옵션 중 하나를 사용합니다.
      • 상태
      • nccl
      • GPU
      • 낙오 항목
      • 네퍼
      • tinymax

구성 확인

CHS를 설치한 후 다음을 실행하여 클러스터 구성을 확인합니다.

  1. 저장소의 루트 디렉터리에 있는지 확인합니다.
  2. 다음 명령어를 사용하여 클러스터의 구성을 확인합니다. 기본적으로 이 명령어는 차이점을 생성합니다. 차이점을 건너뛰고 구성만 출력하려면 --no-diff 플래그를 추가하세요.

    cluster_diag -o ORCHESTRATOR configcheck GPU_TYPE
    

    다음을 바꿉니다.

    • ORCHESTRATOR: 사용하는 오케스트레이터에 따라 gke 또는 slurm입니다.
    • GPU_TYPE: 사용 중인 GPU 머신 유형이며 다음 값 중 하나일 수 있습니다.
      • a4-highgpu-8g
      • a3-ultragpu-8g
      • a3-megagpu-8g
      • a3-highgpu-8g
      • a3-highgpu-4g
      • a3-highgpu-2g
      • a3-highgpu-1g

다음 스크린샷은 성공적인 구성 확인 결과를 보여줍니다.

구성 확인 결과가 성공했습니다.
구성 확인 결과가 성공적으로 표시됨 (확대하려면 클릭)

다음 단계