<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=145304570664993&amp;ev=PageView&amp;noscript=1">
Graphcore Poplar SDK Container Images Now Available on Docker Hub

Nov 17, 2021 \ Software

Docker Hub에서 그래프코어의 Poplar SDK 컨테이너 이미지 사용 가능

작성자

Rycharde Hawkes

그래프코어가 Docker 공인 퍼블리셔 파트너 프로그램에 가입하면서 이제 개발자는 Docker Hub 통해 Poplar® SDK 액세스 있게 되었습니다. 그래프코어는 개발자가 그래프코어 IPU 시스템에서 간편하게 ML 애플리케이션을 구축하고 관리하며 배포할 있도록 Docker 협력하여 당사의 소프트웨어 스택을 컨테이너 이미지 형식으로 제공합니다.

그래프코어는 개발자 환경을 지속적으로 개선하여 당사의 하드웨어 소프트웨어를 더욱 쉽게 사용할 있게 것입니다. 1 전에 그래프코어는 사용자에게 기본으로 제공되는 Docker 컨테이너를 출시했습니다. 이제 그래프코어는 혁신 촉진을 추구하는 회사 목표의 일환으로 모든 Docker Hub 커뮤니티 일원에게 당사의 Poplar SDK, IPU PyTorch, IPU TensorFlow 도구를 모두 제공합니다.

다음은 개발자를 위한 기능 시작하는 방법입니다.

Docker 그래프코어 커뮤니티에 중요한 이유

Docker 컨테이너 이미지를 가져오기 위한 주요 출처입니다. 최신 Index Report(지수 보고서) 의하면, 지금까지 Docker Hub에서 발생한 가져오기 횟수는 무려 3,960 회입니다. 나아가 8 명의 개발자가 참여한 2021 Stack Overflow Survey(스택 오버플로 설문) 결과에 따르면, Docker Hub '가장 필요하고 선호 사용되는' 개발자 도구의 자리를 유지하고 있습니다.

Docker most wanted software tool

그래프코어의 Docker 컨테이너 이미지는 IPU 개발자를 위해 PyTorch, TensorFlow 또는 그래프코어의 Poplar SDK 직접 사용하여 구축된 애플리케이션을 위한 사전 패키징된 런타임 환경을 제공함으로써 프로덕션 과정에서 IPU 시스템에 배포되는 애플리케이션 개발 워크플로를 간소화하고 가속화합니다. 컨테이너화된 애플리케이션은 일관되고 반복 가능한 실행으로 애플리케이션의 이식성이 강화되었으며, 여러 MLOps 프레임워크의 사용을 가능하게 합니다.

개발자를 위한 기능

현재 개발자는 머신 인텔리전스 애플리케이션용으로 특별히 IPU 함께 공동 설계된 그래프코어의 Poplar 소프트웨어 스택을 무료로 설치할 있습니다. Poplar 쉽게 사용할 있고 유연하며, 개발자가 기존 모델을 간편하게 이식할 있도록 표준 머신 러닝 프레임워크와 완전히 통합된 그래프코어 소프트웨어 개발 환경의 핵심적인 그래프 도구 체인입니다. Poplar IPU 성능을 극대화하려는 개발자를 위해 PopART™(Poplar Advanced Runtime) 통해 Python C++ 사용한 직접 IPU 프로그래밍을 지원합니다.

Poplar 011021@1920x-100_compressed

다음 리포지토리를 통해 그래프코어의 Poplar SDK 이미지를 가져올 있습니다.

  • Poplar SDK – IPU 장치와 상호작용하기 위한 도구 Poplar PopART 포함합니다. 
  • IPU PyTorch – Poplar SDK 리포지토리의 모든 요소를 포함하며, PyTorch 사전 설치되어 있습니다.
  • IPU TensorFlow – Poplar SDK 리포지토리의 모든 요소를 포함하며, TensorFlow 1 또는 2 사전 설치되어 있습니다.
  • 도구 – IPU 장치를 위한 관리 진단 도구를 포함합니다.

Docker 퍼블리셔 프로그램의 일환으로 그래프코어 컨테이너 이미지의 요금제별 제한이 면제됩니다. 이에 따라 개발자는 Poplar 경우 사용 중인 Docker Hub 구독과 관계없이 무제한으로 컨테이너 이미지를 요청할 있습니다.

Docker에서 Poplar 시작하기

Poplar Docker 컨테이너는 IPU에서 모델을 실행하는 필요한 모든 요소를 완성된 파일 시스템에 캡슐화합니다(, 그래프코어의 Poplar® SDK, 런타임 환경, 시스템 도구, config 라이브러리). 이러한 이미지를 사용하여 IPU 코드를 실행하려면 다음 단계를 완료해야 합니다.

1.  호스트 머신에 Docker 설치
2.  Docker Hub에서 그래프코어의 Poplar SDK 컨테이너 이미지 가져오기
3.  IPU 액세스 준비
4.  Docker 컨테이너에 대한 IPU 접근 용이성 확인
5.  IPU에서 코드 시험

 

