路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

为什么需要硬件加速来验证深度学习设计?

已有 1623 次阅读| 2020-1-15 19:55 |个人分类:验证前沿资讯|系统分类:芯片设计


介绍

毫无疑问,计算机已经彻底改变了我们的生活。尽管如此,在完成复杂的任务(诸如在几乎不需花费时间的情况下解决复杂的数学方程之类)时,计算机的性能远远优于人类;但在解决人类可以轻松完成的任务(例如图像识别)时,它们的性能可能会不如人类。世界上任何人都可以立即识别出猫的照片,但世界上最强大的PC可能需要几个小时才能得到相同的答案。

该问题属于传统的控制处理单元(CPU)冯·诺伊曼结构(Von Neuman architecture)。该存储程序计算机旨在克服早期计算机的不灵活性,这些计算机被硬连线地执行一项任务,而存储程序计算机(归功于冯·诺伊曼)则获得了执行任何程序的灵活性,但其是以降低性能为代价的。
存储程序计算机的局限性,再加上可用于分析的数据的有限和执行分析的算法的不足,导致人工智能(AI)及其深度学习(DL)的子类的实现延迟了数十年。
转折点出现在本世纪初,自那时起,通过DL识别图像的能力中的计算误差已开始减少,并在2015年超越了人的能力,如图1所示。图像识别中的人为误差略有增加,高于5%。如今,DL在图像和视频识别领域已获得广泛成功。

图1-多年来,计算机在解决人类可以轻松解决的问题方面表现不佳。(来源:维基百科)


卷积神经网络(CNN)

深度学习(DL)是建立在卷积神经网络(CNN)上的。CNN是类似于大脑神经元网络的人工神经网络,它们由数十亿甚至数万亿的简单算术运算符组成,包括紧密互连的乘法器和加法器。
使得CNN复杂的并不是大量的运营商,然而,其复杂性却是源于它们的分层、排列和互连方式。最大的CNN设计包括数十亿个ASIC等效门。更为简单的CNN设计始于亿万个门。
CNN设计是面向数据路径的,具有有限的控制逻辑。但是,它们给设计人员实现分层算术运算符和数据存储器之间快速有效的数据传输带来了巨大挑战。
DL设计通过训练过程来“学习”它们应该做的事情,该过程会配置乘法器和加法器的多个权重和偏差。层次越多,学习越深入。训练则旨在优化权重和偏差的反向传播算法,其会加剧任务的复杂性。


一旦完成训练和配置,就可以在推断模式下部署DL设计,如图2所示。            

图2-DL设计通过训练过程进行学习,该训练过程将对数据进行配置并在进行训练和配置后以推断模式部署数据。(来源:NVIDIA)


经典编程 vs 机器学习

查看输入到CPU的输入信息以及从CPU生成的输出信息,并将其与处于训练阶段的CNN和处于推断阶段的CNN进行比较,如下表I所示,这很有趣。表I-此矩阵比较了冯·诺伊曼(Von Neuman)和DL处理之间的输入/输出信息。(来源:Mentor,a Siemens Business )

  



CNN处理能力、成本、准确性
进行学习和推断(inference)操作的计算需求正在增加。DL训练要求密集处理。虽然DL训练必须只执行一次,但是训练有素的神经网络必须有对成千上万个应用程序进行推断的潜力,为数以百万计的用户提供服务,从而在许多应用程序场景中迅速提供服务。如此大规模的计算量要求处理资源在性能、功耗和大小上都可以按经济合理的价格进行扩展。
通常,可以使用浮点或定点数字表示来执行数字计算,它也可以以不同的精度级别执行,具体取决于用于保存数据的位数。尽管CNN学习需要16位或32位浮点数学运算提供更高的精度,但CNN推断可以受益于16位或8位定点甚至更低的精度。在过去几年中进行的一些分析证明,使用8位定点可产生与通过16位或32位浮点运算获得的结果相当的结果质量。

经验法则捕获了精度和硅要求之间的相互依赖关系。将算术运算减少1位,可以将芯片尺寸和功率降低一半。在不破坏学习结果的前提下,不能超过精度的下限。

 

深度学习的出现CNN运算可以在四个空间位置进行:数据中心、数据中心边缘、台式机和嵌入式应用程序。甚至,某些位置会比其他位置更好,这取决于CNN运算是在学习阶段还是推断阶段。
在数据中心内进行训练需要大量的计算吞吐量才能执行大型任务并获得高质量的结果。不利的一面是,与边缘DL处理相比,它消耗了更多的功率,占用了较大的空间,并且成本高出了几个数量级。
相反,边缘的DL计算对处理吞吐量的要求较低,但提供了较短的延迟,并在较小的占地面积内可适应受限的功率预算。台式机和嵌入式应用程序中的DL计算与边缘DL计算共享配置文件。

最终,执行速度、功耗、准确性、大小和成本由应用程序决定。大多数应用程序要求较低的定价,而不是较低的计算精度。


确定性 vs 统计设计

与执行输出严格且确定的功能处理器设计或任何其他半导体设计不同,AI/ML/DL设计产生的响应在统计上或多或少是正确的,它们实施复杂的算法来处理输入数据并生成通常在误差百分比内正确的响应。例如,在CNN设计上运行的图像识别算法可以在误差范围内识别猫的图片,误差越小,设计就越精确。这给设计验证团队带来了挑战。


