CANN 5.0黑科技解密 | 算力虚拟化,让AI算力“物尽其用”
摘要:算力虚拟化技术对消费者而言,可有效降低算力的使用成本,对于设备商或运营商而言,则可极大提升算力资源的利用率,降低设备运营成本。
为什么要做算力虚拟化
近年来,人工智能领域呈井喷式发展,算力就是生产力,以AI集群为基础的人工智能计算中心在国内多点开花,为政府、企业及个人,提供了一种新的城市公共资源,成为了智能世界的“黑土地”。
算力资源共享势必会带来资源分配问题,无论是人工智能计算中心这种大型AI基础设施还是AI计算卡这种小型AI计算资源,都承载着用户多样化的AI算力诉求。
比如,在某些算力要求不高的场景下,AI模型在训练或推理时并不需要占用整张AI计算卡,希望更低的资源配置满足要求,比如1/4切片;再或者,在教学场景,一台AI服务器(可由单张或多张计算卡组成)希望可共享给整个班级使用。
借助虚拟化技术可轻松应对以上问题!
我们将整卡或整机的计算资源虚拟化为多个虚拟计算设备,并在上面部署不同的虚拟机或容器,分别运行AI训练或推理应用服务。
对消费者而言,可有效降低算力的使用成本,对于设备商或运营商而言,则可极大提升算力资源的利用率,降低设备运营成本。
业界常见虚拟化技术
业界常见的虚拟化技术有「基于时间分片」和「基于计算实例隔离」。
举个例子,三胎政策来了,未来几年,妈妈们可能会面临同时应付三个神兽的情况,老大要辅导作业,老二要读绘本,老三要喝奶…先忙谁都有意见,怎么办?
遇事不要慌,坐等天塌是没用的,基于时间分片的虚拟化技术为三胎妈妈提供了友好的解决方案,让每个娃都不会等太久,雨露均沾,不偏不倚:

这实际上是对计算资源从时间层面上划分,与CPU进程调度类似,各任务进程按时间切片占用全部的物理设备资源。
而基于计算实例隔离的虚拟化技术,是对计算资源本身的直接划分,正如文章开头的举例,老师在教学时,将一台AI服务器划分成N个虚拟组并做好安全隔离,然后共享给整个班级使用,使得每个学生都能独立使用,互不干扰,实现多个虚拟机实例共享同一硬件资源。
显而易见,两种虚拟化技术均能有效提升算力资源利用率,但并不是天衣无缝。
基于时间分片,无法做到AI任务之间的安全隔离;而基于计算实例分片,在目前市面上支持的切分粒度不够细,不能满足用户更高规格的切分诉求。
而华为提供的AI算力虚拟化技术,支持足够细致的切分粒度,且在各个虚拟设备间可做到足够安全的相互隔离,无论从切分粒度还是安全角度来说,都要更胜一筹!
下面我们就来看看,华为是怎样做到的。
华为AI算力虚拟化技术解读
众所周知,昇腾910是华为推出的一款具有超高算力的AI处理器,它集成了32个达芬奇架构的AI Core计算引擎,可高效执行矩阵、向量计算密集的算子任务,八位整数精度(INT8)下的性能达到640 TOPS,16位浮点数(FP16)下的性能达到320 TFLOPS。

单片昇腾910 AI处理器提供的算力如此之大,为了使其“物尽其用”,必须充分利用好虚拟化技术,将硬件的计算资源利用到极致。
CANN作为AI领域的异构计算架构,不仅能充分做好本职工作——极大程度释放硬件性能,为AI应用提供强大的算力支持,还在最新的5.0版本中,借助“基于AI Core切分的算力虚拟化技术”,最高可支持切分成32个分片,充分提升了硬件的资源利用率。
下图是CANN 5.0的算力虚拟化框架:

基于该框架,可支持虚拟机、容器的单一或混合部署,并能支持不同类型算力单元的划分,实现算力、内存、带宽的灵活切分、隔离。
下表是昇腾910支持的基于AI Core切分的算力虚拟化典型配置:

比如,教学场景下,有人算力诉求小,有人算力诉求大,基于AI Core切分的算力虚拟化技术,能够将一片昇腾910 AI处理器进行灵活切分,以匹配开发者多样化的算力诉求:

