다음을 통해 공유


Azure 인프라(IaaS)의 AI 워크로드에 대한 잘 설계된 고려 사항

Azure 인프라의 AI에 대한 잘 설계된 고려 사항에는 AI 솔루션의 안정성, 보안, 운영 효율성, 비용 관리 및 성능을 최적화하는 모범 사례가 포함됩니다. 이러한 원칙은 Azure의 IaaS 플랫폼에서 강력한 배포, 보안 데이터 처리, 효율적인 모델 작업 및 확장 가능한 인프라를 보장합니다. 이러한 원칙을 적용하면 조직은 비즈니스 요구 사항을 충족하는 복원력 있고 안전하며 비용 효율적인 AI 모델을 빌드할 수 있습니다.

안정성

안정성에는 가동 중지 시간을 최소화하고 Azure 인프라에서 AI 애플리케이션에 대한 일관된 성능을 보장하는 작업이 포함됩니다. 분산된 VM(가상 머신)에서 안정적인 작업을 보장하고 인프라를 변경하는 동안 성능을 유지하면 서비스 중단이 방지됩니다. 이러한 사례는 지속적인 모델 가용성을 보장하고 사용자 환경을 개선하기 때문에 중요합니다.

  • VM을 가용성 영역 분산합니다. 가용성 영역 사용하여 하드웨어 오류 또는 유지 관리 이벤트에서 가동 중지 시간을 최소화합니다. 장애 도메인에 VM을 배포하고 도메인을 업데이트하여 지속적인 애플리케이션 작업을 보장합니다.

  • Azure Monitor를 사용하여 상태 모니터링을 설정합니다. Azure Monitor를 사용하여 VM에서 CPU, 메모리 및 네트워크 성능을 추적하고 모델을 지원하는 인프라의 성능 저하 또는 실패를 알리도록 경고를 구성합니다. 자세한 내용은 Azure Monitor VM Insights를 참조하세요.

  • 롤링 인스턴스를 사용하여 패치 및 업데이트를 자동화합니다. Azure 업데이트 관리를 사용하여 롤링 방식으로 패치를 적용하여 한 인스턴스를 업데이트하고 다른 인스턴스는 계속 트래픽을 처리하여 유지 관리 중 가동 중지 시간을 방지할 수 있습니다.

  • 부분 실패 시 정상적인 성능 저하를 위한 디자인입니다. 일부 VM을 사용할 수 없게 될 때 덜 복잡한 AI 모델을 제공하거나 특정 기능을 제한하여 사용자가 중단 중에도 필수 서비스에 액세스할 수 있도록 하여 핵심 기능을 계속 사용할 수 있도록 합니다.

  • 주요 자산에 대한 정기적인 백업을 구현합니다. 오류가 발생한 경우 신속하게 복원할 수 있도록 모델 데이터, 학습 데이터 세트 및 구성을 정기적으로 백업하여 중요한 진행률 및 데이터를 보호합니다.

보안

