详情

技术征文第3期:基于虚拟原型平台探索软硬件协同设计(新思科技篇)--华南理工--“北六梦之队”

1746      2022-07-16 11:09:59.0

一、活动背景

集成电路EDA设计精英挑战赛 是国内首个EDA领域专业赛事,赛题覆盖EDA应用及算法,从本科到博士都可参赛,需具备计算机、电子、物理、数学等知识储备,对参赛队伍的要求极具综合性。通过两届大赛的举办,受到了来自产业及高校的高度关注,产业界和学术界专家反馈,参赛作品具有很好的参考和学习价值,继第一届后现选出第二届优秀作品并参与技术征文投稿的队伍作品和大家分享。


二、团队介绍

队伍名称:北六梦之队

队伍成员:张海彬、王孝牛、黄奕铭

学校名称:华南理工大学

获奖情况:2020第二届集成电路EDA设计精英挑战赛全国总决赛一等奖


三、指导老师

吴朝晖,华南理工大学 副教授,硕士生导师,香港大学电机电子工程学系博士,广州集成电路设计与培训中心光电部部长,IEEEMember。研究兴趣主要在模拟集成电路设计、生物医学用集成电路设计。


四、赛题介绍

本次分享的作品题目由新思科技命制的赛题:基于虚拟原型平台探索软硬件协同设计(Exploring HW/SW Co-Design with Virtual Prototyping)。

image.png

命题企业:新思科技(Synopsys, Inc.,纳斯达克股票市场代码:SNPS)致力于创新改变世界,在芯片到软件的众多领域,新思科技始终引领技术趋势,与全球科技公司紧密合作,共同开发人们所依赖的电子产品和软件应用。新思科技是全球排名第一的芯片自动化设计解决方案提供商,全球排名第一的芯片接口 IP 供应商,同时也是信息安全与软件质量的全球领导者。作为半导体、人工智能、汽车电子及软件安全等产业的核心技术驱动者,新思科技的技术一直深刻影响着当前全球五大新兴科技创新应用:智能汽车、物联网、人工智能、云计算和信息安全。


五、作品分享

1、参赛作品背景

随着科技的不断进步,芯片的设计日益复杂,一块芯片上往往包含着几十亿个晶体管。然而与此同时市场的竞争越来越激烈,导致芯片的设计周期越来越短,而且想要开发一款好的芯片,芯片软件开发和验证工作也非常重要。Synopsys开发的virtualizer VDK开发套件可以很好的应对上述问题。它包含虚拟原型,调试,分析工具和样本软件。无需硬件即可进行仿真,因此可以使得芯片软件硬件开发同时进行。同时它的仿真速度非常快,可以达到100MHz,而且它具有很高的可操作性,易于拓展部署,利于多个部门同时进行开发工作。NVDLA是英伟达公司设计的一个开源深度学习加速器。通过完成本次赛题可以让我们了解学习Synopsys开发工具的使用方法,和如何利用并行算法加速程序。

2、作品成果

本次作品完全实现了赛方的四种优化方法,并进行了两种创新优化设计,最终仿真时间从5min09s降低到1min24s左右,总体性能提升了3.7倍左右。

3、作品创新点

1)利用普通的乘法器和移位操作替换了代码中原有的booth乘法器,使得代码的可操作性更大,同时也缩短了大量的仿真时间。

2)对MAC单元中数据加操作进行SIMD优化,并进行了数据重排和乘法SIMD优化设计。

3)替换SystemC操作符,利用C语言中的&操作和移位操作完成了对range操作符的替换,使得仿真的时间极大的缩短。

4)证明了GPU调用开销十分庞大,在不大改NVDLA卷积结构的情况下使用GPU是不值得的一种方式。

5)优化了NVDLA的卷积策略,通过合理的配置,减少了冗余的计算。

6)修改了CACC中的Debug代码,减少不必要的核对计算。


4、问题及解决思路

1)NVDLA源码十分庞大复杂,难以直接进行优化设计。为此我们在优化开始之前先对NVDLA卷积框架进行了研究学习。在NVDLA的官方文档里我们知道了三种卷积模式:

(1)直接卷积 

(2)图像输入的卷积模式

(3)Winograd卷积。在通过对CSC中的卷积模式的printf,锁定了在NVDLA计算LeNet和AlexNet时用的是直接卷积的模式。接着学习了卷积的过程到底如何在NVDLA中实现的流程。这个过程中我们类比了caffe对卷积的实现过程,最终成功分析和定位了此次优化的重点位置。

2)在完成赛题的过程中我们对OpenMP的优化工作一度陷入了瓶颈。但为了不影响赛题进展,我们同时进行着GPU加速的优化工作,在这个工作中找到了关于OpenMP的问题所在。我们采用了数据生成和计算分离的方式进行操作。在完成了分离步骤后,计算单元可以独立出来。而在这个独立的计算单元中进行OpenMP操作会更加的方便和简洁。我们将计算中的语句逐条用#pragma omp critical语句进行保护排除,最终定位了问题所在并成功解决。


六、团队采访

1、参赛需要准备什么

1)首先需要找到志同道合的队友,大家最好对赛题相关的知识都有一定的了解,并且需要能够随时进行沟通和联系,最重要的是有着共同的目标,这样才能更好的完成比赛。

2)参加EDA设计精英挑战赛,写代码是必不可少的,所以在赛题公布前可以多学习一下编程知识和了解一些相关的算法。

2、如何选题

选题最重要的是和自己的兴趣一致,只有对所选的赛题感兴趣才能克服整个作品完成阶段的所有困难,成功完成竞赛。并且最好选择自己所熟悉的领域,这样完成赛题才能更加的得心应手。

3、指导老师采访

1)作品点评

面对当今芯片设计时间紧任务重的问题,Synopsys开发的虚拟原型平台可以很好的解决软硬件系统设计的问题。本次赛题主要任务是在使用该工具的基础上对NVDLA代码进行优化设计,以提高仿真速度。其中任务一和任务二主要是让学生上手赛方提供的EDA工具和初步了解优化的过程。任务三中赛方提供了四种优化方案,包括SIMD指令优化,OpenMP并行设计,GPU加速以及VDK多核加速。这些优化的方案主要都是通过并行设计提升运行速度,都需要学生对NVDLA代码进行深入研究,了解整个卷积操作的基本流程,并定位出何处使用何种方案进行优化设计,这存在较大的难度。他们的作品很好的完成了上述的工作,并且除了赛方所提供的四种优化方法之外,还从减少冗余操作的思路出发进行了创新的优化设计,包括对计算中的booth乘法器进行了替换和对SystemC操作符的替换,优化NVDLA的卷积策略和修改CACC中的Debug_checker,最终实现了较好的优化效果。总的来说,他们的作品较好的完成了赛方的要

2)参赛建议

组队时最好选择与自己同一个课题组的同学一起,这样相互能更好的沟通交流。选题时最好和自己之前的项目和未来的毕业课题有关,这样才更好的完成作品,并有益于自身未来的发展。完成比赛的过程中要注意整体的进度安排,不要钻牛角尖,每个人多任务并行合作才能更高效的完成工作。最后祝大家赛出自己最佳水平,通过比赛进一步加强自身,逐步成长为能够为祖国集成电路事业发挥重要作用的高端人才。

微信公众号

首页

赛题指南

学习资源

我的