sGPU 使用指南
摩尔线程 sGPU 服务通过自研的内核驱动为容器提供虚拟的 GPU 设备,在保证性能的前提下隔离显存和算力,为充分利用 GPU 硬件资源进行训练和推理提供有效保障。 本文介绍如何在容器环境下启用 sGPU 并进行设置。在 Kubernetes 集群中如何通过 GPU Operator 使用 sGPU 请参考 GPU Operator 使用指南。
运行 sGPU 服务
sGPU 功能将会与 MT Container Runtime 一起提供服务,因此需要一起使用。创建容器时,通过环境变量 MTHREADS_QOS_MEMORY_LIMIT 指定容器内可用的显存大小,即可使用 sGPU 服务:
# 如果要设置自定义的算力权重,可增加 -e MTHREADS_QOS_COMPUTING_POWER_WEIGHT=<<uint64>> 设置,默认值为 1
$ docker run -it \
-e MTHREADS_VISIBLE_DEVICES=0 \
-e MTHREADS_QOS_MEMORY_LIMIT=1000 \
sh-harbor.mthreads.com/cloud/opencl \
bash
环境变量
影响 sGPU 服务的环境变量如下表所示,您可以在创建容器时指定环境变量的值,控制容器可以通过 sGPU 服务获得的能力。
| 环境变量 | 取值类型 | 描述 | 示例 |
|---|---|---|---|
MTHREADS_VISIBLE_DEVICES | Integer 或 UUID | 指定容器内可见的GPU | 0,1:分配第 1、2 张卡 UUID:分配指定卡 |
MTHREADS_QOS_MEMORY_LIMIT | Integer | 设置容器内可用显存大小,不指定或为 0 时不使用 sGPU。 默认单位 bytes,根据设置值向上对齐到以下档位: 512MiB,1/2/4/8/16/32/48/64/80GiB | 设500000000则分配 512MiB。 设 40GiB则分配 48GiB。 |
MTHREADS_QOS_COMPUTING_POWER_WEIGHT | Integer | 设置容器算力权重,默认 1。范围 1 ~ 99999 | 无 |