보안은 무단 액세스 및 위협으로부터 AI 모델, 데이터 및 인프라를 보호하기 위한 보호 조치를 다룹니다. 중요한 정보를 손상시킬 수 있는 취약성을 방지하기 위해 업데이트를 구현하고, 모델 무결성을 모니터링하고, 액세스를 제어합니다. 이러한 단계는 프로덕션 환경에서 AI 솔루션의 데이터 개인 정보 보호 및 신뢰성을 유지하는 데 필수적입니다.

  • Azure 리소스에 대한 업데이트를 예약합니다. 유지 관리 구성을 사용하여 VM 및 확장에 대한 특정 업데이트 일정을 설정하여 취약성 기간을 줄입니다.

  • 가상 머신 및 컨테이너 이미지를 정기적으로 패치합니다. VM 및 확장 집합에 대한 자동 게스트 패치를 사용하도록 설정하여 새로운 위협에 대한 보안을 유지합니다. 자세한 내용은 게스트 업데이트 및 호스트 유지 관리 개요를 참조하세요.

  • 모델 드리프트를 모니터링하고 무결성을 보장합니다. 무단 수정을 방지하기 위해 모델 파일에 대한 디지털 서명 또는 해시 확인과 같은 보안 메커니즘을 구현하여 모델 무결성을 보장합니다. Azure Monitor를 사용하여 주요 성능 메트릭을 추적하고 잠재적인 보안 취약성 또는 데이터 변화를 나타낼 수 있는 모델 드리프트를 식별합니다. Azure Monitor 메트릭 SDK를 사용하여 코드에서 사용자 지정 메트릭(모델의 정확도, F1 점수 및 데이터 분포)을 정의할 수 있습니다. Azure Monitor 메트릭 SDK를 사용하면 모델의 성능 통계 및 데이터 드리프트 측정값을 Azure Monitor로 보낼 수 있습니다. 시간이 지남에 따라 성능 변경에 대한 모니터링은 모델의 동작이 저하되는 시기를 감지하여 공격 또는 재학습의 필요성을 알리는 데 도움이 될 수 있습니다. 이 사전 예방적 접근 방식은 모델 무결성을 보호하고 보안 규정 준수를 유지하는 데 도움이 됩니다.

  • 감사 및 액세스 로그를 구현합니다. Azure Monitor 및 Log Analytics를 사용하여 모델 및 VM에 대한 액세스를 기록하여 무단 액세스 또는 비정상적인 사용 패턴을 식별할 수 있습니다. 자세한 내용은 Azure Monitor의 활동 로그를 참조하세요.

  • 모델 파일에 버전 제어를 사용합니다. 변경 내용을 추적하기 위한 버전 관리를 사용하여 Azure Storage(Blob, 파일 또는 디스크)에 모델 파일을 저장하여 유해한 수정 사항을 식별하고 롤백하기 위한 명확한 감사 내역을 보장합니다. 버전 제어에 Azure DevOps를 사용하면 코드 변경에 대한 액세스를 관리하고 코드 검토에서 모범 사례를 적용하여 보안을 강화합니다. 이 계층화된 접근 방식은 무단 변경의 위험을 완화하고 책임을 제공합니다. 자세한 내용은 Azure Storage의 Blob 버전 관리를 참조 하세요.

  • 모델 출력에 대한 변칙 검색을 설정합니다. Azure Monitor를 사용하여 모델의 출력 메트릭을 추적하고 비정상적인 동작에 대한 경고를 설정합니다. 예를 들어 모델에서 API 응답을 모니터링하면 비정상적인 출력을 검색하는 데 도움이 될 수 있습니다. 예측 정확도와 같은 메트릭에서 변칙 검색을 설정하여 예상 범위를 벗어나는 경우 자동으로 검색할 수 있습니다. 자세한 내용은 동적 임계값을 사용하여 메트릭 경고 만들기 및 관리를 참조하세요.

  • 모델 액세스 정책을 적용합니다. Azure RBAC(역할 기반 액세스 제어) 및 Microsoft Entra ID를 사용하여 VM 및 모델 파일에 대한 액세스를 보호하여 권한 있는 사용자에 대한 액세스만 제한합니다.

  • 업데이트된 데이터에 대해 모델의 유효성을 정기적으로 다시 검사합니다. VM에서 자동화된 스크립트 또는 워크플로를 사용하여 모델의 주기적인 유효성 재검사 구현을 통해 모델이 현재 데이터 세트에 대해 정확하고 효과적으로 유지되어 오래되거나 부정확한 예측으로 인한 위험을 완화할 수 있습니다. Azure Automation 또는 Azure Logic Apps를 사용하여 이러한 작업을 예약하면 데이터 표준 준수를 유지하고 전반적인 모델 보안을 강화할 수 있습니다. 이 사전 예방적 접근 방식은 취약성을 조기에 식별하여 지속적인 개선을 보장하고 잠재적 위협으로부터 보호하는 데 도움이 됩니다. 주기적으로 유효성 재검사 작업을 트리거하도록 자동화 워크플로를 예약할 수 있습니다. Azure Automation Runbook으로 시작하고, 가상 머신에서 실행하고, 적절한 일정을 만들어 유효성 검사 결과를 가져옵니다.

  • 데이터 계보 및 모델 파일 변경 내용을 추적합니다. Azure Blob Storage에서 버전 관리 사용 및 학습 및 유추에 사용되는 데이터를 추적하여 무단 데이터가 모델 결과에 영향을 주지 않도록 합니다.

  • 리소스 할당량 및 속도 제한을 적용합니다. Azure API Management를 통해 모델 API에 대한 속도 제한 및 할당량을 구현하여 남용 또는 남용을 방지하여 시스템 취약성 또는 서비스 중단을 초래할 수 있습니다. 이 전략은 트래픽이 많은 동안 시스템이 응답성을 유지하고 서비스 거부 공격과 관련된 위험을 완화합니다. 액세스를 제어하여 성능을 유지하고 잠재적인 악용 API Management 할당량 및 제한으로부터 중요한 데이터를 보호할 수 있습니다.

  • 정기적인 취약성 검사를 수행합니다. Microsoft Defender 취약성 검사를 사용하여 VM 및 관련 리소스에 대한 취약성 평가를 수행합니다. VM 설정에서 모델을 노출할 수 있는 보안 문제 또는 잘못된 구성을 정기적으로 확인합니다. Microsoft Defender 취약성 검사.

