2. 快速开始
2.1. 前提条件
2.2. 安装
以 0.13.0 版本为例,从软件中心下载离线安装包 metax-gpu-k8s-package.0.13.0.tar.gz,解压后获取以下文件:
metax-k8s-images.0.13.0.run:镜像资源包
metax-operator-0.13.0.tgz:Operator Helm Chart
metax-gpu-extensions-0.13.0.tgz:Extensions Helm Chart
推送镜像。
# 假设容器仓库服务器域名为 DOMAIN ,用于存放沐曦Kubernetes组件镜像的项目名为 PROJECT。 # 默认使用docker进行镜像推送 metax-k8s-images.0.13.0.run push DOMAIN/PROJECT # 使用nerdctl进行镜像推送 metax-k8s-images.0.13.0.run nerdctl push DOMAIN/PROJECT
推送Helm Charts。
helm push ./k8s/metax-operator-0.13.0.tgz oci://DOMAIN/PROJECT
安装 GPU Operator。
# 离线安装(基于本地Helm Charts) helm install ./k8s/metax-operator-0.13.0.tgz \ --create-namespace -n metax-operator \ --generate-name \ --wait \ --set registry=DOMAIN/PROJECT
2.3. 运行一个 GPU 任务
编写 GPU 任务 YAML
创建 gpu-task.yaml,用户可参考如下示例编写作业yaml文件:
apiVersion: v1 kind: Pod metadata: name: gpu-demo spec: containers: - name: vector-add image: ubuntu:20.04 command: [ "bash", "-c", "cp -r /opt/maca/samples/0_Introduction/vectorAdd /home; cd /home/vectorAdd; mxcc -x maca vectorAdd.cpp -o vectorAdd --maca-path=/opt/maca; ./vectorAdd > log/vectoradd_exec_output.log; tail -f /dev/null", ] resources: limits: metax-tech.com/gpu: 1 # 申请 1 张GPU
部署并验证任务
部署任务:
kubectl apply -f gpu-task.yaml -n metax-operator检查 Pod 状态,状态为 Running:
kubectl get pods -n metax-operator查看运行结果:
kubectl logs pod gpu-demo -n metax-operator(可选) MinimalMode下部署作业
MinimalMode不会部署驱动和私有运行时组件,因此用户需提前完成内核态驱动的安装,并且作业所使用的镜像必须包含或使用 MXMACA® SDK。 下面以 MXMACA® 镜像包为例,创建 gpu-task.yaml,用户可参考如下示例编写作业yaml文件:
apiVersion: v1 kind: Pod metadata: name: gpu-demo spec: containers: - name: vector-add image: cr.metax-tech.com/library/maca-native:3.2.1.4-ubuntu20.04-amd64 command: [ "bash", "-c", "cp -r /opt/maca/samples/0_Introduction/vectorAdd /home; cd /home/vectorAdd; mxcc -x maca vectorAdd.cpp -o vectorAdd --maca-path=/opt/maca; ./vectorAdd > log/vectoradd_exec_output.log; tail -f /dev/null", ] resources: limits: metax-tech.com/gpu: 1 # 申请 1 张GPU