0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让这些乘加器高效地进行并行计算?

pmkA_arm_china 来源:lp 2019-03-27 08:42 次阅读

随着Arm生态系统的发展壮大,各种各样的应用场景层出不穷。为了更好地在特定场景下得到更好的性能,能耗比等指标,针对特定应用场景的加速器市场也在蓬勃发展,近年来火热的人工智能加速器(Artificial Intelligence Accelerator)就是一个典型例子。

一个高效的加速器,需要精心设计的硬件以及与之搭配的软件,两者缺一不可,否则用户体验会大打折扣,这也是为什么我们常常看到某些指标非常惊艳的加速器,在实际使用中体验却不尽如人意的原因。以人工智能加速器为例,其中基本的硬件加速单元就是乘加器的组合,但如何让这些乘加器高效地进行并行计算,涉及到上层数据的打包、调度,需要大量的驱动软件工作,而且大部分软件开发者都是基于某种框架进行应用开发,具体见图 1,所以驱动到框架的适配也很重要,甚至有一些框架不能满足应用的需求,需要专门开辟通道进行优化。

图1:ArmNPU软硬件框架

开发一款高性能加速器,需要投入大量人力物力,如果不能大规模使用,那么投入回报比会大大降低,甚至亏本。如果加速器能和不同Arm系统轻松组合,拓展Arm系统的应用范围,那么应用场景将会大大增加,生命周期也会延长。让加速器适配不同的Arm系统,这对软硬件接口和驱动提出了非常大的挑战,因为今天的Arm产品非常丰富,从低功耗的微处理器,主流的移动平台,到高端的服务器,高性能计算处理器都有相应产品。对于一个加速器团队来说,针对尽可能多的Arm配置组合进行开发验证成本将非常高昂,这里面不单单涉及IP/EDA的采购,还有系统的搭建维护,但如果没有这些IP又无法将整个业务流程完整验证,甚至影响软硬件接口的设计优化。

有没有方法高效地解决加速器配套驱动,框架,应用软件开发的问题呢?Fast Model!

图2:使用DS-5调试运行在Fast Model中的系统软件

在Fast Model的例子系统中,Arm给出了一系列Arm核,相关IP组合的子系统模型,以及相应OS,开发工具DS-5,方便客户快速搭建软件开发平台,调整软硬件接口,进行驱动以及上层软件的开发,具体参考图3。

整个开发流程如下:

1.在Fast Model的例子系统中找到你需要的平台,和对应的Bootloader, Firmware,OS软件,并将他们顺利运行

2.将Fast Model的子系统导出生成SystemC的模型子系统模块

3.编写加速器的功能模型,通过AMBA PV总线和Fast Model导出的子系统模块进行连接

4.编写驱动在目标OS中操作加速器

5.在模型平台上进行软件框架,应用匹配移植

Arm提供了绝大部分市面可见设计的类似子系统,无论是基于Arm v7/v8单核,多核,多cluster系统,还是包含最新架构特性的CPU系统,加速器开发团队都可以在Fast Model的例子程序里面找对类似子系统范例进行适配,在设计之初就可以解决不同系统的适配性问题。Fast Model也提供工具让开发者对例子系统进行修改,生成新的子系统以满足需要。在加速器设计之初,软件硬件人员就可以一起利用丰富多样的例子系统进行架构的探索,对稳定软硬件接口非常有帮助,而稳定的接口定义对长期的产品演进至关重要。

图3:基于Fast Model的加速器软件开发

至此开发者已经完成了大部软硬件接口,驱动以及框架软件开发工作,但驱动中的时序问题还没有完全解决,因为Fast Model是一款功能型模型,它为了提高运行速度(50-200MHz),牺牲了时序信息。对于时序信息,开发者可以最后去仿真平台甚至最终芯片上去调节,而此时软件测试用例和框架都已经完成,这将大大节省占用仿真平台(MHz)进行调试排错的时间,从而降低成本。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 加速器
    +关注

    关注

    2

    文章

    809

    浏览量

    38161
  • 人工智能
    +关注

    关注

    1797

    文章

    47867

    浏览量

    240847
  • 生态系统
    +关注

    关注

    0

    文章

    704

    浏览量

    20794