비용 최적화

비용 최적화에는 불필요한 비용을 방지하기 위해 리소스 사용량을 워크로드 요구 사항에 맞게 조정해야 합니다. VM 크기 조정, 예약 인스턴스 커밋 및 자동 크기 조정 설정은 성능을 손상시키지 않고 비용을 관리하는 데 도움이 됩니다. Azure 인프라에서 비용을 제어하는 것은 AI 배포의 장기적인 지속 가능성과 확장성을 위해 매우 중요합니다.

  • 예약 인스턴스에 커밋합니다. 할인된 요금을 제공하는 1년 또는 3년 기간으로 커밋하여 VM(가상 머신) 비용을 절감합니다.

  • 자동 크기 조정을 위해 Azure Virtual Machine Scale Sets를 사용합니다. 자동으로 크기 조정 CPU 사용량과 같은 메트릭을 기반으로 하는 VM 인스턴스는 필요한 것에 대해서만 지불하고 과잉 프로비저닝을 방지합니다.

  • 유휴 인스턴스에 대한 자동 종료를 설정합니다. 특히 개발 및 테스트 환경에서 자동 종료를 사용하도록 설정하여 사용되지 않는 리소스의 비용을 방지합니다.

  • 예측 가능한 사용을 위해 Azure 저축 플랜을 사용합니다. VM 크기 및 지역에서 일관된 사용량을 커밋하여 종량제 가격 대비 비용을 절감합니다.

  • 내결함성 워크로드에 Azure Spot 인스턴스를 사용합니다. 중단을 허용할 수 있는 워크로드의 예비 용량에 대한 상당한 할인을 받습니다.

  • 올바른 스토리지 솔루션을 선택합니다. 워크로드 요구 사항에 따라 비용 및 성능의 균형을 조정합니다. 고급 데이터 관리 및 안정성을 위해 높은 처리량, 대규모 애플리케이션 및 ANF(Azure NetApp Files)에 대해 AMLFS(Azure Managed Lustre)를 선택합니다.

운영 우수성

