00000607
本文提供单机部署k8s系统,旨在指导用户在k8s集群导入GPU虚拟化(iluvatar VGPU)插件。天数智芯VGPU方案是针对天数智芯加速卡实现的基于Kubernetes(K8s) 集群系统的GPU虚拟化方案,部署此方案后可以实现多用户同时使用天数智芯加速卡。该方案GPU算力的最小颗粒度为一张天数智芯加速卡的1%,显存的最小颗粒度为256M。
1、硬件要求(当前支持的加速卡类型,其他类型加速卡可以咨询售后)
BI-V100
BI-V150S
BI-V150
MR-V100
MR-V100-DUO
2、版本要求
K8s,集群版本必须 v1.20+,建议版本不小于v1.31
Helm版本v3.2.0+
3、环境要求
确保计算节点所在的宿主机已成功安装天数智算软件栈和驱动,详情请参考《软件栈安装指南》。
使用 ixsmi 命令可以查看到天数智芯加速卡的状态正常。
执行 ll 命令检查软链接 /usr/local/corex 是否存在:ll /usr/local/corex
4、已经成功部署k8s组件(网络组件以calico)
删除VGPU相关组件
kubectl delete namespace iluvatar-vgpu #iluvatar-vgpu 修改为你的namespace 名
或者
helm uninstall iluvatar-vgpu -n iluvatar-vgpu
1、下载VGPU组件
通过SFTP下载,SFTP下载地址和密码,请联系天数售后工程师获取
sftp -P 29880 iluvatar_mr@iftp.iluvatar.com.cn
get /client_tmp/support/k8s/4.4.0/vgpu-nolicense/* ./
2、通过Helm部署方式创建命名空间并安装VGPU组件
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 > helm.sh
bash helm.sh
3、确认容器运行时
# 执行命令之前,需要确认系统下装的cri-docker 还是cri-container
ls /var/run/cri-dockerd.sock
ls /var/run/containerd/containerd.sock
4、VGPU 安装
helm install iluvatar-vgpu --namespace iluvatar-vgpu --create-namespace \
--set manager.product="{BI-V100,BI-V150S,BI-V150,MR-V100,MR-V100-DUO}" \
--set manager.containerRuntimeEndpoint=${/container/containerd.sock用自己系统下的容器运行时} \
iluvatar-vgpu-manager-3.0.7.tgz
5、通过kubectl get pod -n ${namespace}可以查看已安装的VGPU组件,如果所示:
6、创建使用虚拟GPU资源工作Pod
pod_demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: poddemo
spec:
restartPolicy: Never
containers:
- name: poddemo
image: corex:4.4.0
command
:
-
bash
args:
- -c
- |
set
-ex
echo
"export LD_LIBRARY_PATH=/usr/local/corex/lib64:$LD_LIBRARY_PATH"
>>
/root/.bashrc
cp
-f
/usr/local/iluvatar/lib64/libcuda.*
/usr/local/corex/lib64/
cp
-f
/usr/local/iluvatar/lib64/libixml.*
/usr/local/corex/lib64/
source
/root/
.bashrc
sleep
360000
volumeMounts:
- name: host-data
mountPath:
/data
resources:
requests:
iluvatar.ai/BI-V150S.vCore:50
iluvatar.ai/BI-V150S.vMem:64
limits:
iluvatar.ai/BI-V150S.vCore: 50
iluvatar.ai/BI-V150S.vMem: 64
volumes:
- name: host-data
hostPath:
path:
/data
type:
DirectoryOrCreate
|
kubectl exec -it poddemo -n default -- /bin/bash
7、测试
#进入到Pod 内
kubectl exec -it poddemo -n default -- /bin/bash
执行
python3 -c "import torch; print(torch.__version__, torch.version.cuda)"
输出torch 版本号,则环境正常
python3 -c "import torch;print(torch. cuda. is_available())"
输出true,则显示环境正常
# 执行ixsmi ,检查显存大小是否是整张加速卡大小的1/2,如果是,则VGPU虚拟化部署正常。