グラフィカルプロセッシングユニット(GPU)の使用
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab Runnerは、グラフィカルプロセッシングユニット(GPU)の使用をサポートしています。次のセクションでは、さまざまなexecutorに対してGPUを有効にするために必要な設定について説明します。
Shell executor
必要なRunnerの設定はありません。
Docker executor
Podmanをコンテナのランタイムエンジンとして使用している場合、GPUは検出されません。詳細については、issue 39095を参照してください。
前提条件:
- NVIDIAドライバーをインストールします。
- NVIDIAコンテナツールキットをインストールします。
runners.dockerセクションで、gpusまたはservice_gpusの設定オプションを使用します:
[runners.docker]
gpus = "all"
service_gpus = "all"Docker Machine executor
Docker MachineのGitLabフォークのドキュメントを参照してください。
Kubernetes executor
前提条件:
- ノードセレクターがGPUをサポートするノードを選択していることを確認してください。
FF_USE_ADVANCED_POD_SPEC_CONFIGURATION機能フラグを有効にします。
GPUサポートを有効にするには、ポッドの仕様でGPUリソースをリクエストするようにRunnerを設定します。例:
[[runners.kubernetes.pod_spec]]
name = "gpu"
patch = '''
containers:
- name: build
resources:
requests:
nvidia.com/gpu: 1
limits:
nvidia.com/gpu: 1
'''
patch_type = "strategic" # <--- `strategic` patch_typeジョブの要件に基づいて、requestsおよびlimitsのGPU数を調整します。
GitLab Runnerは、Amazon Elastic Kubernetes Serviceでテストされており、GPU対応のインスタンスを備えています。
GPUが有効になっていることを検証する
NVIDIA GPUでRunnerを使用できます。NVIDIA GPUの場合、CIジョブに対してGPUが有効になっていることを確認する方法の1つは、スクリプトの先頭でnvidia-smiを実行することです。例:
train:
script:
- nvidia-smiGPUが有効になっている場合、nvidia-smiの出力には、使用可能なデバイスが表示されます。次の例では、単一のNVIDIA Tesla P4が有効になっています:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.51.06 Driver Version: 450.51.06 CUDA Version: 11.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 Tesla P4 Off | 00000000:00:04.0 Off | 0 |
| N/A 43C P0 22W / 75W | 0MiB / 7611MiB | 3% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+ハードウェアがGPUをサポートしていない場合、nvidia-smiが見つからないか、ドライバーと通信できないため、失敗するはずです:
modprobe: ERROR: could not insert 'nvidia': No such device
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.