운영 우수성에는 AI 애플리케이션의 기능을 개선하기 위해 Azure 리소스의 구성 및 관리를 최적화하는 작업이 포함됩니다. 효율적인 리소스 할당, 성능 튜닝 및 분산 학습은 다양한 수요에 대한 원활한 운영 및 적응성을 지원합니다. 운영 효율성에 중점을 두면 과도한 리소스 사용 없이 AI 모델이 의도한 대로 수행됩니다.

  • 리소스 할당을 최적화합니다. 워크로드 요구 사항에 맞게 실제 리소스 사용량에 따라 Azure VM 크기 및 구성을 정기적으로 검토합니다. 최적의 크기 조정 및 크기 조정에 대한 권장 사항은 Azure Advisor를 사용합니다.

  • 효율성을 위해 자동 크기 조정을 구성합니다. 과도하게 프로비저닝하지 않고 워크로드 요구를 처리하도록 VM 또는 컨테이너에 대한 자동 크기 조정을 설정합니다. Azure Virtual Machine Scale Sets를 사용하여 수요에 따라 동적으로 리소스를 조정합니다. 자세한 내용은 Azure Virtual Machine Scale Sets를 참조 하세요.

  • 정기적인 성능 조정을 수행합니다. 지속적으로 애플리케이션을 프로파일하여 성능 병목 상태를 식별하고 해결합니다. Application Insights Profiler를 사용하여 모델 코드 및 리소스 사용량을 분석합니다.

  • 효율성을 위해 분산 학습을 구현합니다. 해당하는 경우 분산 학습 기술을 사용하여 여러 VM을 사용하여 학습 시간을 줄입니다. Horovod 및 PyTorch와 같은 프레임워크는 Azure에서 분산 교육을 지원합니다.

  • Azure Blob Storage에 검사점을 저장합니다. 모델 상태, 가중치 및 구성을 Azure Blob Storage에 주기적으로 저장합니다. LLM에 사용 중인 프로그래밍 언어로 사용할 수 있는 Azure SDK 또는 라이브러리를 사용할 수 있습니다. TensorFlow SavedModel 또는 PyTorch 검사점 파일과 같은 구조화된 형식으로 검사점을 저장합니다. 검사점 논리를 포함하도록 학습 또는 유추 코드를 수정합니다. 모델의 상태를 저장하려면 간격 설정(모든 Epoch 또는 일부 반복 후)으로 시작합니다. 검사점 파일에 일관된 명명 규칙을 사용하여 최신 상태를 쉽게 추적할 수 있습니다.

  • 상태 복구를 위한 디자인입니다. 애플리케이션이 저장된 검사점에서 복구할 수 있는지 확인합니다. 애플리케이션이 시작될 때 Azure Blob Storage에서 모델의 상태를 로드하는 논리를 구현합니다. 여기에는 기존 검사점을 확인하고 사용 가능한 경우 최신 검사점을 로드하여 진행률을 잃지 않고 애플리케이션을 다시 시작할 수 있도록 하는 것이 포함됩니다.

성능 효율성

성능 효율성은 AI 모델 요구를 충족하기 위해 Azure 인프라의 처리 능력을 극대화하는 것을 의미합니다. GPU 설정을 조정하고, I/O(입력/출력) 프로세스를 최적화하고, 벤치마킹 테스트를 실행하여 계산 속도와 응답성을 향상시켜야 합니다. 고성능을 보장하면 대규모로 복잡한 AI 모델을 실행할 수 있으므로 사용자 만족도를 높이고 대기 시간을 줄일 수 있습니다.

GPU 튜닝

특히 높은 그래픽 처리 또는 복잡한 계산이 필요한 작업의 경우 성능을 향상시키기 위해 GPU(그래픽 처리 장치)의 클록 속도를 높입니다. 클록 속도가 높아지면 GPU가 지정된 기간에 더 많은 작업을 실행할 수 있으므로 전반적인 효율성이 향상됩니다. 이 GPU 최적화 스크립트 를 사용하여 GPU 클록 주파수를 최대값으로 설정합니다.

  • 가속화된 네트워킹을 사용하도록 설정합니다. 가속 네트워킹은 가상 머신이 지원되는 가상 머신 유형에서 단일 루트 I/O 가상화(SR-IOV)를 사용할 수 있도록 하는 하드웨어 가속 기술입니다. 대기 시간이 짧고 지터가 줄어들며 CPU 사용률이 감소합니다. 가속화된 네트워킹을 사용하도록 설정하면 프런트 엔드 네트워크 성능이 크게 향상됩니다.