호스트 머신에 Docker 설치

Docker 설치는 운영 체제, 버전과 프로세서에 따라 다릅니다

Docker의 시작 가이드 참조하세요.

 

Docker Hub에서 그래프코어의 Poplar SDK 컨테이너 이미지 가져오기

Docker 설치한 Docker Hub에서 그래프코어의 호스티드 이미지를 다운로드하여 호스트 머신에서 실행하기 위한 명령을 실행할 있습니다. Docker Hub 그래프코어 Poplar 리포지토리에서 Poplar SDK 컨테이너 이미지를 가져올 있습니다. 

리포지토리가 4 있는데, SDK 버전, OS 아키텍처에 따라 여러 개의 이미지를 포함할 있습니다

  • - graphcore/pytorch
  • - graphcore/tensorflow
  • - graphcore/poplar
  • - graphcore/tools

프레임워크 리포지토리에서 이미지를 가져오면 기본적으로 AMD 호스트 프로세서용으로 컴파일된 최신 버전의 SDK 다운로드됩니다.

최신 TensorFlow 이미지를 가져오려면 다음을 사용하세요.

$ docker pull graphcore/tensorflow

특정 SDK 버전 프로세서를 위한 특정 빌드를 선택하려는 경우 Docker 이미지 태그 따라 태그를 구성할 있습니다.

IPU 액세스 준비

PODs IPU 액세스하려면 호스트 머신과 IPU 사이의 연결, IPU 오버 패브릭(IPUoF) 구성해야 합니다. 기본적으로 디렉토리(~/.ipuof.conf.d) 디렉토리에 작성된 IPUoF 구성 파일을 통해 Poplar 장치에 액세스하기 위해 필요로 하는 정보를 전달할 있습니다. 구성 파일은 예를 들어 보안상의 이유로 Poplar 호스트에게 V-IPU 컨트롤러에 대한 직접적인 네트워크 액세스가 없는 경우 유용합니다

Graphcloud 사용 중이라면 신규 사용자가 생성되어 POD 추가될 때마다 IPUoF 기본 config 파일이 생성됩니다. 해당 폴더(: ~/.ipuof.conf.d/lr21-3-16ipu.conf) .conf 파일이 있는지 확인하세요. 설정이 있다면 다음 단계를 진행하면 됩니다.

설정이 없다면 V-IPU 가이드: 시작하기 따라 Poplar V-IPU 서버의 연결을 설정해야 합니다. 다음 섹션의 스크립트를 실행하려면 반드시 ~/.ipuof.conf.d  폴더에 IPUoF config 파일을 저장하세요.

Docker 컨테이너에 대한 IPU 접근 용이성 확인

컨테이너가 준비되어으므로 이제 컨테이너 내부에서 IPU 액세스할 있는지 확인합니다.

다음을 실행하여 컨테이너의 컨텍스트에서 IPU 장치를 나열합니다.

$ docker run --rm --ulimit memlock=-1:-1 --net=host --cap-add=IPC_LOCK --device=/dev/infiniband --ipc=host -v ~/.ipuof.conf.d/:/etc/ipuof.conf.d -it graphcore/tools gc-info -l

샘플 TensorFlow 실행

먼저 GitHub 그래프코어 튜토리얼 리포지토리에서 코드를 가져옵니다.

$ git clone https://github.com/graphcore/tutorials.git

$ cd tutorials

 Docker 컨테이너는 격리된 환경입니다. 따라서 처음에는 상태이며, 호스트 머신의 파일 시스템에 대한 액세스가 없습니다호스트 머신의 데이터를 사용하려면 Docker 컨테이너 내에서 데이터에 액세스할 있어야 합니다

디렉토리를 볼륨으로 마운트하여 호스트 머신과 Docker 컨테이너 환경 사이에 데이터를 공유함으로써 데이터를 액세스 가능하게 만들 있습니다

Docker 기반 개발 환경에서 작업할 때는 일반적으로 섹션 2.2 호스트의 디렉토리 마운트하기 설명된 바와 같이 현재의 디렉토리를 컨테이너에 마운트한 다음 컨테이너에 포함된 작동하는 디렉토리에 -w <dir name> 설정합니다. : -v "$(pwd):/app" -w /app.

TensorFlow 컨테이너에서 mnist 예제를 실행하려면 튜토리얼 리포지토리를 Docker 컨테이너에 마운트하고 실행하는 다음 명령을 사용하세요.

$ docker run --rm --ulimit memlock=-1:-1 --net=host --cap-add=IPC_LOCK --device=/dev/infiniband --ipc=host -v ~/.ipuof.conf.d/:/etc/ipuof.conf.d -it -v "$(pwd):/app" -w /app graphcore/tensorflow:2 python3 simple_applications/tensorflow2/mnist/mnist.py

개발자 리소스 링크

게시물 더 보기