摘要:
架构 - Queue - Queue是容纳一组PodGroup的队列,也是PodGroup获取集群资源的划分依据。 - PodGroup - PodGroup是一组强关联的pod,对应批处理workload。 - VolcanoJob - VolcanoJob(vcjob)是自定义的Job资源类型, 阅读全文
摘要:
Kubeflow核心组件 notebook(JupyterHub) - 大多数项目的第一步是某种形式的原型设计和实验。Kubeflow用于原型设计和实验的工具是JupyterHub(https://jupyter.org/hub),这是一个多用户中心,可以生成、管理和代理单用户Jupyter not 阅读全文
摘要:
TensorFlow,这是个很形象的比喻,意思是 张量(Tensor)在神经网络中流动(Flow)。 在数学中,张量是一种几何实体(对应的有一个概念叫矢量),广义上可以表示任何形式的数据。在NumPy等数学计算库或TensorFlow等深度学习库中,我们通常使用多维数组来描述张量,所以不能叫做矩阵, 阅读全文
摘要:
架构 Horovod主要由数据通信层、通信控制层、深度学习框架接口层、启动层四部分组成。其中启动层通过horovodrun或mpirun启动训练进程,之后每个训练进程通过调用TensorFLow、PyTorch、MXNet等框架(python train.py)进行单个结点的数据输入、参数更新,在每 阅读全文
摘要:
Fluid 系统架构 Fluid 是构建在 K8s 上的系统,对原生 K8s 具备良好的兼容性,无需修改任意代码。如上图所示,用户需要定义两个 CRD,分别是 Dataset 和 Runtime。Dataset 是数据集的通用定义,这是我们提供的 K8s 资源对象,需要写 YAML 文件来定义数据集 阅读全文
摘要:
在Kubernetes的标准框架里,容器是只有1个网络平面的。即容器里面,只有1个eth0网卡。所以无论是利用overlay实现容器隧道网络,还是underlay实现容器网络直通,其目的都是解决容器网络“通与不通”的问题。 而大规模AI集群中,百亿、千亿级别参数量的大模型通常需要做分布式训练,这时参 阅读全文
摘要:
工作原理 通过扩展的方式管理 GPU 资源 Kubernetes 本身是通过插件扩展的机制来管理 GPU 资源的,具体来说这里有两个独立的内部机制。 第一个是 Extend Resources,允许用户自定义资源名称。而该资源的度量是整数级别,这样做的目的在于通过一个通用的模式支持不同的异构设备,包 阅读全文