I/O 튜닝

  • 스크래치 스토리지를 최적화합니다. 스크래치에는 높은 처리량과 짧은 대기 시간이 있어야 합니다. 학습 작업에는 데이터를 읽고, 처리하고, 작업이 실행되는 동안 이 스토리지 위치를 스크래치 공간으로 사용해야 합니다. 이상적으로는 각 VM에서 직접 로컬 SSD를 사용하는 것이 좋습니다. 공유 파일 시스템이 스크래치에 필요한 경우 모든 NVMe SSD를 결합하여 PFS(병렬 파일 시스템)를 만드는 것이 충분한 용량을 가지고 있다고 가정하면 비용 및 성능 측면에서 좋은 옵션이 될 수 있습니다. 한 가지 방법은 Azure Managed Lustre를 사용하는 것입니다. Azure Managed Lustre가 적합하지 않은 경우 Azure NetApp Files 또는 Azure Native Qumulo와 같은 스토리지 옵션을 탐색할 수 있습니다.

  • 검사점 스토리지를 구현합니다. 대규모 딥 러닝 학습 작업은 사용된 VM 수에 따라 몇 주 동안 실행할 수 있습니다. HPC 클러스터와 마찬가지로 InfiniBand 문제, DIMM(이중 인라인 메모리 모듈) 오류, GPU 메모리의 ECC(오류 수정 ode) 오류와 같은 오류가 발생할 수 있습니다. 검사점 전략을 사용하는 것이 중요합니다. 검사점 간격(데이터가 저장되는 경우)을 알고 있습니다. 매번 전송되는 데이터의 양을 이해합니다. 용량 및 성능 요구 사항을 충족하는 스토리지 솔루션이 있습니다. 성능 요구 사항을 충족하는 경우 Blob Storage를 사용합니다.

벤치마킹 테스트

벤치마킹 테스트는 특히 대규모 모델의 경우 GPU에서 분산된 딥 러닝 학습 성능을 평가하고 개선하는 데 도움이 됩니다. 이러한 테스트는 분산 학습 중에 데이터 전송 병목 상태를 줄이는 것을 목표로 노드 간 GPU 통신의 효율성을 측정합니다. 설명된 세 가지 테스트는 다음과 같습니다.

  • Megatron 프레임워크: 분산 학습 효율성을 개선하여 대규모 언어 모델을 지원합니다.
  • NVIDIA NCCL(집합 통신 라이브러리) 및 RCCL(ROCm Communication Collectives Library) 테스트: NCCL 또는 RCCL 라이브러리를 사용하여 다중 GPU 통신의 성능 및 정확도를 평가하고, all-reduce 및 scatter와 같은 패턴을 테스트합니다.

이러한 테스트는 모델 학습에 중점을 둔 Megatron과 GPU 통신에 대한 NCCL/RCCL을 사용하여 LLM의 확장성과 최적의 성능을 보장합니다.

NVIDIA Megatron-LM 테스트

NVIDIA Megatron-LM은 대규모 언어 모델을 학습시키기 위한 오픈 소스 프레임워크입니다. 개발자는 다음과 같은 기능을 사용하여 NLP 작업을 위한 대규모 신경망을 만들 수 있습니다.

  • 병렬 처리: 수십억 개의 매개 변수 모델에 대한 모델, 데이터 및 파이프라인 병렬 처리를 지원합니다.
  • 확장성: 효율적인 대규모 모델 학습을 위해 여러 GPU 및 노드에서 스케일링합니다.
  • 유연성: 모델 아키텍처, 데이터 로드 및 학습 전략을 구성할 수 있습니다.
  • 최적화: 성능 향상을 위해 NVIDIA GPU 최적화를 사용합니다.

