日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

eGPU接口使用示例

本文以一個具體的示例為您介紹eGPU優化套件的主要接口功能。

背景信息

所有開關和配置都通過在容器啟動時指定環境變量的方式指定,下文為一個具體的示例,將啟動一個使能eGPU并控制顯存為2G算力50%的容器:

sudo docker run \
 --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all \
 -e AMP_VGPU_ENABLE=1 \
    -e GPU_MEM_PER_DEVICE=2000000000 \
    -e GPU_UTIL_PER_DEVICE=50 \
    -e NVIDIA_VISIBLE_DEVICES=1 \
    -e AMP_USE_HOST_DAEMON=1 \
    image_name

使能eGPU

指定AMP_VGPU_ENABLE=1來使能eGPU。這是一個總開關,如果不指定,eGPU不會對啟動容器做任何修改,將用默認的方式啟動容器。

說明

AMP_USE_HOST_DAEMON=1是一個環境變量配置參數,不需要修改,啟動容器時攜帶即可。

指定顯卡

目前eGPU功能支持單容器多卡場景。可以使用NVIDIA_VISIBLE_DEVICES來指定容器可用顯卡的UUID,例如:

NVIDIA_VISIBLE_DEVICES=GPU-28df2127-fac9-f8fd-77de-e461c85c8ef2,GPU-7bda088d-4609-6f9d-8ada-6bcba97e664a

也可以通過GPU Index來指定,例如:

NVIDIA_VISIBLE_DEVICES=3,5

也可將UUIDGPU Index混用。

使用數值分配顯存大小

image

可使用環境變量GPU_MEM_PER_DEVICE(單位為Byte)來指定容器內可用顯存大小。用戶最終可查詢和使用的顯存量為:

Available_Memory = GPU_MEM_PER_DEVICE - ALIYUN_COM_GPU_MEM_RESERVED

需要ALIYUN_COM_GPU_MEM_RESERVED是因為eGPU功能需要保留一小部分顯存來保證功能的正確性,需要從分配給容器的顯存里減去。ALIYUN_COM_GPU_MEM_RESERVED配置時單位為MB,目前默認為10MB。

啟動容器

如下面的例子,將啟動一個可用顯存大小約為5G的容器:

sudo docker run \
 --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all \
 -e AMP_VGPU_ENABLE=1 \
    -e GPU_MEM_PER_DEVICE=5000000000 \
    -e NVIDIA_VISIBLE_DEVICES=0 \
    -e AMP_USE_HOST_DAEMON=1 \
    image_name

按比例分配顯存大小

image

按比例分配顯存大小通過兩個環境變量設置。

  • ALIYUN_COM_GPU_MEM_DEV為正整數,表示為host上卡的每張卡的顯存大小。

  • ALIYUN_COM_GPU_MEM_CONTAINER為正整數,表示容器可用顯存大小。

eGPU會自動獲得host上卡的總顯存實際大小,設為GPU_Memory(單位為Byte)。計算用戶可用顯存大小的公式為(精確到Byte):

Available_Memory = GPU_Memory * ALIYUN_COM_GPU_MEM_CONTAINER / ALIYUN_COM_GPU_MEM_DEV- ALIYUN_COM_GPU_MEM_RESERVED
  • 僅配置ALIYUN_COM_GPU_MEM_CONTAINER時:ALIYUN_COM_GPU_MEM_DEV程序會自動獲取,并round upGB為單位的整數。此時ALIYUN_COM_GPU_MEM_CONTAINER應配置為整數,單位為GB。

  • 配置ALIYUN_COM_GPU_MEM_DEVALIYUN_COM_GPU_MEM_CONTAINER:此時 ALIYUN_COM_GPU_MEM_DEVALIYUN_COM_GPU_MEM_CONTAINER不做單位限制,可以通過控制它們的絕對數值大小來控制分配粒度。

實際以GB為比例單位應用配置時,看到的顯存可能不足ALIYUN_COM_GPU_MEM_DEV*1024*1024*1024 Byte。這是因為Nvidia標稱的顯存量也并不是足量的,比如16GB V100的卡,顯存一般為16160MB,約等于15.78GB,這里會等比例減少。

啟動一個可用顯存大小約為5G的容器

需要ALIYUN_COM_GPU_MEM_RESERVED是因為eGPU功能需要保留一小部分顯存來保證功能的正確性,需要從分配給容器的顯存里減去。ALIYUN_COM_GPU_MEM_RESERVED配置時單位為MB,目前默認為10MB。

如下面的例子,在16GB GPU卡上啟動一個可用顯存大小約為5GB的容器:

sudo docker run \
 --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all \
 -e AMP_VGPU_ENABLE=1 \
 -e ALIYUN_COM_GPU_MEM_CONTAINER=5 \
 -e ALIYUN_COM_GPU_MEM_DEV=16 \
 -e NVIDIA_VISIBLE_DEVICES=0 \
 -e AMP_USE_HOST_DAEMON=1 \
 image_name

GPU Out Of Memory

當容器使用的顯存超過被分配的顯存(Container_Memory)被檢測到時,會提示OOM錯誤,用戶進程會被強制結束執行。如果ALIYUN_COM_GPU_OOM_SCRIPT被配置,則用戶進程會主動調用該環境變量指定的腳本或程序實現通知,然后結束執行。

算力控制

通過環境變量GPU_UTIL_PER_DEVICE來配置容器可用算力,取值為百分比。如果不設置該環境變量,或設置值為0或大于95,則算力控制功能不再使能。

如下面的例子,啟動一個算力控制為整卡三分之一能力的容器:

sudo docker run \
 --runtime=nvidia -e NVIDIA_DRIVER_CAPABILITIES=all \
 -e AMP_VGPU_ENABLE=1 \
 -e GPU_UTIL_PER_DEVICE=33 \
 -e NVIDIA_VISIBLE_DEVICES=0 \
 -e AMP_USE_HOST_DAEMON=1 \
 image_name