tencent cloud

Tencent Kubernetes Engine

소식 및 공지 사항
릴리스 노트
제품 릴리스 기록
제품 소개
제품 장점
제품 아키텍처
시나리오
제품 기능
리전 및 가용존
빠른 시작
신규 사용자 가이드
표준 클러스터를 빠르게 생성
Demo
클라우드에서 컨테이너화된 애플리케이션 배포 Check List
TKE 표준 클러스터 가이드
Tencent Kubernetes Engine(TKE)
클러스터 관리
네트워크 관리
스토리지 관리
Worker 노드 소개
Kubernetes Object Management
워크로드
클라우드 네이티브 서비스 가이드
Tencent Managed Service for Prometheus
TKE Serverless 클러스터 가이드
TKE 클러스터 등록 가이드
실습 튜토리얼
Serverless 클러스터
네트워크
로그
모니터링
유지보수
DevOps
탄력적 스케일링
자주 묻는 질문
클러스터
TKE Serverless 클러스터
유지보수
서비스
이미지 레지스트리
원격 터미널

딥러닝 컨테이너 이미지 빌드

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2023-04-28 15:30:11

작업 시나리오

본 문서 시리즈는 직접 TensorFlow 배포에서 후속 Kubeflow 배포까지 TKE Serverless 클러스터에서 딥 러닝을 배포하는 방법을 설명하고, 컨테이너 기반 딥 러닝을 구현하기 위한 포괄적인 체계를 제공하기 위한 것입니다. 본 문서는 딥 러닝을 배포하는 더 쉽고 빠른 방법을 제공하는 딥 러닝 컨테이너 이미지를 생성하는 방법에 중점을 둡니다.
공용 이미지는 본 문서의 딥 러닝 배포 요구 사항을 충족할 수 없습니다. 따라서 자체 구축 이미지를 사용합니다.
딥 러닝 프레임워크 TensorFlow-gpu 외에도 이 이미지에는 GPU 기반 교육에 필요한 cuda 및 cudnn도 포함되어 있으며 CV, NLP 및 RS와 같은 분야를 위한 SOTA 모델을 포함하여 공식 TensorFlow 딥 러닝 모델을 통합합니다. 모델에 대한 자세한 내용은 Model Garden for TensorFlow를 참고하십시오.

작업 단계

1. 이 예시에서는 Docker 컨테이너를 사용하여 이미지를 생성합니다. 다음과 같이 Dockerfile을 준비합니다.
FROM nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu20.04
RUN apt-get update -y \\
&& apt-get install -y python3 \\
python3-pip \\
git \\
&& git clone git://github.com/tensorflow/models.git \\
&& apt-get --purge remove -y git \\ #불필요한 컴포넌트 즉시 제거(선택 사항)
&& rm -rf /var/lib/apt/lists/* #apt를 통해 설치할 패키지 삭제(선택 사항)
&& mkdir /tf /tf/models /tf/data #마운트 지점으로 사용할 수 있는 스토리지 모델 및 데이터 경로 생성(선택 사항)
ENV PYTHONPATH $PYTHONPATH:/models
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/cuda-11.3/lib64:/usr/lib/x86_64-linux-gnu#
RUN pip3 install --user -r models/official/requirements.txt \\
&& pip3 install tensorflow
2. 다음 명령을 실행하여 배포합니다.
docker build -t [name]:[tag] .
설명
Python, TensorFlow, cuda, cudnn 및 모델 라이브러리와 같은 필수 컴포넌트를 설치하는 단계는 이 문서에서 자세히 설명하지 않습니다.

관련 설명

이미지

기본 이미지 nvidia/cuda의 경우 CUDA 컨테이너 이미지는 CUDA 지원 플랫폼 및 아키텍처에 사용하기 쉬운 배포판을 제공합니다. 여기에서는 cuda 11.3.1 및 cudnn 8이 선택됩니다. 버전에 대한 자세한 내용은 Supported tags를 참고하십시오.

환경 변수

이 문서의 모범 사례를 구현하기 전에 LD_LIBRARY_PATH 환경 변수에 특별한 주의를 기울여야 합니다.
LD_LIBRARY_PATH는 일반적으로 libcudart.so.[version], ibcusolver.so.[version], libcudnn.so.[version]과 같은 libxxxx.so 형식으로 동적 링크 라이브러리의 설치 경로를 나열하며, 이 예시에서는 cuda 및 cudnn을 연결하는 데 사용됩니다. ll 명령을 실행하여 아래와 같이 경로를 볼 수 있습니다.

공식 이미지의 Dockerfile 소스 코드를 기반으로 다음 명령어를 실행합니다.
ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
여기서 /usr/local/nvidia/lib는 cuda 경로의 소프트 링크를 가리키며 cuda를 위해 준비됩니다. 그러나 cudnn이 포함된 태그에서는 cudnn만 설치되고 cudnn에 대해 LD_LIBRARY_PATH가 지정되지 않아 Warning이 리포트되고 GPU 리소스를 사용할 수 없게 될 수 있습니다. 오류는 아래와 같습니다.
Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory
Cannot dlopen some GPU libraries. Please make sure the missing libraries mentioned above are installed properly if you would like to use GPU...
이러한 오류가 리포트되면 cudnn 경로를 수동으로 추가할 수 있습니다. 여기에서 다음 명령을 실행하여 이미지를 실행하고 libcudnn.so의 경로를 볼 수 있습니다.
docker run -it nvidia/cuda:[tag] /bin/bash
소스 코드에서 볼 수 있듯이 cudnn은 기본적으로 apt-get install 명령으로 /usr/lib에 설치됩니다. 이 예시에서 libcudnn.so.8의 실제 경로는 /usr/lib/x86_64-linux-gnu# 아래에 있으며 콜론 뒤 끝에 추가됩니다.
실제 경로는 태그 및 시스템에 따라 다를 수 있습니다. 소스 코드의 경로와 실제로 표시되는 경로가 우선합니다.

후속 작업

후속 작업에 대해서는 TKE Serverless에서 딥 러닝 실행 문서를 참고하십시오.

FAQ

구현 과정 중 문제가 발생하면 문제 해결을 위해 FAQ를 참고하십시오.

도움말 및 지원

문제 해결에 도움이 되었나요?

피드백