Megatron-LM은 Azure HPC 인프라에 배포되며 온-프레미스 하드웨어 없이도 대규모 언어 모델에 Azure의 확장성을 사용합니다.

Megatron-LM 테스트 설정

Megatron-LM을 배포하려면 특정 소프트웨어 및 하드웨어가 필요합니다.

  • 올바른 배포 옵션을 선택합니다. Slurm용 CycleCloud 작업 영역을 사용하여 배포를 간소화합니다. GPU 파티션에 대해 NC 시리즈 또는 ND 시리즈 SKU를 선택합니다. 다중 노드 학습의 경우 RDMA 지원에 ND 시리즈 SKU를 사용하는 것이 좋습니다. Azure의 HPC 마켓플레이스 이미지에는 일반적으로 이러한 드라이버 및 라이브러리가 포함됩니다. 사용자 지정이 필요한 경우 azhpc-images 리포지토리는 호환성을 보장할 수 있습니다.

  • 올바른 이미지를 사용합니다. 프로젝트에 대한 소프트웨어 요구 사항에는 Linux 기반 운영 체제(일반적으로 Ubuntu)가 포함됩니다. 다중 GPU 및 다중 노드 통신의 경우 NCCL 및 MPI와 같은 통신 라이브러리가 있어야 합니다. 또한 GPU 가속을 보장하기 위해 적절한 NVIDIA 드라이버를 설치해야 합니다. Azure의 HPC 마켓플레이스 이미지 에는 이러한 드라이버 및 라이브러리가 미리 설치되어 있습니다. 그러나 사용자 지정이 필요한 경우 azhpc-images 리포지토리를 사용하여 호환성을 보장할 수 있습니다.

Megatron-LM 테스트 사용

NGC PyTorch 컨테이너최신 릴리스를 사용하여 Megatron-LM을 실행해야 합니다. 기존 Slurm 기반 HPC 클러스터에 대해 컨테이너를 실행하려면 클러스터에서 이러한 다른 구성 요소를 설치하고 구성해야 합니다.

  • enroot: 사용자가 루트 권한을 요구하거나 호스트 시스템을 수정하지 않고도 HPC 클러스터에서 컨테이너화된 애플리케이션을 실행할 수 있는 도구입니다.
  • pyxis: Slurm과 enroot를 원활하게 통합하여 사용자가 Slurm 큐에 컨테이너화된 작업을 제출하고 HPC 노드에서 실행할 수 있도록 하는 Slurm용 플러그 인입니다.

이러한 구성 요소는 모두 Slurm용 CycleCloud 작업 영역에 포함되어 있지만 현재 CycleCloud를 통해 빌드된 Slurm 클러스터에는 포함되지 않습니다. CycleCloud 프로젝트를 사용하여 cluster-init를 통해 이러한 추가 구성 요소를 소개할 수 있습니다. 이러한 요구 사항이 충족되면 다음을 통해 LLM 학습에 Megatron-LM을 사용할 수 있습니다.

  • 클러스터 성능 확인: 노드 상태 검사를 사용하여 워크로드를 실행하기 전에 잠재적인 하드웨어 문제를 식별합니다. NCCL 테스트를 사용하여 클러스터의 분산된 전체 감소 성능을 확인합니다.
  • 학습 데이터 선택: codeParrot 모델을 시작점으로 사용하여 워크플로의 유효성을 검사합니다.
  • 데이터 전처리: Megatron-LM 리포지토리 내의 preprocess_data.py 스크립트를 사용하여 데이터를 Megatron-LM과 호환되는 형식으로 변환합니다.
  • Megatron-LM을 사용한 교육: Megatron-LM 내의 예제를 참조로 사용하여 학습을 위해 Megatron을 구성합니다.

이 설정을 통해 Azure 인프라에서 대규모 언어 모델을 효율적으로 배포하고 학습할 수 있습니다.

NCCL 대역폭 테스트