用于DL设计验证的硬件加速当前,有四组独特的集团公司开发用于AI的芯片,尤其是用于DL加速的芯片
第一组包括成熟的半导体公司,例如英特尔、AMD、NVIDIA、IBM、高通和赛灵思。除少数例外,大多数都扎根于CPU和应用处理器的开发。例外的是NVIDIA以先进的图形处理单元(GPU)领先AI领域,而赛灵思和英特尔则以现场可编程门阵列(FPGA)的成功为赌注,从而突破了FPGA技术的界限。
其次,一些大型系统/软件公司,例如Google、Amazon、Microsoft、Facebook和Apple,正在进入芯片领域。尽管他们从头开始,没有设计硅片的历史,但他们拥有丰富的资金,可以帮助他们招募人才以实现目标。他们设计针对CNN的专用集成电路(ASIC)和片上系统(SoC),并大胆探索新架构。
第三,几家IP公司正在积极开发由高级处理内核组成的IP,以提供巨大的计算能力。其中包括Arm、CEVA、Cadence、Synopsys、Imagination、Achronix、FlexLogic和很多其他的公司
第四,众多具有雄心勃勃的目标和大量资金的创业公司正在涌入这一领域,包括Wave Computing、Graphcore、Cerebras、Habana、Mythic和SambaNova等,他们均创建了具有一定程度的可编程性的临时ASIC

无论开发何种硅,设计都具有共同的特征,并且这些特征给设计验证团队带来了一系列独特的挑战。如图3所示。       

     

图3-用于AI和DL加速的典型SoC设计具有许多共同特征,这些特征挑战了由driver、OS操作系统、固件、FrameWorks、算法和性能基准所组成的开源软件工具和架构的设计验证团队。(来源:Lauro Rizzatti) 


详尽的硬件验证如前所述,AI设计是进入二十亿到四十亿个等效门的最大设计之一。这些设计的一个关键方面是内存访问及其带宽高效的内存访问决定一个设计的成败。此外,必须具有高水平的计算能力和低水平的功耗(即低功耗)。衡量上述指标和比较设计的一种流行指标是TOPS(Tera-Operations-Per-Second)/watt。

所有这些都要求进行全面彻底的硬件验证,并以高调试效率提供支持。


全面的软件验证硬件是CNN设计的基础,而软件起着至关重要的作用,这为CNN设计的复杂性增加了另一个维度。设计基于复杂的开源软件工具和架构,这些工具和架构是由一些大公司和知名大学创建和赞助的。该软件以堆栈形式组成,包括driver、OS操作系统、固件、FrameWorks、算法和性能基准(特别是MLPerf和DAWNBench)等。如上面的图3所示。

最终目标是在投入使用硅之前训练CNN,这项任务需要大量的处理能力。在这个竞争激烈的市场中,达到目标可以加快产品上市的关键时间,同时还可以提高结果质量。该任务由设计验证/确认小组负责,他们可以通过硬件加速来应对挑战。


CNN验证的硬件加速要求西门子业务部Mentor作为著名的硬件加速器供应商之一,确定了成功部署硬件加速以进行CNN加速器设计验证所需的三个主要要求,分别为:
1.可扩展性CNN加速器在开发时安装在数据中心和边缘的情况有所不同。
在数据中心,加速器必须具有较高的计算能力,较大的内存带宽,但要占用大量内存和较大的功耗。
在边缘,低延迟、低功耗和低占用空间是设计属性的头等大事。
为了成功完成验证任务,加速器必须提供一个大范围的容量和向上的可扩展性,以适应下一代的设计。具体来说,硬件加速平台的容量应从数千万门到百亿门不等。
随着设计规模的扩大,硬件加速平台应在不损害其性能的情况下向上扩展容量,这是执行AI架构并在分配的验证时间表内处理MLPerf或DAWNBench基准测试所必需的。
2.虚拟化几年来,由于具有多种优势,以虚拟模式部署硬件加速一直在增加,并且取代了在线硬件加速仿真(ICE)模式。优势体现在:其部署更简单,没有ICE所特有的硬件依赖性,具有轻松且确定性的设计调试,并具有高调试精度,还能够执行ICE中不可能进行的多项验证任务功耗估算、低功耗验证、DFT验证、硬件/软件调试等)以及多个并发用户的远程访问等。虚拟模式将硬件加速器移出实验室,移至数据中心,从而使其成为企业资源。
对于Mentor的用户,Veloce®VirtuaLAB提供的优势进一步增强了,这些优势将硬件加速平台的生产率提高了一个数量级,从而可以在更短的时间内进行更多的测试。
鉴于验证AI设计及其软件堆栈的关键性质,虚拟化可提高抽象级别,并确保完整设计的可见性和可控性,以执行任何验证套件来搜索设计错误。它还可以精确测量重要的系统行为参数。
虚拟化可以执行各种AI架构和任何性能基准而在ICE模式下将无法执行这些任务。
3.确定性如前所述,AI芯片作为包含软件和算法的复杂系统的一个组成部分。所有这三个方面的开发和优化都要求任务并发。当在其上运行任何基准、软件和算法时,要确保将硬件设计映射到硬件加速器中,其对于每次迭代都完全相同,这一点至关重要。
这只有通过创建确定性的硬件加速环境才有可能实现。
设计编译必须成功且迅速地完成,避免反复试验,以便从一个编译到下一个编译产生相同的结果,因为编译必须是一个确定性的过程

硬件加速的架构、基准和测试等必须以一致的顺序运行,因为执行必须是一个确定性的过程调试也必须是一个确定性的过程。在硬件加速中发现的问题必须可重现,从而需要可重复的调试方法。

 

结论AI/ML/DL设计对设计验证团队提出了新的挑战,只有硬件加速才能应对这些挑战。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 21:35 , Processed in 0.019443 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部