그래프코어 Poplar SDK의 최신 버전이 출시되어 다양한 기능 및 성능 개선 사항을 제공합니다. 최신 3세대 Bow Pod 시스템과 이전 세대를 모두 지원하는 Poplar SDK는 고객이 IPU에서 고성능 애플리케이션을 혁신하고 개발할 수 있도록 힘을 실어 줍니다.
Poplar SDK 2.5는 그래프코어 지원 포털 및 Docker Hub에서 다운로드할 수 있습니다. Docker Hub에서는 사용하기 쉽고 편리하며 확장을 거듭하고 있는 최신 Poplar 컨테이너도 찾을 수 있습니다.
또한 NLP, 비전, 음성, GNN 등 여러 응용 분야 도메인에 걸쳐 성장하고 있는 Model Garden에 새로운 예제를 추가하여, 지속적으로 증가하는 지원 범위와 역량을 입증하고 있습니다.
POPLAR SDK 2.5 하이라이트
Selected new features are presented below, while a full list of updates can be found in the accompanying release notes.
아래에 새로운 기능 중 일부가 나와 있으며 전체 업데이트 목록은 함께 제공되는 릴리스 노트에서 확인할 수 있습니다.
TensorFlow 2 개선 사항
이번 릴리스에서는 오픈 소스 버전의 TensorFlow 2가 버전 2.5로 업데이트되었습니다. Keras Model 하위 클래스를 사용할 수 있도록 설정하여 Keras 지원을 확장하고, Keras 모델을 위한 TensorFlow의 시각화 툴킷인 TensorBoard와의 통합을 개선했습니다. IPU와 TensorBoard를 사용하는 방법에 관한 새로운 튜토리얼은 GitHub에서 확인할 수 있습니다.
직렬화된 컴파일
Poplar SDK 2.5에서 기본적으로 사용할 수 있는 호스트 메모리 최적화 외에도, 일부 모델의 경우 IPU의 하위 집합에 대해 모델을 한 번에 컴파일하는 새로운 옵션을 사용하여 컴파일하는 도중에 호스트 메모리 사용량을 줄일 수 있습니다. 이 실험적 기능을 통해 사용자는 리소스가 제한된 시스템에서 대형 모델을 컴파일할 수 있습니다. Poplar SDK 2.6에 추가적인 개선 사항이 적용될 예정입니다.
자동 손실 스케일링
이 릴리스에는 반정밀도로 모델을 학습시키기 위한 자동 손실 스케일링이라는 실험적인 기능이 포함되어 있습니다. 이 기능을 사용하면 학습 중에 그래디언트 통계를 기반으로 손실 스케일링 계수를 조정하여, 그래디언트 표현을 위한 IEEE 754 16비트 플로트 형식의 제한된 동적 범위를 처리할 수 있습니다. PyTorch 및 PopART로 작성된 모델에 사용할 수 있으며 사용자가 적절한 손실 스케일링 계수를 수동으로 찾을 필요가 없습니다.
개선된 연산자 범위 및 최적화
그래프코어는 지원되는 PyTorch 연산자의 수를 지속적으로 늘려 모델 지원을 더욱 확대하고 있습니다. TensorFlow의 루프 기반 모델(예: RNN)은 최적화를 통해 컴파일 시간, 메모리 사용량, 런타임 성능을 개선하는 이점을 제공합니다. 또한 Poplar SDK를 통해 다른 많은 최적화 조치가 이루어졌습니다.
모니터링 도구 및 라이브러리
Poplar SDK에는 IPU 및 라이브러리를 모니터링하기 위한 종합적인 도구가 포함되어 있어 고객이 이러한 기능을 자체 시스템에 통합할 수 있습니다. 이 릴리스에서는 사용자가 대규모 배포에서 IPU 가용성과 상태를 더 잘 파악할 수 있도록 다중 사용자/다중 호스트 기능이 개선되었습니다.
Poplar Triton Backend
이 릴리스에는 Triton Inference Server를 사용하여 IPU에서 실행할 모델을 위한 프리뷰 지원이 추가되어 사용자가 추론 모델을 보다 쉽게 배포할 수 있습니다. IPU용 PopART 및 TensorFlow를 사용하여 작성된 모델은 Poplar Triton Backend에서 지원하는 PopEF(Poplar Exchange Format) 파일로 컴파일 및 저장할 수 있습니다. 자세한 내용은 새로운 Poplar Triton Backend 사용자 가이드를 참조하세요.
Ubuntu 20.04
Poplar SDK 2.5에는 Ubuntu 20.04 운영 체제에 대한 완전한 지원이 포함됩니다(이전에는 프리뷰로 지원되었음).
새 모델 예제
그래프코어는 사용자가 IPU에 최적화된 광범위한 모델을 최대한 쉽게 배포할 수 있도록 지원하기 위해 노력하고 있습니다. 그리고 Model Garden 및 관련 GitHub 리포지토리를 지속적으로 업데이트합니다.
Poplar SDK 2.5 릴리스에서는 다음과 같은 새로운 예제를 사용할 수 있습니다.
비전
- ViT – 기존 미세 조정 예제에 추가된 사전 학습(PyTorch)
- DINO(PyTorch)
- EfficientDet - 추론(TensorFlow 2)
- Neural Image Fields(TensorFlow 2)
- Swin Transformer - 사전 학습(PyTorch)
- ViT(Hugging Face Optimum, 미세 조정)
- ConvNext(Hugging Face Optimum)
NLP
- PackedBERT(PyTorch, PopART)
- BERT-Large(TensorFlow 2)
- GPT2-S/XL - 추론(PyTorch)
- GPT2-M/L - 학습(PyTorch)
- BERT-Base/Large(Hugging Face Optimum, 사전 학습 및 미세 조정)
- RoBERTa-Base/Large(Hugging Face Optimum, 미세 조정)
- DeBERTa-Base(Hugging Face Optimum, 미세 조정)
- LXMERT(Hugging Face Optimum, 미세 조정)
- GPT2-S/M(Hugging Face Optimum, 미세 조정)
- T5-Small(Hugging Face Optimum, 미세 조정)
- BART-Base(Hugging Face Optimum, 미세 조정)
음성
- FastSpeech2 - 추론(TensorFlow 2)
- Conformer-Large(PyTorch)
- Fastpitch(PyTorch)
- HUBERT(Hugging Face Optimum, 미세 조정)
- Wave2Vec2(Hugging Face Optimum)
GNN
- Cluster GCN(TensorFlow 2)
시뮬레이션용 AI
- DeepDriveMD(TensorFlow 2)
IPU 프로그래머 가이드
IPU 프로그래머 가이드는 출시 이후 개발자들이 그래프코어 시스템과 새로운 여정을 시작하는 데 도움이 되는 필수적이고 인기 있는 리소스로 자리잡았습니다. 이 리소스에서는 사용자에게 일반적인 하드웨어 및 소프트웨어 개요부터 IPU에서의 프로그램 컴파일 및 실행까지 다양한 정보를 안내합니다.
새로운 버전의 IPU 프로그래머 가이드에서는 복제, 재연산, 모델 병렬 처리, 파이프라이닝과 같은 일반적인 알고리즘 기법에 대한 새로운 섹션을 포함하여 광범위한 업데이트 및 추가 기능을 제공합니다.
그래프코어의 개발자 포털에서 IPU 프로그래밍 관련 최신 문서, 튜토리얼, 코드 예시, 웨비나, 동영상, 연구 논문 및 기타 리소스에 액세스하세요.