이 페이지에서는 Cloud TPU를 소개하고 Google Kubernetes Engine(GKE)에서의 Cloud TPU 사용에 대한 정보를 어디서 찾을 수 있는지 알아봅니다. Tensor Processing Unit(TPU)은 Google에서 커스텀식으로 개발한 ASIC(Application-Specific Integrated Circuit)로서 TensorFlow, PyTorch, JAX 등의 프레임워크를 사용하는 머신러닝 워크로드를 빠르게 처리하는 데 사용됩니다.
GKE에서 TPU를 사용하기 전에 다음 학습 과정을 완료하는 것이 좋습니다.
- Cloud TPU 소개로 머신러닝 가속기가 작동하는 방식 알아보기
- Cloud TPU 시스템 아키텍처를 사용하는 현재 TPU 버전 가용성 알아보기
GKE에서 Cloud TPU를 설정하는 방법은 다음 리소스를 참조하세요.
GKE에서 TPU를 사용할 때의 이점
GKE는 TPU VM 생성, 구성, 삭제를 포함하여 TPU VM 수명 주기 관리를 완벽하게 지원합니다. GKE는 스팟 VM 및 예약된 Cloud TPU 사용도 지원합니다. GKE에서 TPU를 사용하면 다음과 같은 이점이 있습니다.
- 일관된 운영 환경: 모든 머신러닝 및 기타 워크로드를 위한 단일 플랫폼입니다.
- 자동 업그레이드: GKE는 버전 업데이트를 자동화하여 운영 오버헤드를 줄입니다.
- 부하 분산: GKE는 부하를 분산시켜 지연 시간을 줄이고 안정성을 향상시킵니다.
- 반응형 확장: GKE는 워크로드의 요구사항을 충족하는 TPU 리소스를 자동으로 확장합니다.
- 리소스 관리: Kubernetes 기반 작업 큐 시스템인 Kueue를 사용하면 큐, 선점, 우선순위 지정, 공정 공유를 사용하여 조직 내 여러 테넌트에서 리소스를 관리할 수 있습니다.
GKE의 TPU 관련 용어
이 문서에서는 TPU와 관련하여 다음 용어를 사용합니다.
- TPU 유형: Cloud TPU 유형입니다(예: v5e).
- TPU 슬라이스: 상호 연결된 TPU 칩 집합입니다.
- TPU 토폴로지: TPU 슬라이스에 있는 TPU 칩의 수와 물리적 배열입니다.
- 단일 호스트 TPU 슬라이스 노드: 독립된 TPU 노드 하나 이상입니다. VM에 연결된 TPU는 고속 상호 연결로 서로 연결되지 않습니다.
- 멀티 호스트 TPU 슬라이스 노드: 상호 연결된 TPU 노드 2개 이상입니다. VM에 연결된 TPU는 고속 상호 연결로 연결됩니다. 멀티 호스트 TPU 노드의 특징은 다음과 같습니다.
- 원자적: GKE는 상호 연결된 모든 노드를 단일 단위로 취급합니다. 확장 작업 중에 GKE는 전체 노드 집합을 0으로 확장하고 새 노드를 만듭니다. 그룹의 머신이 실패하거나 종료되면 GKE에서 전체 노드 집합을 새 단위로 다시 만듭니다.
- 변경 불가: 수동으로 새 노드를 상호 연결된 노드 집합에 추가할 수 없습니다.
GKE의 TPU 작동 방식
Kubernetes 리소스 관리 및 우선순위는 TPU VM을 다른 VM 유형과 동일하게 취급합니다. 리소스 이름 google.com/tpu
를 사용해 TPU 칩을 요청합니다.
resources:
requests:
google.com/tpu: 4
limits:
google.com/tpu: 4
GKE에서 TPU를 사용할 때는 다음 TPU 특성을 고려해야 합니다.
- TPU VM은 최대 8개의 TPU 칩에 액세스할 수 있습니다.
- TPU 슬라이스에는 선택한 TPU 머신 유형에 따라 달라지는 고정된 수의 TPU 칩이 포함됩니다.
- 요청된
google.com/tpu
수는 TPU 노드에서 사용 가능한 총 칩 수와 동일해야 합니다. TPU를 요청하는 GKE 포드의 모든 컨테이너에서 노드의 모든 TPU 칩을 사용해야 합니다. 그렇지 않으면 GKE에서 TPU 리소스를 부분적으로 사용할 수 없으므로 배포가 실패합니다. 예를 들어 다음 시나리오를 참조하세요.ct5l-hightpu-8t
머신 유형에는 TPU 칩이 8개 있는 단일 TPU 노드가 있습니다. TPU 칩 8개가 필요한 GKE 포드 하나를 노드에 배포할 수 있지만 TPU 칩 4개가 필요한 GKE 포드 2개 각각을 노드에 배포할 수 없습니다.2x4
토폴로지를 사용하는ct5lp-hightpu-4t
머신 유형에는 각각 칩 4개가 있는 TPU 노드 2개가 포함되므로 TPU 칩이 총 8개입니다. TPU 칩 8개가 필요한 GKE 포드를 이 노드 풀의 노드에 배포할 수 없지만 TPU 칩 4개가 필요한 포드 2개를 노드 풀의 노드 2개에 배포할 수 있습니다.- 토폴로지 4x4를 사용하는 TPU v5e의 노드 4개에 칩 16개가 있습니다. 이 구성을 선택하는 GKE Autopilot 워크로드는 복제본 최대 4개까지 각 복제본에 칩 4개를 요청해야 합니다.
- 표준 클러스터에서는 Kubernetes 포드 여러 개를 TPU VM에 예약할 수 있지만 각 포드의 컨테이너 하나만 TPU 칩에 액세스할 수 있습니다.
- 각 표준 클러스터에는 kube-dns와 같은 kube-system 포드를 만들기 위해 TPU 외의 노드 풀이 최소 하나 이상 있어야 합니다.
- 기본적으로 TPU 노드에는 비 TPU Pod가 예약되지 않도록 하는
google.com/tpu
taint가 있습니다. taint는 TPU 리소스가 완전히 활용된다고 보장하지 않습니다. TPU 외의 노드에서 TPU를 사용하지 않는 워크로드를 실행할 수 있으므로 TPU를 사용하는 코드에 대해 TPU 노드에서 필요한 컴퓨팅을 확보할 수 있습니다. - GKE는 TPU VM에서 실행되는 컨테이너에서 내보낸 로그를 수집합니다. 자세한 내용은 Logging을 참조하세요.
- 런타임 성능과 같은 TPU 사용률 측정항목은 Cloud Monitoring에서 사용할 수 있습니다. 자세한 내용은 관측 가능성 및 측정항목을 참조하세요.
TPU 구성 계획
GKE 클러스터에서 TPU를 사용하려면 다음 매개변수를 결정해야 합니다.
- TPU 유형: TPU 유형마다 가성비, 학습 처리량, 서빙 지연 시간과 같은 기능이 다릅니다. TPU가 연결된 VM의 CPU 및 메모리 용량은 서로 다릅니다.
- 토폴로지: TPU 유형의 칩 레이아웃입니다. 각 TPU 유형은 2D 또는 3D 칩 레이아웃과 특정 배열을 지원합니다. 모델의 동시 로드 요구사항과 일치하는 토폴로지를 선택합니다.
TPU 상호 연결: TPU 유형과 토폴로지에 따라 고속 상호 연결이 있는 노드 여러 개에서 TPU를 가져올지 여부가 결정됩니다. 이를 통해 단일 호스트 또는 멀티 호스트 TPU 슬라이스 노드를 사용할지가 결정됩니다.
- 대규모 모델의 경우 멀티 호스트 TPU 슬라이스 노드를 사용합니다.
- 소규모 모델의 경우 단일 호스트 TPU 슬라이스 노드를 사용합니다.
권한 모드: 버전 1.28 이하의 GKE 노드에서 실행되는 컨테이너는 권한이 있는 모드를 사용 설정해야 합니다. 버전 1.28 이상에서는 TPU에 액세스하기 위해 권한이 있는 모드를 사용 설정할 필요가 없습니다.
GKE Autopilot 모드의 TPU 구성 선택
Autopilot에서 TPU 유형과 토폴로지를 선택하고 이를 Kubernetes 매니페스트에 지정합니다. GKE는 TPU를 사용한 노드 프로비저닝과 워크로드 예약을 관리합니다.
GKE Autopilot에서 TPU 가용성
TPU는 특정 Google Cloud 리전에서 사용 가능합니다. GKE 워크로드에서 TPU 유형을 사용하려면 클러스터에서 해당 유형에 지원되는 리전에 있어야 합니다. 자세한 내용은 Cloud TPU 문서의 TPU 리전 및 영역을 참조하세요.
Autopilot에서 TPU 유형 선택
TPU 유형 | vCPU 수 | 메모리(GiB) | NUMA 노드 수 | 슬라이스의 최대 TPU 칩 수 |
---|---|---|---|---|
TPU v5p(미리보기)tpu-v5p-slice |
208 | 448 | 2 | 6,144 |
TPU v5etpu-v5-lite-podslice |
24~224 | 48~384 | 1 | 256 |
TPU v5e(단일 호스트 전용)tpu-v5-lite-device |
24~224 | 48~384 | 1~2 | 8 |
TPU v4tpu-v4-podslice |
240 | 407 | 2 | 4,096 |
사용할 버전을 결정하는 데 도움이 필요하면 Cloud TPU 문서에서 칩 사양과 가격 책정을 검토하세요.
Autopilot 토폴로지 선택
토폴로지는 TPU 슬라이스의 물리적 칩 레이아웃입니다. TPU 유형에 따라 토폴로지는 2차원이거나 3차원입니다. TPU 유형을 결정한 후 해당 TPU 유형에서 지원되는 토폴로지를 선택합니다. 모델의 동시 로드 요구사항은 토폴로지를 결정하는 데 도움이 됩니다. 토폴로지 제품은 슬라이스의 칩 수입니다. 예를 들면 다음과 같습니다.
2x2x2
는 8칩 멀티 호스트 TPU v4 슬라이스입니다.2x2
는 4칩 단일 호스트 TPU v5e 슬라이스입니다.
TPU 유형을 선택하는 토폴로지에 따라 단일 또는 멀티 호스트 TPU 슬라이스 노드를 가져올지 여부가 결정됩니다. 특정 토폴로지에서 단일 호스트 및 멀티 호스트 슬라이스를 모두 지원하는 경우 워크로드에서 요청하는 TPU 칩 수에 따라 가져오는 호스트 유형이 결정됩니다. 예를 들어 TPU v5e(tpu-v5-lite-podslice
)는 2x4 토폴로지를 단일 및 멀티 호스트 모두로 지원합니다. 워크로드에서 칩 4개를 요청하면 칩 4개가 있는 멀티 호스트 노드를 가져옵니다. 워크로드에서 칩 8개를 요청하면 칩 8개가 있는 단일 호스트 노드를 가져옵니다.
다음 표에서는 각 TPU 유형에서 지원되는 토폴로지와 칩 수, 노드 수, 호스트 유형을 설명합니다.
TPU 유형 | 토폴로지 | 슬라이스 하나의 TPU 칩 수 | 노드 수 | 호스트 유형 | 참고 |
---|---|---|---|---|---|
TPU v5p(미리보기)tpu-v5p-slice |
2x2x1 | 4 | 1 | 단일 호스트 | 칩 64개를 초과하는 커스텀 토폴로지가 지원됩니다. 다음 조건이 적용됩니다.
|
2x2x2 | 8 | 2 | 멀티 호스트 | ||
2x2x4 | 16 | 4 | 멀티 호스트 | ||
2x4x4 | 32 | 8 | 멀티 호스트 | ||
4x4x4 | 64 | 16 | 멀티 호스트 | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | 멀티 호스트 | ||
TPU v5etpu-v5-lite-podslice |
1x1 | 1 | 1 | 단일 호스트 | 커스텀 토폴로지는 지원되지 않습니다. |
2x2 | 4 | 1 | |||
2x4 | 8 | 1 | |||
2x4 | 2 | 1 | 멀티 호스트 | ||
4x4 | 16 | 4 | |||
4x8 | 32 | 8 | |||
8x8 | 64 | 16 | |||
8x16 | 128 | 32 | |||
16x16 | 256 | 64 | |||
TPU v5e(단일 호스트 전용)tpu-v5-lite-device |
1x1 | 1 | 1 | 단일 호스트 | 커스텀 토폴로지는 지원되지 않습니다. |
2x2 | 4 | 1 | |||
2x4 | 8 | 1 | |||
TPU v4tpu-v4-podslice |
2x2x1 | 4 | 1 | 단일 호스트 | 칩 64개를 초과하는 커스텀 토폴로지가 지원됩니다. 다음 조건이 적용됩니다.
|
2x2x2 | 8 | 2 | 멀티 호스트 | ||
2x2x4 | 16 | 4 | 멀티 호스트 | ||
2x4x4 | 32 | 8 | 멀티 호스트 | ||
4x4x4 | 64 | 16 | 멀티 호스트 | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | 멀티 호스트 |
-
토폴로지 제품을 4로 나눈 값으로 계산됩니다. ↩
TPU 유형과 토폴로지를 선택한 후에는 워크로드 매니페스트에 이들을 지정합니다. 자세한 내용은 GKE Autopilot에서 TPU 워크로드 배포를 참조하세요.
GKE Standard 모드의 TPU 구성 선택
다음 섹션에서는 GKE에서 TPU 워크로드를 계획하고 설정할 때 평가하는 TPU 특성을 설명합니다. 사용 가능한 버전, 머신 유형, 유효한 토폴로지, 칩 수에 대한 자세한 내용은 이 문서의 TPU 구성 매핑을 참조하세요.
GKE Standard 모드에서 TPU 가용성
다음 표에는 머신 유형과 버전에 따른 TPU 가용성이 나와 있습니다.
TPU 버전 | 다음으로 시작하는 머신 유형 | 최소 GKE 버전 | 사용 가능 여부 | 영역 |
---|---|---|---|---|
TPU v4 | ct4p- |
1.26.1-gke.1500 | 정식 버전 | us-central2-b |
TPU v5e | ct5l- |
1.27.2-gke.2100 | 정식 버전 | europe-west4-b |
us-central1-a |
||||
TPU v5e | ct5lp- |
1.27.2-gke.2100 | 정식 버전 | europe-west4-a 1 |
us-central1-a 1 |
||||
us-east1-c |
||||
us-east5-b 1 |
||||
us-west1-c |
||||
us-west4-a |
||||
us-west4-b 1 |
||||
TPU v5p | ct5p- |
1.28.3-gke.1024000 | 미리보기 | us-east1-d |
us-east5-a |
||||
us-east5-c |
-
europe-west4-a
,us-central1-a
,us-east5-b
,us-west4-b
영역에서ct5lp-
로 시작하는 머신 유형으로 TPU v5e를 만들 때는 단일 호스트 TPU v5e 노드 풀이 지원되지 않습니다. 즉, 이러한 영역에서 TPU v5e 노드 풀을 만들 때는 최소2x4
의 토폴로지가 있는ct5lp-hightpu-4t
머신 유형만 지원됩니다.us-central1
또는europe-west4
에 단일 호스트 TPU v5e를 만들려면 각각us-central1-a
또는europe-west4-b
영역을 선택하고,ct5l-hightpu-1t
,ct5l-hightpu-4t
,ct5l-hightpu-8t
와 같이ct5l-
로 시작하는 머신 유형을 사용합니다.us-west4
리전에 단일 호스트 TPU v5e를 만들려면us-west4-a
영역을 선택하고ct5lp-hightpu-1t
와 같이ct5lp-
로 시작하는 머신 유형을 사용합니다.ct5l-
로 시작하는 머신 유형은ct5lp-
로 시작하는 머신 유형과 다른 할당량이 필요합니다. ↩
다음 섹션에서는 GKE에서 TPU 워크로드를 계획하고 설정할 때 평가하는 TPU 특성을 설명합니다. 사용 가능한 버전, 머신 유형, 유효한 토폴로지, 칩 수에 대한 자세한 내용은 이 문서의 TPU 구성 매핑을 참조하세요.
머신 유형
TPU 리소스를 지원하는 머신 유형은 ct<version>-hightpu-<node-chip-count>t
와 같이 TPU 버전과 노드당 칩 수를 포함하는 이름 지정 규칙을 따릅니다. 예를 들어 머신 유형 ct5lp-hightpu-1t
는 TPU v5e를 지원하며 총 하나의 TPU 칩을 포함합니다.
토폴로지
토폴로지는 TPU 슬라이스 내에서 TPU의 물리적 배열을 정의합니다. GKE는 TPU 버전에 따라 2차원 또는 3차원 토폴로지로 TPU 슬라이스를 프로비저닝합니다. 토폴로지를 각 측정기준의 TPU 칩 수로 지정하세요.
멀티 호스트 TPU 슬라이스 노드 풀에 예약된 TPU v4 및 v5p의 경우 3-튜플(
{A}x{B}x{C}
)로 토폴로지를 정의하세요(예:4x4x4
).{A}x{B}x{C}
의 결과(곱)는 노드 풀의 칩 수를 정의합니다. 예를 들어2x2x2
,2x2x4
,2x4x4
와 같은 토폴로지 형식을 사용하여 64개의 칩보다 적은 토폴로지를 정의할 수 있습니다. 64개 칩보다 큰 토폴로지를 사용하는 경우 {A}, {B}, {C}에 할당하는 값은 다음 조건을 충족해야 합니다.- {A}, {B}, {C}는 4의 배수입니다.
- v4에서 지원되는 가장 큰 토폴로지는
12x16x16
이고 v5p의 경우16x16x24
입니다. - 할당된 값은 A ≤ B ≤ C 패턴을 유지합니다. 예를 들면
4x4x8
또는8x8x8
입니다.
TPU 구성 매핑
다음 표를 사용하여 사용 사례에 따라 사용할 TPU 머신 유형과 토폴로지를 정의합니다.
- 소규모 모델 학습 또는 추론의 경우 단일 호스트 TPU 슬라이스 노드 풀과 함께 TPU v4 또는 TPU v5e를 사용합니다.
- 대규모 모델 학습 또는 추론의 경우 멀티 호스트 TPU 슬라이스 노드 풀과 함께 TPU v4 또는 TPU v5e를 사용합니다.
TPU 버전 | 머신 유형 | 토폴로지 | TPU 칩 수 | VM 수 | 노드 풀 유형 |
---|---|---|---|---|---|
TPU v4 | ct4p-hightpu-4t |
2x2x1 | 4 | 1 | 단일 호스트 |
2x2x2 | 8 | 2 | 멀티 호스트 | ||
2x2x4 | 16 | 4 | 멀티 호스트 | ||
2x4x4 | 32 | 8 | 멀티 호스트 | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | 멀티 호스트 | ||
TPU v5p | ct5p-hightpu-4t |
2x2x1 | 4 | 1 | 단일 호스트 |
2x2x2 | 8 | 2 | 멀티 호스트 | ||
2x2x4 | 16 | 4 | 멀티 호스트 | ||
2x4x4 | 32 | 8 | 멀티 호스트 | ||
{A}x{B}x{C} | A*B*C | (A*B*C/4)1 | 멀티 호스트 | ||
TPU v5e | ct5l-hightpu-1t |
1x1 | 1 | 1 | 단일 호스트 |
ct5l-hightpu-4t |
2x2 | 4 | 1 | 단일 호스트 | |
ct5l-hightpu-8t |
2x4 | 8 | 1 | 단일 호스트 | |
ct5lp-hightpu-1t |
1x1 | 1 | 1 | 단일 호스트 | |
ct5lp-hightpu-4t |
2x2 | 4 | 1 | 단일 호스트 | |
ct5lp-hightpu-8t |
2x4 | 8 | 1 | 단일 호스트 | |
ct5lp-hightpu-4t |
2x4 | 8 | 2 | 멀티 호스트 | |
4x4 | 16 | 4 | 멀티 호스트 | ||
4x8 | 32 | 8 | 멀티 호스트 | ||
8x8 | 64 | 16 | 멀티 호스트 | ||
8x16 | 128 | 32 | 멀티 호스트 | ||
16x16 | 256 | 64 | 멀티 호스트 |
-
토폴로지 제품을 4로 나눈 값으로 계산됩니다. ↩
TPU v5e 특성
TPU v5e 머신의 기술적 특성은 다음과 같습니다.
머신 유형 | vCPU 수 | 메모리(GB) | NUMA 노드 수 | 선점 가능성 |
---|---|---|---|---|
ct5l-hightpu-1t |
24 | 48 | 1 | 높음 |
ct5l-hightpu-4t |
112 | 192 | 1 | 보통 |
ct5l-hightpu-8t |
224 | 384 | 2 | 낮음 |
ct5lp-hightpu-1t |
24 | 48 | 1 | 높음 |
ct5lp-hightpu-4t |
112 | 192 | 1 | 보통 |
ct5lp-hightpu-8t |
224 | 384 | 1 | 적음 |
TPU v4 및 v5p 특성
TPU v4p 및 v5p 머신의 기술적 특성은 다음과 같습니다.
머신 유형 | vCPU 수 | 메모리(GB) | NUMA 노드 수 |
---|---|---|---|
ct4p-hightpu-4t |
240 | 407 | 2 |
ct5p-hightpu-4t |
208 | 448 | 2 |
TPU 예약
약정을 구매하면 TPU 예약을 사용할 수 있습니다. GKE에서 모든 TPU 예약을 사용할 수 있습니다.
TPU 노드 풀을 만들 때 --reservation
및 --reservation-affinity=specific
플래그를 사용하여 예약된 TPU 인스턴스를 사용합니다.
GKE에서 TPU 자동 확장
GKE는 Tensor Processing Unit(TPU)을 지원하여 머신러닝 워크로드를 가속화합니다. 단일 호스트 TPU 슬라이스 노드 풀과 멀티 호스트 TPU 슬라이스 노드 풀 모두 자동 확장과 자동 프로비저닝을 지원합니다.
GKE 클러스터에서 --enable-autoprovisioning
플래그를 사용하면 GKE는 대기 중인 워크로드의 요구사항을 충족하는 TPU 버전 및 토폴로지를 사용하여 단일 호스트 또는 멀티 호스트 TPU 슬라이스 노드 풀을 만들거나 삭제합니다.
--enable-autoscaling
을 사용하는 경우 GKE는 다음과 같이 해당 유형을 기준으로 노드 풀을 확장합니다.
단일 호스트 TPU 슬라이스 노드 풀: GKE는 기존 노드 풀에서 TPU 노드를 추가하거나 삭제합니다. 노드 풀은 0부터 --max-nodes 및 --total-max-nodes 플래그에 따라 결정되는 노드 풀의 최대 크기 사이의 TPU 노드 수를 포함할 수 있습니다. 노드 풀이 확장되면 노드 풀에서 모든 TPU 노드의 머신 유형 및 토폴로지는 동일합니다. 단일 호스트 TPU 슬라이스 노드 풀을 만드는 방법은 노드 풀 만들기를 참조하세요.
멀티 호스트 TPU 슬라이스 노드 풀: GKE는 노드 풀을 0부터 TPU 토폴로지를 충족하는 데 필요한 노드 수로 원자적으로 수직 확장합니다. 예를 들어, 머신 유형이
ct5lp-hightpu-4t
이고 토폴로지가16x16
인 TPU 노드 풀의 경우, 노드 풀에는 64개의 노드가 포함됩니다. GKE 자동 확장 처리는 이 노드 풀에 노드가 정확히 0개 또는 64개 포함되도록 합니다. 축소하면 GKE는 예약된 모든 포드를 제거하고 전체 노드 풀을 0으로 드레이닝합니다. 멀티 호스트 TPU 슬라이스 노드 풀을 만드는 방법은 노드 풀 만들기를 참조하세요.
제한사항
- 용량 예약의 경우 특정 예약을 사용해야 합니다.
- GKE 비용 할당 및 사용량 측정에는 예약된 TPU v4의 사용량이나 비용에 대한 데이터가 포함되지 않습니다.
- TPU v5p 및 v5e는 us-east5에서 ribtide/image 스트리밍을 지원하지 않습니다.
- TPU v5p 자동 확장은 최소 1.29.2-gke.1035000 또는 1.28.7-gke.1020000 이상을 실행하는 제어 영역이 있는 GKE 클러스터에서 지원됩니다.
워크로드 예약 고려사항
TPU에는 Kubernetes에서 특별한 워크로드 예약 및 관리가 필요한 고유한 특성이 있습니다. 다음 섹션에서는 일정 예약 권장사항을 설명합니다.
CPU
GKE는 각 TPU Pod를 자체 노드에 배치하므로 이 섹션은 Autopilot 클러스터에 적용되지 않습니다.
TPU VM의 온보딩 CPU에서 워크로드를 예약하려면 GKE 포드가 google.com/tpu
taint를 허용할 수 있는지 확인합니다. 워크로드를 특정 노드에 배포하려면 노드 선택기를 사용합니다.
Kubernetes 리소스 관리 및 우선순위는 TPU VM을 다른 VM 유형과 동일하게 취급합니다. TPU에 예약이 필요한 포드에 동일한 노드의 다른 포드보다 우선순위를 적용하려면 해당 TPU Pod에 대한 최대 CPU 또는 메모리를 요청합니다. 우선순위가 낮은 포드는 다음을 수행해야 합니다.
- 노드에 TPU 워크로드에 할당 가능한 리소스를 충분히 확보할 수 있도록 CPU 및 메모리 요청을 낮게 설정합니다. 자세한 내용은 Kubernetes가 리소스 요청 및 한도를 적용하는 방법을 참조하세요.
- 포드에서 사용되지 않은 모든 주기를 사용하도록 버스트할 수 있도록 CPU 한도(무제한)를 설정합니다.
- 포드가 노드 안정성을 유지하면서 대부분의 미사용 메모리를 사용할 수 있도록 높은 메모리 한도를 설정합니다.
Kubernetes 포드가 CPU와 메모리를 요청하지 않으면(TPU를 요청하더라도) Kubernetes에서 이를 최선의 포드로 간주하며 CPU와 메모리가 필요하다고 보장할 수 없습니다. CPU 및 메모리를 명시적으로 요청하는 포드만 어러한 보장이 있습니다. 자세한 내용은 포드 및 컨테이너에 대한 리소스 관리를 참조하세요.
자세한 내용은 Kubernetes 권장사항: 리소스 요청 및 한도를 참조하세요.
워크로드 중단 감소
TPU를 사용하여 머신러닝 모델을 학습하는 중에 워크로드가 중단되면 마지막 체크포인트 이후 수행된 모든 작업이 손실됩니다. 워크로드가 중단될 가능성을 줄이려면 다음을 수행하세요.
- 다른 모든 작업보다 이 작업의 우선순위를 높게 설정합니다. 리소스가 부족하면 GKE 스케줄러는 우선순위가 낮은 작업을 선점하여 우선순위가 더 높은 작업을 예약합니다. 이렇게 하면 우선순위가 더 높은 워크로드에서 필요한 모든 리소스(클러스터에서 사용 가능한 총 리소스까지)를 수신할 수 있습니다. 자세한 내용은 포드 우선순위 및 선점을 참조하세요.
- 유지보수 제외 구성: 유지보수 제외는 자동 유지보수가 금지되는 반복되지 않는 기간입니다. 자세한 내용은 유지보수 제외를 참조하세요.
- Autopilot에서 연장된 실행 시간 포드 사용: GKE에서 축소 또는 노드 업그레이드를 위해 포드를 종료하기 전의 유예 기간(최대 7일) 동안 연장된 실행 시간 포드를 사용합니다.
노드 유지보수로 인한 중단 처리
TPU VM을 호스팅하는 노드를 포함한 모든 GKE 노드는 유지보수 이벤트 또는 노드 종료를 일으킬 수 있는 기타 중단의 영향을 받습니다. 버전 1.29.1-gke.1425000 이상을 실행하는 제어 영역이 있는 GKE 클러스터에서 실행 중인 워크로드에 대한 중단을 줄일 수 있습니다.
GKE는 제거되기 최대 5분 전까지 SIGTERM
신호를 노드에 보내 종료가 임박했음을 노드에 알립니다. 워크로드에서 Orbax로 MaxText, Pax 또는 JAX와 같은 ML 프레임워크를 사용하면 SIGTERM
신호를 캡처하고 체크포인트 프로세스를 시작할 수 있습니다.
최대 알림 시간으로 ML 워크로드가 정상적으로 종료되도록 GKE를 구성할 수 있습니다. 포드 매니페스트에서 spec.terminationGracePeriodSeconds
필드를 300
초(5분)로 설정합니다.
GKE는 이러한 포드를 정상적으로 종료하고 개발자가 정의한 종료 작업(예: 학습 상태 저장)을 실행하기 위해 최선을 다합니다. GKE는 PodDisruptionBudget
또는 terminationGracePeriodSeconds
설정에 대한 최대 5분의 모든 구성을 준수합니다.
spec.terminationGracePeriodSeconds
필드는 비선점형 VM에서 발생하는 유지보수 및 디스크 조각 모음 이벤트로 인한 중단만 처리합니다. GKE는 하드웨어 오류와 같은 비자발적 중단을 처리하지 않습니다.
자세한 내용은 TPU 노드 정상적 종료 구성을 참조하세요.
TPU 사용률 극대화
TPU에 대한 투자를 극대화하려면 작업 우선순위 조합을 예약하고 이를 큐에 추가하여 TPU가 작동하는 시간을 극대화합니다. 작업 수준 예약 및 선점을 수행하려면 작업을 큐로 조정하는 Kubernetes의 부가기능을 사용해야 합니다. 이 사용 사례에는 Kueue를 사용하는 것이 좋습니다.
다음 단계
- GKE에 TPU 워크로드 배포에 따라 GKE로 Cloud TPU 설정하기
- Cloud TPU를 사용한 머신러닝 작업 시의 권장사항 알아보기
- GKE를 사용한 Cloud TPU에서 대규모 머신러닝 빌드
- TPU에서 KubeRay로 대규모 언어 모델 제공