收藏 人收藏

    评论

    相关推荐

    arm系统中并行计算优化

    fpga的硬件换成我们自己的arm设备。不过经过研究这种设想不可行。个人看法,也许不对哦。!!!!arm是一款多核心,单进程处理,目前为止arm处理都不支持多线程。所以多线程概念不能将并行计算优化
    发表于 12-30 14:33

    什么是异构并行计算

    先了解什么是异构并行计算同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式。而异构计算主要是指使用不同类型指令集和体系架构的
    发表于 07-19 08:27

    基于Fast Model的加速软件开发

    非常惊艳的加速,在实际使用中体验却不尽如人意的原因。以人工智能加速为例,其中基本的硬件加速单元就是的组合,但如何
    发表于 07-29 15:38

    基于MPI的结晶传热并行计算方法

    针对连铸结晶传热数值模拟计算量较大、耗时长的特点,基于自行构建的并行计算环境,对计算数据域采用对等模式划分成块,设计了用于结晶传热数值模
    发表于 12-18 16:53 7次下载

    THE MATHWORKS推出新版并行计算工具箱

    THE MATHWORKS推出新版并行计算工具箱 The MathWorks 近日宣布推出新版 Parallel Computing Toolbox(并行计算工具箱),该版本提供了改进的分布式数组,可以 MATLAB 用户直
    发表于 11-25 09:17 1129次阅读

    并行计算和嵌入式系统实践教程

    Linux微机应用十分普遍. 高性能并行计算机数量多. 并行计算,我国有自己的理论. 对并行计算的基本原理,算法,程序设计与实现,优化,成熟软件应用的推广不够. 制约并行计算在研究和工
    发表于 05-09 15:54 48次下载

    并行计算和分布式计算的区别和联系

    并行计算或称平行计算是相对于串行计算来说的。所谓并行计算可分为时间上的并行和空间上的并行。 时间
    发表于 12-08 09:59 3.7w次阅读

    基于异构并行计算的两个子概念异构和并行的简单分析

    异构并行计算包含两个子概念:异构和并行。 1异构是指异构并行计算需要同时处理多个不同架构的计算平台的问题。 2并行是指异构
    的头像 发表于 01-25 16:37 6670次阅读
    基于异构<b class='flag-5'>并行计算</b>的两个子概念异构和<b class='flag-5'>并行</b>的简单分析

    基于云计算的电磁问题并行计算方法

    并行计算所需的弹性集群。计算节点通过千兆路由相连,节点之间使用SSH通信协议。选取感应电机和变压作为计算案例,使用Fortran编写静
    发表于 03-20 13:56 1次下载
    基于云<b class='flag-5'>计算</b>的电磁问题<b class='flag-5'>并行计算</b>方法

    如何使用Web在Java上进行并行计算的资料说明

    并行计算需要解决的问题,最后简要研究并行计算模型的实例JET平台。该系统可以使用Java小应用程序及一系列服务在Web上执行并行程序。它解决本文提出的一些问题,并且允许基于web与
    发表于 02-15 10:28 6次下载
    如何使用Web在Java上<b class='flag-5'>进行</b><b class='flag-5'>并行计算</b>的资料说明

    C编程的并行计算详细资料说明

    在过去的几十年间,人们对并行计算产生了越来越多的兴趣。并行计算的主要目标是提高运算速度。从纯粹的计算视角来看,并行计算可以被定义为计算的一种
    发表于 08-02 17:34 2次下载
    C编程的<b class='flag-5'>并行计算</b>详细资料说明

    CUDA的异构并行计算详细资料介绍

    小问题,然后在不同的计算资源上并行处理这些小问题。并行计算的软件和硬件层面是紧密联系的。事实上,并行计算通常涉及两个不同的
    发表于 07-04 17:41 0次下载
    CUDA的异构<b class='flag-5'>并行计算</b>详细资料介绍

    并行计算的黄金时代到了?

    “未来几十年将进入并行计算黄金时代,并行计算软件和算法的开发将从技术驱动转向应用驱动,需要计算与应用等不同领域的专家共同合作开发。”中国工程院院士李国杰日前表示。
    的头像 发表于 04-03 17:18 2337次阅读

    浅析云计算并行计算

    并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理执行并发
    的头像 发表于 05-03 12:01 4740次阅读
    浅析云<b class='flag-5'>计算</b>和<b class='flag-5'>并行计算</b>

    xgboost的并行计算原理

    在大数据时代,机器学习算法需要处理的数据量日益增长。为了提高数据处理的效率,许多算法都开始支持并行计算。XGBoost作为一种高效的梯度提升树算法,其并行计算能力是其受欢迎的原因
    的头像 发表于 01-19 11:17 433次阅读