算力就是智能时代的粮草,半丝半缕弥足珍贵,正是得益于CANN超小粒度的算力切分机制,让小算力场景下算力分配更加合理,宝贵的计算资源才能得到更加充分的利用。
CANN在实现算力切分的同时,也实现了各个虚拟设备间的安全隔离,包括:
- 支持虚拟设备间内存隔离:
通过算力配置,实现HBM、DDR等内存的自动切分和隔离。
- 支持虚拟设备间的数据隔离
通过虚拟设备的标识,实现用户数据按照虚拟设备自动处理和隔离。
- 支持虚拟设备间的业务故障管理隔离
各个虚拟设备的故障信息反馈给对应的虚拟机或容器。
除了支持对单个昇腾910 AI处理器按照AI Core级别进行算力切分,CANN还支持在搭载多个昇腾910 AI处理器的AI Server或集群系统中,按照昇腾910 AI处理器维度做算力划分。
从技术角度看,CANN 5.0的算力虚拟化方式切分更细致、隔离更安全,给予了行业开发者更多选择;
从性能角度看,虚拟化和非虚拟化场景下性能持平,提升灵活性的同时,也妥善保证了用户体验不打折!
写在最后
CANN 5.0在算力虚拟化方面做出的努力,可有效降低管理成本,提高系统利用率和安全性。
自此,云端个人用户或者小企业客户,只用按需购买资源和算力,即可以最低成本完成AI应用部署。
未来的智能世界里,AI一定是人人皆可得的通用技术,算力也必然是人人皆可用的平民化资源。
借力于CANN 5.0,AI正在逐步成为大家“用得起”的普惠AI。
未来不远,已在路上,你准备好了么?
CANN 5.0黑科技解密 | 算力虚拟化,让AI算力“物尽其用”的更多相关文章
- CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!
摘要:CANN作为释放昇腾硬件算力的关键平台,通过深耕先进的模型压缩技术,聚力打造AMCT模型压缩工具,在保证模型精度前提下,不遗余力地降低模型的存储空间和计算量. 随着深度学习的发展,推理模型巨大的 ...
- 黑科技如何制造人类V2.0?
黑科技泛指人类尚未成熟但具有巨大潜力的科学技术,智能手机.大数据.扫码支付.电子地图等等都曾属于黑科技范畴,随着时间的推移,它们慢慢成熟,且展现出巨大的能力,影响人类进程,最终黑科技转变成人类伟大的创 ...
- Java黑科技之源:JVMTI完全解读
Java生态中有一些非常规的技术,它们能达到一些特别的效果.这些技术的实现原理不去深究的话一般并不是广为人知.这种技术通常被称为黑科技.而这些黑科技中的绝大部分底层都是通过JVMTI实现的. 形象地说 ...
- ACM: FZU 2105 Digits Count - 位运算的线段树【黑科技福利】
FZU 2105 Digits Count Time Limit:10000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”
NOW, 步 将此黑科技传授予你~ 一.普通家电控制电路板分析 普通家电,其人机接口一般由按键和指示灯组成(高端的会稍微复杂,这里不考虑) 这样交互过程,其实就是:由当前指示灯信息,按照操作流程按相应 ...
- C++的黑科技
周二面了腾讯,之前只投了TST内推,貌似就是TST面试了 其中有一个问题,"如何产生一个不能被继承的类",这道题我反反复复只想到,将父类的构造函数私有,让子类不能调用,最后归结出一 ...
- Android黑科技,读取用户短信+修改系统短信数据库
安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波“黑科技”. 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证 ...
- iOS 关于UITableView的黑科技
UITableView是我们最常用的控件了,今天我就来介绍一些关于UITableView的黑科技和一些注意的地方. 1.修改左滑删除按钮的高度 左滑删除这是iOS最先发明的,之后安卓开始模仿. ...
- Cnblogs关于嵌入js和css的一些黑科技
#pong .spoiler{cursor:none;display:inline-block;line-height:1.5;}sup{cursor:help;color:#3BA03B;} Pon ...
- 微软黑科技强力注入,.NET C#全面支持人工智能
微软黑科技强力注入,.NET C#全面支持人工智能,AI编程领域开始C#.Py--百花齐放 就像武侠小说中,一个普通人突然得到绝世高手的几十年内力注入,招式还没学,一身内力有点方 Introducin ...
随机推荐
- Session概述(选自WebX)
http://openwebx.org/docs/Webx3_Guide_Book.html#d0e9084 8.1. Session概述 8.1.1. 什么是Session HTTP协议是无状态的, ...
- 向量数据库Chroma极简教程
引子 向量数据库其实最早在传统的人工智能和机器学习场景中就有所应用.在大模型兴起后,由于目前大模型的token数限制,很多开发者倾向于将数据量庞大的知识.新闻.文献.语料等先通过嵌入(embeddin ...
- 题解 CF1264D2
前言 建议大家看一下我对于 D1 的题解(传送门)后再看本题解,本题解是基于那篇题解的基础上书写的. 数学符号约定 \(\dbinom{n}{m}\):表示 \(n\) 选 \(m\) . 如非特殊说 ...
- What is Conjugate complex number(共轭复数)?
word explain Conjugate 共轭是一个古代汉语词,在农业领域常用, 共轭复数的定义 两个实部相等,虚部互为相反数的复数互为共轭复数. 若Z=a+bi(a,b∈R),则Z*=a-bi( ...
- 递归+DP:爬楼梯问题
一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级.求该青蛙跳上一个n 级的台阶总共有多少种跳法. 输入格式: 首先输入数字n,代表接下来有n组输入,50>=n>=0,然后每行一个 ...
- C语言二进制转换成八,十,十六进制
代码目前只支持整数转换,小数转换后续更新呀 #include <stdio.h> #include <math.h> void B_O(int n); void B_H(int ...
- Modbus通用串口转PROFINET IO网关TS-180 在锅炉厂智能温湿度监控系统中的应用
背景: 现代科学技术和工业的迅速发展,不断促进着自动化控制技术及设备通信技术的创新和发展.当前,PLC.DCS.智能仪表等已广泛应用到现场生产控制系统中,本应用案例是在锅炉行业的温湿度监控系统中,西门 ...
- list.add()语句作用
----该方法用于向集合列表中添加对象 示例 本示例使用List接口的实现类ArrayList初始化一个列表对象,然后调用add方法向该列表中添加数据. public static void mai ...
- 【让AI女友跟我表白】大白话说Python+Flask入门(四)Flask Sijax的使用
写在前面 先吐槽两句,搞个mysql安装配置弄了4个小时,怎么都是外网无法访问,我靠,我特么也是服了. 当然,后来我投降了,明天再说,学什么不是学,娘的,换个方向,状态依然在! Sijax是什么? 代 ...
- IDEA提示Cannot resolve symbol 'String'
一.解决方案: 1.问题原因: 系统提示Cannot resolve symbol 'String',是由于没有正确导入JDK : 2.解决方案: 在project SDK中正确配置即可. 二.完成. ...