最近,我遇到一个十分头疼的问题,有一组集群机器,配了4张GPU显卡,平时主要用来测评大模型、开发AI应用。本来应该是够用了,但是在使用GPU的时候经常是独占式的,一个任务占了整张卡,利用率却只有30%,别的任务就要排队。
在人工智能飞速发展的今天,GPU算力已成为驱动创新的核心引擎。然而,对于大多数企业和开发者而言,获取、部署和管理GPU算力往往是一场充满挑战的征程。趋动科技以其独特的技术视角和用户导向的设计理念,正在重塑我们与GPU算力交互的方式,将复杂的算力管理转化为一种直观而高效的体验。
01
GPU资源管理困局
关于GPU资源管理的问题,其实远不止利用率不高这一点,在使用过程中普遍会遇到以下四个问题:
1、资源颗粒度太粗。如前面说的场景,一张16GB的T4卡,只能整卡分配,利用率只有30%,白白浪费11G多。
2、调度机制不够智能。K8s原生调度只知道“有卡”或“没卡”,不知道卡上还剩多少显存、算力,就好比一个停车场虽然车位满了,但是还能够塞进很多辆摩托车。
3、资源隔离难。开发、测试、生产环境混在一起,没法给不同团队单独的工作区间,避免相互干扰。
4、管理成本高。传统的资源申请要走人工审批,出了问题也要排查很久,导致管理成本很高。
如何才能更高效地管理GPU资源,难道以上问题就没有更好的解决方案吗?
02
OrionX社区版,初体验
一次偶然的机会,我了解到OrionX社区版。这是由趋动科技开发的,OrionX的轻量级部署版本,帮助用户构建数据中心级AI算力资源池、降本增效。它的核心理念是:用软件定义AI算力,让GPU资源像云计算一样灵活。
原理也不复杂,就是把显卡、算力按很小的粒度进行切分,然后根据用户实际需要进行组合。传统的GPU管理就像饭店的包间,你一个人也得开一间,而OrionX社区版把包间改成拼桌,来几个人就坐几个位子,灵活调整,绝不浪费。
在人工智能飞速发展的今天,GPU算力已成为驱动创新的核心引擎。然而,对于大多数企业和开发者而言,获取、部署和管理GPU算力往往是一场充满挑战的征程。趋动科技以其独特的技术视角和用户导向的设计理念,正在重塑我们与GPU算力交互的方式,将复杂的算力管理转化为一种直观而高效的体验。
OrionX社区版究竟能不能解决GPU管理的困境呢?我上手做了个测评,下面跟随我一起来体验吧。
首先,从官网上提交申请,扫码填写信息:
审核通过后,会收到一封确认邮件,获取授权码、下载地址。
下载安装文件,上传到服务器,准备开始安装。
安装的过程很简单,主要是基于K8S环境进行部署。开始部署前需要对安装环境做基础检查,包括:
GPU驱动检查:nvidia-smi
Kubernetes 环境检查:get node -owide
Nvidia Container Toolkit 检查:
docker info | grep 'Default Runtime'
状态正常,就可以开始部署了。
1)部署文件上传
上传 OrionX 部署文件 yaml.tar.gz 至 K8S 管理节点任意位置,并解压.
2)K8S 节点标记
编辑部署文件 tools/label.sh 脚本,按资源规划修改如下内容,然后对执行K8S 集群节点进行标记:
3)创建命名空间和配置信息对象
执行如下操作,创建名为 orionx 的命名空间,创建 OrionX 配置信息 ConfigMap 对象,命令如下:
kubectl apply -f base/
4)部署 orionx-ocenter-all-in-one 组件
执行如下操作,部署 orionx-ocenter-all-in-one 组件,命令如下:
kubectl apply -f deploy/orionx-ocenter-all-in-one.yaml
5)导入License
通过浏览器访问 http://<k8s-node-ip>:30125,打开 OrionX GUI 管理页面,通过激活页面,添加激活文件按钮导入License,导入后会显示证书信息,如下图所示:
6)部署 orionx-k8s-scheduler 组件
执行如下操作,部署 orionx-k8s-scheduler 组件,命令如下:
kubectl apply -f deploy/orionx-k8s-scheduler-extender.yaml
7)部署 orionx-server 组件
部署 orionx-server 组件,修改配置文件如下,并执行命令:
kubectl apply -f deploy/orionx-gpu-server.yaml
8)部署 orionx-k8s-device-plugin 组件
执行如下操作,部署 orionx-k8s-device-plugin 组件,命令行:
kubectl apply -f deploy/orionx-k8s-device-plugin.yaml
9)部署 orionx-gpu-exporter 组件
执行如下操作,部署 orionx-gpu-exporter 组件,会部署于所有 OrionX GPU 计算节点:
kubectl apply -f deploy/orionx-gpu-exporter.yam
10)部署 orionx-k8s-admission-webhooks 组件
执行如下命令,部署 orionx-k8s-admission-webhooks 组件:
kubectl apply -f deploy/orionx-k8s-admission-webhooks.yaml
11)部署 orionx-container-runtime 组件
执行如下操作,部署 orionx-container-runtime 组件:
kubectl apply -f deploy/orionx-container-runtime.yaml
现在就可以开始使用Orion社区版了,整体安装过程很丝滑,下面就可以到后台去操作了。浏览器访问 http://<k8s-node-ip>:30125 地址,打开 OrionX GUI,进行登录,初始用户名密码见安装手册。
进入节点详情页面可以查看该节点 GPU 资源使用率监控统计图。
还可以进行节点管理。在OrionX GUI 左侧导航栏选择“节点”,在节点信息页面可以禁用或启用节点。
整个安装过程很顺滑,只要具备基本的Linux使用能力,就可以轻松完成。
03
轻松管理你的GPU资源池
下面谈谈我对OrionX社区版的总体使用感受,主要有四点体会:
1、资源分配灵活,告别“大锅饭”。更细粒度地分配GPU资源,提高资源利用率,这就解决了我们团队遇到的GPU独占的问题,而且申请资源无须再等待,提升了日常管理效率。
2、智能调度,让资源分配更合理。GPU的调度是智能化的,可以做到节点均匀,设备紧凑,节点优先,这就解决了一些节点负载高、一些负载低的问题,并且策略是可配置的。
3、超分,榨干GPU每一滴性能。很多任务不是一直满负荷用GPU,推理任务经常是突发式的,通过统一内存管理和算力复用,可以分配出更多vGPU,合理使用超分功能可以进一步提升GPU效能。
4、可视化管理,一目了然。Orion社区版的GUI界面做得很不错,资源监控很直观,点进某个节点,可以看到详细的监控曲线、GPU利用率曲线(最近24小时)、显存使用趋势。
04
立刻开启GPU资源池化时代
OrionX社区版通过构建算力资源池,将粗放的管理转变为精细化运营,这是中国科技企业在AI基础设施领域的突破。正如凯文·凯利在《必然》中所说:“技术的真正力量,不在于它能做什么,而在于它让更多人能做什么。”AI算力池化技术的价值,恰恰在于让研发团队也能用得起、用得好AI算力,打破算力垄断的壁垒。
趋动科技以其创新的GPU算力使用方式和卓越的便捷性,正在悄然改变着我们利用人工智能技术的方式。它不仅是一个技术平台,更是一座连接算力资源与创新思想的桥梁。通过将复杂的技术细节隐藏在简洁易用的界面之后,趋动科技让每一位拥有创新梦想的用户都能轻松驾驭GPU算力这一强大工具,将创意快速转化为现实。
注册地址:https://growthdata.virtaicloud.com/t/gU
有兴趣的朋友提交上面表单信息后,也可以添加下方小助手微信进行交流。