TensorFlow는 기계 학습을 위한 종단 간 오픈 소스 플랫폼입니다. 도구, 라이브러리 및 커뮤니티 리소스로 구성된 포괄적이고 유연한 에코시스템을 통해 연구원은 ML의 최신 기술을 적용하고 개발자는 ML 기반 애플리케이션을 쉽게 구축하고 배포할 수 있습니다.

TensorFlow는 다양한 작업에서 사용할 수 있지만 특히 심층 신경망의 교육 및 유추에 중점을 둡니다. 플랫폼은 데이터 흐름 및 미분 가능한 프로그래밍을 기반으로 하는 기호 수학 라이브러리입니다.

TensorFlow 설치

TensorFlow는 vSphere Bitfusion과 함께 사용하는 기계 학습 프레임워크입니다.

Python 3용 패키지 설치 관리자인 pip3을 사용하여 TensorFlow를 설치합니다. 이 절차는 Ubuntu 20.04, CentOS 8 및 Red Hat Linux 8에 적용됩니다.

사전 요구 사항

  • vSphere Bitfusion 클라이언트를 설치했는지 확인합니다.
  • Linux 운영 체제에 NVIDIA CUDA 및 NVIDIA cuDNN을 설치했는지 확인합니다.

프로시저

  1. Ubuntu 20.04에 TensorFlow를 설치하는 경우 추가 Python 리소스를 설치합니다.
    sudo apt-get -y install python3-testresources
  2. Linux 배포 및 버전에 대한 명령 시퀀스를 실행하여 pip3을 설치합니다.
    • Ubuntu 20.04
      sudo apt-get install -y python3-pip
    • CentOS 8 및 Red Hat Linux 8
      sudo yum install -y python36-devel
      sudo pip3 install -U pip setuptools
  3. pip3 install 명령을 사용하여 TensorFlow를 설치합니다.
    sudo pip3 install tensorflow-gpu==2.4

TensorFlow 벤치마크 설치

TensorFlow 벤치마크는 TensorFlow 프레임워크의 성능을 테스트하도록 설계된 오픈 소스 ML 애플리케이션입니다.

TensorFlow 벤치마크를 분기하고 로컬 환경으로 다운로드합니다. Git에서 분기는 별도의 개발 라인입니다.

사전 요구 사항

TensorFlow를 설치했는지 확인합니다.

프로시저

  1. git를 설치합니다.
    • Ubuntu 20.04
      sudo apt install -y git
    • CentOS 8 및 Red Hat Linux 8
      sudo yum -y update
      sudo yum install git
  2. ~/bitfusion을 생성하고 작업 디렉토리로 만듭니다.
    mkdir -p bitfusion
    cd ~/bitfusion
  3. Tensorflow 벤치마크의 Git 저장소를 로컬 환경에 복제합니다.
    git clone https://github.com/tensorflow/benchmarks.git
  4. 벤치마크 디렉토리로 이동하고 저장소의 분기를 나열합니다.
    cd benchmarks
    git branch -a
    master
    remotes/origin/HEAD -> origin/master 
    ...
    remotes/origin/cnn_tf_v1.13_compatible
    ...
    remotes/origin/cnn_tf_v2.1_compatible
    ...
  5. Git 체크아웃을 수행하고 TensorFlow 벤치마크 저장소를 나열합니다.
    git checkout cnn_tf_v2.1_compatible
    Branch cnn_tf_v2.1_compatible set up to track remote branch cnn_tf_v2.1_compatible
    from origin.
    Switched to a new branch ‘cnn_tf_v2.1_compatible’
    git branch
    cnn_tf_tf_v2.1_compatible
    master

TensorFlow 벤치마크 실행

TensorFlow 벤치마크를 실행하여 vSphere Bitfusion 및 TensorFlow 배포의 성능을 테스트할 수 있습니다.

TensorFlow 벤치마크를 실행하고 다양한 구성을 사용하면 ML 워크로드가 vSphere Bitfusion 환경에서 응답하는 방식을 파악할 수 있습니다.

프로시저

  1. ~/bitfusion/ 디렉토리로 이동하려면 cd ~/bitfusion/을 실행합니다.
  2. tf_cnn_benchmarks.py 벤치마크 스크립트를 사용하려면 bitfusion run 명령을 실행합니다.
    예제의 명령을 실행하면 단일 GPU의 전체 메모리와 /data 디렉토리에 미리 설치된 ML 데이터가 사용됩니다.
    bitfusion run -n 1 -- python3 \
    ./benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
    --data_format=NCHW \
    --batch_size=64 \
    --model=resnet50 \
    --variable_update=replicated \
    --local_parameter_device=gpu \
    --nodistortions \
    --num_gpus=1 \
    --num_batches=100 \
    --data_dir=/data \
    --data_name=imagenet \
    --use_fp16=False
  3. tf_cnn_benchmarks.py 벤치마크 스크립트를 사용하려면 bitfusion run 명령을 -p 0.67 매개 변수와 함께 실행합니다.
    예제의 명령을 실행하면 단일 GPU 메모리의 67%와 /data 디렉토리에 미리 설치된 ML 데이터가 사용됩니다. -p 0.67 매개 변수를 사용하면 GPU 메모리 파티션의 나머지 33%에서 다른 작업을 실행할 수 있습니다.
    bitfusion run -n 1 -p 0.67 -- python3 \
    ./benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
    --data_format=NCHW \
    --batch_size=64 \
    --model=resnet50 \
    --variable_update=replicated \
    --local_parameter_device=gpu \
    --nodistortions \
    --num_gpus=1 \
    --num_batches=100 \
    --data_dir=/data \
    --data_name=imagenet \
    --use_fp16=False
  4. tf_cnn_benchmarks.py 벤치마크 스크립트를 사용하려면 bitfusion run 명령을 합성된 데이터와 함께 실행합니다.
    예제의 명령을 실행하면 미리 설치된 ML 데이터 없이 단일 GPU의 전체 메모리가 사용됩니다. TensorFlow는 가짜 이미지 집합을 사용하여 합성된 데이터를 생성할 수 있습니다.
    bitfusion run -n 1 -- python3 \
    ./benchmarks/scripts/tf_cnn_benchmarks/tf_cnn_benchmarks.py \
    --data_format=NCHW \
    --batch_size=64 \
    --model=resnet50 \
    --variable_update=replicated \
    --local_parameter_device=gpu \
    --nodistortions \
    --num_gpus=1 \
    --num_batches=100 \
    --use_fp16=False

결과

이제 원격 서버에서 공유 GPU를 사용하는 vSphere Bitfusion으로 TensorFlow 벤치마크를 실행할 수 있습니다. 벤치마크는 다양한 모델과 매개 변수를 지원하기 때문에 광범위한 기계 학습 분야를 살펴보는 데 유용합니다. 자세한 내용은 "VMware vSphere Bitfusion 사용자 가이드" 의 내용을 참조하십시오.