此外 , 推理引擎还包括Ascend CL(Ascend Computing Language , 昇腾统一编程接口)全栈能力调用 , 即使是多路复杂的音视频处理等特殊场景也能轻松应对 , 以及ACE(Ascend Computing Execution , 昇腾计算执行引擎)运行管理等功能;至于在线/离线切换的推理模式 , 也让部署场景更加灵活 。
在便捷性上 , 5.0版本又进一步降低了开发者的使用门槛 。
例如 , 无需开发者手工修改代码 , 5.0版本支持模型自动迁移 。
又例如 , 进一步支持混合编程 。 相比于3.0的手动加载模型 , 5.0版本在APP中可以直接调用算子函数 , 自动完成编译加载并执行:
文章图片
△3.0版本
△5.0版本
再例如 , 相比3.0 , 5.0版本现在还能自动生成算子测试代码 , 省去不少步骤:
文章图片
可以说是对开发者新人也很友好了 。
然而 , 相比于表面带来的更高性能、更全面的功能应用 , 异构计算架构的性能优化 , 并不如想象中“随便调调参”一般简单 , 而是需要大量的技术支撑 。
性能优化有多难?
将原本需要跑上几天的模型训练时间 , 缩减到几小时甚至几秒 , 背后绝不仅仅靠的是硬件的堆叠 。
其中CANN 5.0的一个关键技术 , 就是集群训练(采用大量机器共同训练模型 , 以加速训练时间) 。
据金颖介绍 , 相对于单机训练 , 增加训练模型的机器数量 , 往往并不一定能收获线性的效率提升 。
在训练过程中 , 多台机器虽然整体上拥有更多算力 , 但这些算力是分散的 , 彼此在进行数据交互的过程中 , 实际上又降低了训练效率 , 这也一直是集群训练的一个瓶颈 。
文章图片
△图源:图虫
昇腾选择用图计算的原理 , 来分析集群训练的流水线分布、内存分配 , 针对不同机器的特点进行了架构上的设计 , 合理分配各个节点中的内存和通讯时间 , 来提高机器整体的计算效率 。
具体来说 , CANN 5.0版本在性能优化上 , 主要自研了4点技术:
其一 , 任务自动流水 。
我们都在打游戏的时候感受过数据加载的痛苦 , 这是因为硬件需要一定的时间来“反应” , 包括加载计算指令等 , 但在数据量大的情况下 , 这显然会极大地延缓整体计算时间 。
5.0实现了计算指令和数据载入的多流水并行 , 载入数据满足分段数据量时 , 不仅启动后续计算逻辑、还保持数据继续载入 , 进一步“压榨”硬件处理器的并行计算能力 , 实现任务衔接 。
推荐阅读
- 代码|GGV纪源资本连投三轮,这家无代码公司想让运营流程变简单
- 建设|这一次,我们用SASE为教育信息化建设保驾护航
- 年轻人|人生缺少的不是运气,而是少了这些高质量订阅号
- 生活|气笑了,这APP的年度报告是在嘲讽我吧
- bug|这款小工具让你的Win10用上“Win11亚克力半透明菜单”
- Samsung|新渲染揭示Galaxy S22 Ultra几乎就是Galaxy Note复刻版
- 硬件|汽车之家年底裁员,员工称多个职能部门已被撤销
- 视点·观察|科技巨头纷纷发力元宇宙:这是否是所有人的未来?
- 硬件|Yukai推Amagami Ham Ham机器人:可模拟宠物咬指尖
- 硬件|闪极140W多口充电器发布:首发399元 支持PD3.1