有什么比秃头更心酸的吗?
有,比如智能机器人将秃了的后脑勺识别成未戴口罩的脸,跟随一路提醒佩戴口罩。
如今ai应用已非常普遍,这过程中也收获了不少“人工智障”的笑话,上述只是其中一个,除了离谱的图像自动识别,还有答非所问的智能对话。
自迎来以深度学习为代表的第三次发展浪潮,人工智能技术已被广泛应用在目标检测、图像识别、自然语言处理(nlp)等场景,从语音识别、自动送餐机器人到生产线影像监控,ai的身影无处不在。
客户的业务需求与创新应用对ai推理和训练的效率和质量都提出了更为严格的要求,推动人工智能发展从三个方面——数据、算力、算法都需要进一步调优和高效。
两全其美之事已是世间难得,倘若想要在一件事上达到“三全”,着实有些困难且“贪心”。
但踏平“人工智障”,真的需要“贪心”一些。
数据精度、存储空间、处理速度,发展ai必须三者共同进步
数据、算力和算法之间存在一些原生矛盾。
通常来说,数据类型的宽度越大,能表达的动态范围和精度也就越高。
更大的动态范围和更高的精度意味着更多的存储空间,譬如fp32就需要fp16两倍的内存占用,并给内存带宽带来成倍的压力,对算力带来挑战。
同时算法层面,尽管深度学习是人工智能(ai)近几年重新走红的功臣,也是吞噬算力的巨大 “黑洞”。
这三者平衡起来依然也会存在困难,从数据类型的层面,要节省存储空间就需要做出一定的让步或牺牲,例如,google为加速ai深度学习而引入的bfloat16(bf16)数据类型,用fp16的数据宽度实现了与fp32相当的动态范围,其代价是精度有所降低。
这只是解决了一方面,但如果实现“既准,又省,还快”三重快乐ai,三大要素必须共同发力:简化数据,强化算力,优化算法。
英特尔深度学习加速技术:准、省、快,低精度成就高效率!
算法上的革新是重中之重。
如同上述所说,大多数深度学习应用在其训练和推理工作负载中多采用 32 位浮点精度(fp32),尽管精度高但占用更大内存,进而影响计算效率。
当数据格式由 fp32 转为 8 位整数(int8)或 16 位浮点数(bf16)时,内存可以移动更多的数据量,进而更大化地利用计算资源。
图说:不同数据格式对内存利用率的影响
这种精度的降低会对数据处理的准确率造成影响吗?
答案是:并不会,或者说影响微乎其微。
近年来已有众多研究和实践表明,以较低精度的数据格式进行深度学习训练和推理,并不会对结果的准确性带来太多影响,譬如bf16用于训练,int8用于推理,能够将准确率的损失降至最低,甚至完全没有损失。
而低精度数据格式带来的优势,也不仅在于提升内存利用效率,在深度学习常见的乘法运算上,它也能减少处理器资源消耗并实现更高的操作速度(ops)。
算法的升级助力了“准”和“省”的达标,但“快”的层面还略有些差强人意。
为了保证推理过程中的精度,在cpu的向量处理单元中进行矩阵运算的时候,先将8位值相乘再累加到32位,需要3条指令来完成,代价是3倍的指令数,这也导致峰值运算性能只提高了33%。
那么“提速”任务就交给了算力单元。
英特尔 深度学习加速(英特尔deep learning boost,简称dl boost)技术的精髓,就是把对低精度数据格式的操作指令融入到了 avx-512 指令集中,即 avx-512_vnni (vector neural network instruction,矢量神经网络指令) 和 avx-512_bf16(bfloat16),分别提供了对 int8(主打推理)和 bf16(兼顾推理和训练)的支持。
英特尔 深度学习加速技术带来训练和推理效率提升
至此,英特尔 dl boost技术可以让人工智能达到三全,即:
省:简化数据,提高内存容量和带宽的利用率,缓解内存压力;
准:优化算法,模型量化使用较低的数值精度也能保证结果的准确性,特别是推理应用;
快:强化算力,避免增加额外操作,保证性能与内存利用率同步提升。
推理与训练,硬件加速双管齐下
如同一条道路上,通过车辆的体型变小(简化后的数据),通过的车辆数量自然就上来了。
两种新的、针对 ai 应用的 avx-512 指令集使道路(寄存器)上通过了更多的 车辆(数据量),新的指令集无疑能使计算效率获得大幅提升。
点击此处回顾英特尔avx指令集的前世今生《这项15年前的「超前」技术设计,让cpu在ai推理时代大放光彩》
这两种不同指令集的优势也有所不同。
从代号cascade lake的英特尔第二代至强可扩展处理器开始,avx-512指令集就增加了vnni,用一条fma指令就可以完成8位乘法再累加到32位的操作。
2020 年问世的第三代英特尔 至强 可扩展处理器已集成了英特尔 深度学习加速技术这两种 ai 加速指令集,并被广泛运用于商业深度学习应用的训练和推理过程。
在指令集的支持下,简化数据的同时避免了额外的开销,让性能可以获得与内存利用率一致的提升。avx-512_vnni 使用int8做推理,对比使用fp32,理论上可以获得4倍的性能,而将内存要求降至 ¼。
内存的减少和频率的提高加快了低数值精度运算的速度,最终加速 ai 和深度学习推理,适合图像分类、语音识别、语音翻译、对象检测等众多方面。
而avx-512_bf16 的优势是既可以用于推理,也可以用于训练,能帮助训练性能提升达 1.93 倍。代号cooper lake的英特尔第三代至强可扩展处理器就集成了bfloat16加速功能,在与fp32相似的精度下,提升性能和内存利用率。
软硬协同设立“ai改造车间”,cpu多场景应用优势尽显
算力、算法、数据如今都有各自标准以及解决办法,当三者形成完整闭环时,如何让整个流程的效率更上一层?
依然还有可以继续进步的地方,那就是:ai 应用原生的数据格式并不统一的情况下,如何高效的把大量采用传统fp32数据格式的ai模型转换成bf16或int8格式使用。
由英特尔推出的 openvino 工具套件提供了模型量化功能,为上述问题提供了应对良方。
它能让基于不同 ai 框架,如 tensorflow、mxnet、pytorch 等构建的 fp32 数据格式 ai 模型,在损失很少精度的情况下转化为 int8 和 bf16 数据格式。
除模型量化功能外,针对一系列 ai 应用场景,如视觉模拟、自动语音识别、自然语言处理及推荐系统等,openvino 工具套件还提供了能提升它们开发和部署效率的组件,例如 openvino model server 和 openvino model zoo 等组件可对基于 tensorflow、pytorch、mxnet、keras 等不同框架构建的训练模型实施更为高效的优化,并简化这些模型部署的流程及耗时。
ai应用场景颇多,那何种场景更能突显avx-512_bf16等深度学习加速技术的优势?
例如在医疗影像此类重视准确性多过于实时性的场景中,汇医慧影在乳腺癌影像分析场景中引入了集成有英特尔 深度学习加速技术的第二代英特尔 至强 可扩展处理器,配合 openvino 工具套件,在对检测模型进行了 int8 转换和优化后,推理速度较原始方案提升高达 8.24 倍,且精确度损失不到 0.17%。
企业启动构建ai应用,改弦更张并非性价比之选,可以充分评估既有的数据存储、处理和分析平台,如此一来,基于又准又快又省的cpu,或借助它构建和部署符合自身需求的ai应用。
更何况,cpu自身的ai能力也在不断进化中,即将发布的代号为sapphire rapids的英特尔第四代至强可扩展处理器,就加入了简称amx的高级矩阵扩展(advanced matrix extensions)技术。
amx是新的x86扩展,具有自己的存储和操作,主要针对ai领域非常重要的平铺矩阵乘法,比前两种dl boost的实现更为复杂,那效果呢?我们(带上显微镜)拭目以待吧~
中国拟制定无线充电技术标准,引领快充行业新潮流
二波段四灯直流机的制作
保隆科技获得国家级专精特新小巨人认定
【价值分享】射频功率放大器在抗扰度测试中的常见应用
传新能源车年检将增加电池测试,不合格直接返厂,换电模式要起飞了?
一文详解英特尔深度学习加速技术
怎么制作物联网烟雾报警器
傅里叶变换对信号处理的意义
承德科胜信函文件折纸机|三折纸折纸机|河北折纸机
基于PLC的柴油发电机组与市电切换系统
安防与智慧城市之间有着怎样的瓜葛呢?
常用汽车线束设计软件有哪些
MINITÜB 的UR机器人解决方案
OMV小车及5G技术在高纯石英棒智能制造车间的融合应用
大模型参数达百万亿级别,AI商业化进程加速!
发电机保护系统巡检 发电机保护系统巡检
亨通光电全新的5G智慧应用正式上线
一季度电信业务收入3383亿 移动互联网流量357亿GB
LED显示屏中的尖端技术是什么
如何将SD卡模块与PIC微控制器连接并在其中存储数据