노드 간에 GPU 통신을 확인하고 최적화하려면 NCCL 대역폭 테스트를 실행합니다. NCCL 대역폭 테스트는 GPU 간의 고속 통신을 용이하게 하는 라이브러리인 NCCL 내의 특수 도구입니다. NCCL은 단일 또는 다중 GPU 노드에서 전체 축소, 전체 수집, 축소, 브로드캐스트 및 축소 분산을 비롯한 집단 작업을 지원하며 PCIe, NVLink, NVswitch 또는 InfiniBand 또는 TCP/IP와 같은 네트워킹 설정을 사용하여 플랫폼에서 최적의 성능을 달성합니다. 자세한 내용은 NVIDIA/NCCL 테스트를 참조 하세요.

NCCL 성능 메트릭

NCCL 대역폭 테스트를 사용하여 시간 및 대역폭을 포함한 주요 메트릭을 평가합니다. "시간"(밀리초)은 작업의 오버헤드 또는 대기 시간을 측정하여 데이터 크기가 작은 작업을 평가하는 데 유용합니다. "대역폭"(GB/s)은 송신/받기와 같은 지점 및 지점 간의 작업 효율성을 평가합니다. "버스 대역폭"은 NVLink 또는 PCI와 같은 구성 요소에서 GPU 간 통신 속도 및 병목 상태를 고려하여 하드웨어 사용 효율성을 반영합니다. AllReduce, ReduceScatter, AllGather, 브로드캐스트 및 Reduce와 같은 다양한 집단 작업에 대한 계산이 제공됩니다.

NCCL 테스트 시작

CycleCloud 배포 내에서 이러한 테스트를 시작하려면 SSH를 통해 스케줄러 노드에 연결하고 GPU가 장착된 컴퓨팅 노드에 액세스합니다. NCCL 테스트용 Git 리포지토리를 복제하고, 디렉터리로 이동하고, 테스트할 nccl-tests 노드를 나열하는 호스트 파일을 만듭니다. CycleCloud의 웹앱에서 스케줄러 노드의 IP 주소를 가져옵니다.

NCCL 테스트 인수

테스트를 실행하기 전에 스레드당 GPU 수(), 데이터 크기 범위(-g최소 바이트 및 -e 최대 바이트), 단계 증가(-i-b또는-f), 감소 작업 유형(), 데이터 형식(-o), 루트 디바이스(-d), 반복 수(-r), 준비 횟수(-w-n) 및 CUDA 그래프 설정(-G)과 같은 다른 인수를 지정합니다. 조정 가능한 매개 변수의 전체 목록은 NCCL 테스트 설명서를 참조하세요.

RCCL 테스트

RCCL(ROCm Communication Collectives Library)은 AMD GPU 간의 효율적인 통신을 위해 설계된 특수 라이브러리입니다. 전체 감소, 전체 수집, 브로드캐스트 및 축소와 같은 집단 작업을 제공하여 노드 내 및 노드 간 GPU 통신을 모두 지원합니다. PCIe 및 InfiniBand와 같은 네트워킹 기술을 사용하는 플랫폼에 최적화된 RCCL은 다중 GPU 환경에서 확장 가능한 데이터 전송을 보장합니다. MPI를 사용하는 워크플로와 같은 단일 및 다중 프로세스 워크플로에 대한 통합을 지원합니다. 자세한 내용은 ROCm Communication Collectives 라이브러리를 참조 하세요.

  • 환경을 설정합니다. ROCm을 설치하고 RCCL이 모든 노드에 제대로 설치되어 있는지 확인합니다.
  • RCCL 테스트를 빌드합니다. 리포지토리를 복제하고, rccl-tests 디렉터리로 이동하고, 테스트를 컴파일합니다.
  • 대역폭 테스트를 실행합니다. 제공된 테스트 실행 파일(rccl-tests)을 사용하여 all-reduce와 같은 통신 작업을 지정합니다.
  • 성능 분석 노드와 GPU의 대역폭 및 대기 시간 결과를 비교합니다.

다음 단계