GPUlayer는 PyTorch 학습 코드를 노트북부터 여러 머신까지 확장하는 도구다. 제작자 측 벤치마크에서는 PyTorch Lightning보다 17개 GPU 사례 중 13개에서, 모든 CPU 사례에서 빠르게 학습했다고 밝혔다.
같은 모델·데이터·옵티마이저를 사용하고 각 트레이너의 기본 설정으로 비교했다. GPUlayer가 공개한 결과는 다음과 같다.
- Tesla T4에서는 fp32, bf16, fp16 및
torch.compile조건에서 스텝당 1.08~1.38배 빨랐다. - RTX 3070 4개를 사용한 경우 2·4 GPU 설정에서 1.45~1.60배 빨랐지만, 한 머신의 GPU 1개로 CNN을 학습할 때는 1.12배 느렸다.
- T4 한 개씩을 탑재한 8대의 머신에서는 MLP가 1.08~1.29배 빨랐고, CNN은 1.01~1.09배 느렸다.
- A100 SXM4 2개에서는 NCCL과 NVLink를 이용한 DDP를 사용했고 CUDA 검사를 통과했다.
- Apple M2 Pro에서는 GPU와 CPU 모두 1.02~1.80배 빨랐다.
GPUlayer에 따르면 각 수치에는 실행 스크립트와 로그가 있다. 전체 결과와 측정 방법, 로그에서 확인할 수 있다.
GPUlayer는 하나의 Trainer 인터페이스에서 DDP, FSDP, DeepSpeed와 텐서 병렬 처리를 지원한다. 같은 스크립트를 현재 프로세스나 한 머신의 여러 GPU에서 실행하거나, Trainer(num_nodes=N)으로 여러 머신에 분산할 수 있다. 제작자는 GPU에서 DDP, FSDP, DeepSpeed를 검증했다고 설명한다.
도구는 학습에 적합한 머신과 연결 상태가 좋은 GPU를 배치 대상으로 선택하며, 가능하면 같은 랙이나 존에 배치한다. 실행할 수 없는 머신은 제외 사유를 표시한다고 한다. 사용자는 노트북·워크스테이션·서버를 명령 하나로 연결할 수 있고, AWS와 Vast.ai의 클라우드 GPU도 같은 방식으로 추가할 수 있다. Google Cloud VM은 작업 실행을 위해 생성할 수 있다. NVIDIA CUDA와 Apple Metal을 지원한다고 안내한다.
학습 중 로그를 스트리밍하고 체크포인트와 지표를 사용자 머신으로 가져오며, 대시보드에서 실행과 머신을 확인할 수 있다. 커스텀 학습 루프에도 두 줄의 launch() 호출로 적용할 수 있다고 설명한다.
설치와 실행 방법은 빠른 시작 문서에 있다. 머신을 서버로 실행하는 방법은 gpulayer up 안내에서 확인할 수 있다. 다만 사용 중인 머신에 GPU가 하나뿐이라면 일반 학습 루프가 더 간단하며, 작업은 샌드박스 처리되지 않는다. 제작자는 서로 신뢰하는 사용자를 위한 도구라고 밝힌다. 사용 조건과 제외 사례도 안내한다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요