1년 전, GDS 및 관련 에코시스템이 아직 생소하던 시절에 NetApp® ONTAP®의 NVIDIA GPUDirect Storage™(GDS) 기술 지원에 대한 블로그 포스팅을 작성한 적이 있습니다. 새로운 것이라면 항상 개선의 여지가 많기 마련이고, RDMA over NFS의 초기 릴리스도 예외는 아니었습니다. NetApp의 혁신은 언제나 그렇듯이 NVIDIA와의 협업을 통해 최신 버전의 ONTAP이 ‘개선의 여지’라는 과제를 해결하고 그 이상을 달성했습니다.
최신 릴리스는 RDMA 및 GDS를 통한 NFS의 성능을 크게 향상시켰으며, 이제 여러분과 같은 고객은 ONTAP 스토리지 클러스터에서 단일 NVIDIA DGX A100 컴퓨팅 노드로 171GiBps 이상의 성능을 얻을 수 있습니다. 따라서 데이터센터 표준 프로토콜 및 기술을 사용하여 가장 간단한 배포 및 운영 환경을 제공하면서 머신 러닝 및 딥 러닝(ML/DL) 워크로드에 대해 최고 수준의 성능을 달성할 수 있습니다. 기존 ONTAP 시스템에 적절한 네트워크 어댑터가 있는 경우, ONTAP 9.12.1 이상 버전으로 업데이트하는 것만으로 무료 업그레이드를 통해 이 수준의 성능을 추가할 수 있습니다.
NVIDIA GDS 작동 방식에 대한 알림
간단히 설명하자면, GDS는 스토리지 시스템과 호스트 GPU 메모리 간에 RDMA 기반 데이터 전송을 가능하게 합니다. GDS를 사용하면 데이터가 호스트 네트워크 인터페이스에서 GPU 메모리로 직접 이동하여 CPU 인터럽트 및 메인 메모리 바운스 버퍼를 비롯한 전송 프로세스의 여러 단계를 우회할 수 있습니다. 그 결과 전송 지연 시간이 크게 줄어들고, 프로세스에서 CPU와 시스템 메모리 사용률이 완전히 제거되어 사용량이 감소합니다. 다음 그림은 GDS가 데이터 전송 프로세스를 간소화하는 방법을 보여줍니다.
ONTAP 및 NFS 개선으로 GDS가 AI/ML을 위해 리소스를 최적화하는 방법
ONTAP은 GDS의 NFS over RDMA 사용을 지원하지만, 부모의 NFS는 아닙니다. NFS는 수십 년 동안 사용되어 왔으며 기업에서 어디에나 존재하지만, 일반적으로 최고 수준의 성능이 필요하지 않은 워크로드에 대해서는 보조 또는 보조 스토리지로 강등됩니다. 이러한 할당 수준은 종종 이더넷과 NFS의 오래된 구현 경험 때문인 경우가 많습니다. 하지만 두 기술이 크게 개선되면서 이제 NFS는 기존의 고성능 컴퓨팅(HPC) 환경에 필요한 전용 하드웨어나 소프트웨어 클라이언트 없이도 AI/ML 워크로드에 필요한 성능을 제공할 수 있게 되었습니다. NFSv4.x에서 RDMA를 사용하면 스토리지 시스템과 호스트 CPU에서 데이터 전송 프로세스를 오프로드하여 NFS의 TCP 관련 성능 문제를 해결하고 높은 처리량과 짧은 지연 시간을 구현할 수 있습니다. 앞서 언급했듯이 GDS는 이 기능을 사용하여 귀중한 GPU 리소스의 성능과 활용도를 최적화하지만, 다른 CPU 기반 워크로드에서도 애플리케이션 수준의 데이터 액세스를 변경하지 않고도 이러한 이점을 활용할 수 있습니다.
이러한 수준의 성능은 대규모의 효율적인 AI 운영을 위해 매우 중요하지만, 프로덕션 ML/DL 및 분석 워크로드를 확장할 때 항상 성능이 가장 큰 문제가 되는 것은 아닙니다. 이러한 워크로드에는 일반적으로 모델 학습 작업에 새롭고 정제된 데이터를 지속적으로 공급하기 위한 복잡한 데이터 파이프라인이 필요합니다. 또한 코어, 엣지, 클라우드 위치에 걸쳐 데이터의 흐름을 관리하는 것은 AI를 표준 비즈니스 관행에 통합하는 데 필수적입니다. NetApp ONTAP에는 데이터 흐름을 간소화하는 자동화된 하이브리드 클라우드 데이터 파이프라인을 구축할 수 있는 업계 최고의 데이터 관리 툴이 포함되어 있습니다. 데이터 엔지니어와 데이터 과학자는 필요할 때 필요한 곳에서 데이터를 사용할 수 있기를 기다리는 시간을 줄이면서 자신의 기술에 더 많은 시간을 할애할 수 있습니다.
최적화된 성능을 입증하기 위한 테스트
테스트 설정
Sr. Performance Engineer, Rodrigo Nascimento가 이끄는 넷앱 성능 엔지니어링 팀은 ONTAP 9.12.1에서 제공되는 성능 향상을 입증하기 위해 4개의 넷앱 AFF A800 스토리지 시스템을 사용하여 통합 스토리지 클러스터를 구축했습니다. 이 테스트에서는 각 시스템에 24개만 사용되었지만, 각 시스템은 최대 48개의 NVMe SSD 드라이브를 포함하는 4RU 섀시에 2개의 HA 스토리지 컨트롤러로 구성되었습니다.
이 컨트롤러들은 한 쌍의 표준 1RU NetApp 클러스터 상호 연결 스위치와 연결되어 총 스토리지 시스템 상면이 18RU에 불과했습니다. A800 컨트롤러는 각각 최대 4개의 I/O PCIe 카드를 지원하며, 이 테스트에서는 각 컨트롤러에 2개의 듀얼 포트 100Gb/s 이더넷 카드(NetApp P/N X1148, NVIDIA ConnectX-5 SmartNIC)를 장착했습니다. 각 컨트롤러의 포트 2개는 NVIDIA Cumulus Linux 4.4를 실행하는 NVIDIA SN3700V 이더넷 스위치에 연결했습니다.
이 환경의 클라이언트를 위해 각각 2개의 200GbE 포트를 통해 SN3700V 스위치에 연결된 두 개의 DGX A100 시스템과 각각 4개의 100GbE 포트를 통해 SN3700V 스위치에 연결된 두 개의 DGX-1 시스템을 사용했습니다. 아래 그림은 이 평가에 사용된 토폴로지를 보여줍니다.
논리적 관점에서 네트워크는 각 스토리지 컨트롤러의 포트 1개를 포함한 2개의 별도 VLAN으로 프로비저닝되었고, 각 물리적 포트에 2개의 논리적 인터페이스가 구성되었습니다. 또한 각 VLAN에는 각 DGX A100 시스템의 포트 1개와 각 DGX-1 시스템의 포트 2개가 포함되어 있었습니다. 각 VLAN의 호스트 포트는 두 개의 서브넷 IP 범위 중 하나의 주소로 구성되었으며, 각 서버가 사용 가능한 모든 대역폭을 활용하고 라우팅 문제를 피할 수 있도록 각 서브넷에 논리적 스토리지 포트가 구성되었습니다. 테스트 중인 데이터를 포함하기 위해 스토리지 노드당 하나의 FlexGroup씩 8개의 구성 요소로 구성된 8개의 ONTAP FlexGroup을 생성하고 각각에 폴더를 생성하여 별도의 동시 테스트 인스턴스에서 사용되는 데이터를 격리했습니다. RDMA를 위해 ONTAP을 구성하는 방법과 필요한 클라이언트 마운트 옵션에 대한 자세한 내용은 ONTAP documentation를 참조하세요.
테스트 결과
이 검증에 사용한 테스트는 GDS 성능 및 기능 검증을 위한 NVIDIA 도구인 gdsio입니다. 이 도구는 기본적으로 usr/local/cuda/gds/tools/에 GDS 패키지와 함께 설치됩니다. 클라이언트에서 동시에 실행되는 여러 개의 gdsio 워커 스레드에서 생성된 순차적 읽기 I/O 스트림을 사용하여 다음과 같은 결과를 얻었습니다. 첫째, 평균 성능 데이터를 얻고 둘째, 일관성을 보장하기 위해 각각 1시간 동안 여러 테스트를 실행했습니다.
사용한 구체적인 gdsio 명령 매개변수는 다음과 같습니다:
-s 256m – 각 gdsio 스레드가 전송하는 파일 크기
-I 1024k – 전송 블록 크기.
-x 0-전송 모드 = GPUDirect.
-I 0 – 전송 유형 = 읽기.
-T 3600-실행 시간 = 1시간.
-D <마운트 포인트>-마운트 포인트는 각 호스트에서 사용 가능한 스토리지 포트에 걸쳐 분할되었습니다.
-d – 각 작업에 대한 GPU를 지정하며, 작업은 각 호스트의 모든 GPU에서 동시에 실행되었습니다.
-n <누마 노드> – 각 GPU에 대한 최적의 NUMA(비균일 메모리 액세스) 노드로, nvidia-smi topo -m에 의해 결정됩니다.
-w <스레드 수> – 마운트 포인트당 스레드 수는 시스템 확장에 따라 호스트별로 조정되었습니다.
앞서 설명한 구성 및 테스트 매개변수를 사용하여 ONTAP 스토리지 클러스터는 gdsio 도구에서 보고한 대로 171GiBps를 제공했습니다. 다음 그래프는 스토리지 노드가 추가됨에 따라 이 ONTAP 스토리지 클러스터의 성능이 매우 선형적인 방식으로 확장되는 방식을 보여줍니다.
AI를 위한 고성능 및 확장성을 위한 ONTAP 배포
보시다시피, ONTAP 시스템은 대규모 이미지 렌더링, 비디오 렌더링, 데이터 분석 애플리케이션 등 GDS 가속 라이브러리의 이점을 누릴 수 있는 가장 I/O 집약적인 애플리케이션에 필요한 범위의 성능을 확실히 제공할 수 있습니다. 물론 이 클러스터는 ONTAP 클러스터에서 지원 가능한 24개 노드 중 8개 노드에 불과하기 때문에 추가 노드를 쉽게 추가하여 대역폭을 더욱 확장할 수 있습니다. 하지만 앞서 언급했듯이 이와 같은 성능은 GPU 가속 워크로드의 필수 요건인 경우가 많지만, 대부분의 경우 고객이 AI 실험을 프로덕션 운영으로 전환할 때 직면하는 가장 큰 어려움은 아닙니다. ONTAP은 다른 어떤 솔루션과 비교해도 동등하거나 더 나은 성능을 제공할 뿐만 아니라, 데이터 과학 팀의 워크플로우를 간소화하고 멀티 사이트/멀티 플랫폼 데이터 파이프라인을 통합하는 기본 데이터 관리 도구를 포함하는 유일한 경쟁력 있는 스토리지 플랫폼입니다. 향후 출시될 ONTAP 릴리스에 새로운 성능 및 데이터 관리 기능이 추가될 것으로 예상되는 가운데, 넷앱은 성능뿐만 아니라 기업이 더 빠르고 더 나은 결과로 AI의 이점을 실현할 수 있도록 지원하는 토탈 워크플로 솔루션에 대한 기준을 다시 한 번 높일 것입니다.
귀사와 같은 기업이 현재와 미래에 AI의 이점을 더 빠르게 실현하고 더 나은 결과를 얻을 수 있도록 NetApp ONTAP이 어떻게 지원하는지 알아보세요. netapp.com/ai에서 확인하세요.
출처 : https://www.netapp.com/blog/ontap-reaches-171-gpudirect-storage/