GPU 환경 (GPU가 있는Jupyter Notebooks with Python )
GPU 환경을 사용하면 계산 집약적인 머신 러닝 모델을 실행하는 데 필요한 훈련 시간을 줄일 수 있습니다. 더 많은 컴퓨팅 성능을 사용하면 기계 학습 모델을 미세 조정할 때 더 많은 훈련 반복을 실행할 수 있습니다. GPU 환경은 Python 에만 사용할 수 있습니다.
서비스 이 서비스는 기본적으로 제공되지 않습니다. 관리자가 해당 서비스를 설치해야 합니다. 서비스가 설치되어 있는지 확인하려면 아바타를 클릭한 다음, 정보 > 버전 세부사항을 클릭하십시오. 서비스가 설치되어 사용 준비가 되면, 서비스가 설치되었다는 표시( Deployed)가 나타납니다.
자세한 정보는 다음을 참조하십시오.
Nvidia MIG (Multi-Instance GPU) 를 사용하면 실제 GPU를 MIG 디바이스라고 하는 여러 개의 작은 독립 인스턴스로 파티셔닝할 수 있습니다. 이러한 MIG 디바이스는 격리 및 할당 기능을 제공하여 효율적인 자원 공유를 가능하게 합니다.
Nvidia MIG 사용의 주요 사항에 대해서는 ‘노트북 및 스크립트에서 MIG 장치 사용하기’를 참조하십시오.
GPU 환경 템플리트
GPU 환경을 사용하려면 새 GPU 환경 템플리트를 작성해야 합니다.
환경 템플리트를 작성하려면 프로젝트 내에서 관리 또는 편집자 역할이 있어야 합니다.
GPU 환경 템플리트를 작성하려면 다음을 수행하십시오.
프로젝트의 관리 탭에서 환경 페이지를 선택한 후 템플리트아래에서 새 템플리트를 클릭하십시오.
이름 및 설명을 입력하십시오.
GPU 환경 구성 유형을 선택하십시오.
하드웨어 구성을 선택하십시오. 다음 사항에 따라 사이즈를 선택하세요:
- 모델 운영의 복잡성
- 수행하고자 하는 모델 훈련 반복 횟수
- 분석 워크로드의 복잡성
- 이용 가능한 자원
기본 크기는
1 GPU and 1 vCPU and 2 GB RAM입니다.Python 소프트웨어 버전을 선택하십시오.
환경 템플리트 세부사항이 표시됩니다. 설정 위로 마우스를 이동하여 하드웨어 설정을 변경할 수 있습니다.
- 25.1 런타임이 포함된 GPU 환경으로는 NVIDIA 및 CUDA 툴킷 12.6 이 있습니다.
사전 설치된 라이브러리 외에 사용자 고유의 사용자 정의 라이브러리를 추가할 수 있습니다. 이를 위해 사용자 정의를 작성하십시오. 환경 템플리트 사용자 정의를 참조하십시오.
노트북에서 GPU 환경 사용
GPU 환경 템플리트를 작성한 후 이 환경을 노트북에 지정하기 시작할 수 있습니다.
프로젝트에서 동일한 GPU 환경 템플리트를 사용하는 둘 이상의 노트북을 실행할 수 있습니다. 이는 동일한 프로젝트에서 동일한 환경 템플리트를 사용하여 두 번째 노트북을 여는 경우 두 번째 커널이 동일한 런타임에서 시작됨을 의미합니다. 런타임 자원은 런타임에서 시작하는 Jupyter 커널에 의해 공유됩니다. 런타임은 노트북이 아닌 단일 사용자별로 시작됩니다.
노트북 및 스크립트에서 MIG 디바이스 사용
MIG 디바이스를 사용할 때 다음 제한사항에 유의하십시오.
- 설계에 따라 단일 CUDA 프로세스는 단일 MIG 디바이스를 사용할 수 있습니다. 이는 여러 MIG 디바이스에서 CUDA 프로세스의 병렬 실행이 지원되지 않음을 의미합니다. 각 프로세스는 특정 MIG 디바이스에 지정되어야 합니다. 다중 MIG 슬라이스를 분산 방식으로 쉽게 사용할 수 없는 이유가 여기에 있습니다.
- watsonx 현재는 단일 프로세스 전략만 지원하며, 이 전략은 MIG 인스턴스를 표준 GPU로 인식하여 ` OpenShift `에 노출합니다.
- 클러스터에 MIG 지원을 제공하지 않는 다른 GPU가 포함된 경우 이러한 노드를 감염시키고 허용을 포함하는 사용자 정의 런타임 정의에 대해 작업해야 합니다. 이 방법을 사용하면 사용자가 실수로 단일 MIG 디바이스 대신 전체 GPU를 선택하지 않도록 할 수 있습니다.
단일 MIG 디바이스를 사용하는 경우 GPU에 대한 작업을 위한 표준 워크플로우를 적용할 수 있습니다. 장치 매개변수를 사용하는 방법을 보여주는 코드 조각을 참조하세요. PyTorch:
import torch
zeros_tensor_gpu = torch.zeros((50, 50), device='cuda')
또는 torch.device("cuda:0") 함수를 사용하십시오.
Tensorflow를 사용하는 경우 tf.device 컨텍스트 관리자를 사용할 수 있습니다.
import tensorflow as tf
with tf.device('/GPU:0'):
a = tf.constant([[1.0, 2.0], [4.0, 5.0]])
런타임당 다중 MIGs를 사용하여 프로그래밍 방식으로 MIG UUID에 액세스
런타임이 둘 이상의 MIG 장치를 요청하는 경우 CUDA 프로세스에서 사용할 특정 MIG를 구성해야 합니다. 이를 수행하려면 CUDA_VISIBLE_DEVICES 환경 변수를 사용하십시오. 이 코드 조각은 프로그래밍 방식으로 NVML( NVIDIA ) 관리 라이브러리에 사용 가능한 모든 MIG UUID를 쿼리합니다( py3nvml 라이브러리가 설치되어 있어야 함)
import os
from py3nvml.py3nvml import *
nvmlInit()
deviceCount = nvmlDeviceGetCount()
for deviceIndex in range(deviceCount):
handle = nvmlDeviceGetHandleByIndex(deviceIndex)
deviceUUID = nvmlDeviceGetUUID(handle)
# Set CUDA_VISIBLE_DEVICES variable and start subprocess
# os.environ["CUDA_VISIBLE_DEVICES"]=deviceUUID
nvmlShutdown()