EDA技术杂谈
EDA技术杂谈
EDA云平台
全球半导体行业上云格局一览图,然后得出了两个结论:1. 整个半导体产业链核心角色:EDA厂商/ Foundry/Fabless无一缺席,都已经开始上云的步伐;2. 全球各大云厂商不仅积极拥抱半导体产业,甚至自己主导设计开发芯片,在产业链中扮演双重角色。 如果说去年判断是全球半导体行业对云的接受度已经在跨越鸿沟的边缘,那上周ICCAD中国集成电路设计业2020年会结束后,认为国内半导体企业也已经跟上了节奏。
参考文献链接
https://mp.weixin.qq.com/s/qbBmJJzPU5YsD2T_ZAKw0Q
https://mp.weixin.qq.com/s/ZHvrs7P6TDnPAcRozfB3xQ
关于芯片设计EDA上云趋势和落地实践:
1. 上云的模式是什么?
2. 最开始,为什么选择上云?
3. 上云的挑战主要有哪些?
4. 觉得EDA供应商准备好上云了吗?
5. 上云的缺点是什么?
6. 对于芯片设计,云厂商已经准备好了吗?
7. 在云上,一切都需要付钱。怎么控制云上的成本?
8. 觉得在云上设计安全吗?
9. 目前为止,上云的成果是什么?
10. 对后来的上云实践者有什么建议?
EDA云平台49问
1. EDA云平台能够解决什么问题?
适配EDA工具使用需求。
大规模算力自动化智能调度。
海量多云资源提供弹性算力支持。
总之,让研发人员更专心做设计,帮助IT人员更好地管理资源满足复杂企业场景需求,最终缩短项目周期,提高公司竞争力。
2. 云上虚拟机的性能可以吗?相当,并可以更好。两方面原因:1、云上的硬件更新快;2、云上虚拟化性能逐步接近裸机。
3. 各个云之间的虚拟机性能有差异吗?有。可以为用户提供专业建议。
4. 支持哪些云?国内外主流云厂商都支持。
5. 多云有什么好处?不会被某一家云厂商锁定,资源可用性更高。多云可以最大限度利用不同云厂商的不同优势,比如资源类型,比如产品价格,比如地域选择。
6. GPU资源也有吗?云厂商上有的资源都可以支持。
7. 云上用的机型是超线程的?还是物理核的?大多数云厂商支持开启关闭超线程。
8. 和超算有什么区别?云和超算有什么区别?看这篇国内超算发展近40年,终于遇到了一个像样的对手
9. 和云厂商有什么区别?是从应用出发,为应用定义的云平台。而云厂商主要在IaaS层,距离用户的实际应用还有非常长的距离。在云的基础架构和应用之间,需要借助应用优化、多云环境支持等方式来满足用户需求。
10. 直接和云厂商合作是不是就行了?参考答案9。已经对接了众多主流云厂商的API,可以用统一的方式方法完成自动化部署,简化用户使用云资源的方式,降低学习成本,帮助用户高效地用好云。
11. 跟云管理平台有什么不同?更贴近应用,在云管平台之上。具体可查看灵魂画师,在线科普多云平台/CMP云管平台/中间件/虚拟化/容器是个啥
12. 支持哪些EDA工具?支持主流EDA厂商工具,比如Innovus、Spectre、HSPICE、OPC Proteus、Calibre、VCS、Xcelium、Redhawk、PT 、StarRC 、Tmax2 、Skipper、ALPS等等。
13. EDA应用优化指的是什么?根据特定用户需求自定义EDA Flow,规范化EDA作业流程,加速EDA多任务的调度。用户在云端可选择的机型有几百种,配置、价格差异极大,能根据用户的EDA应用需求推荐最适配的资源。
14. EDA应用在云上能正常跑吗?能。15. License在云上能正常用吗?能。EDA云实证Vol.1:从30天到17小时,如何让HSPICE仿真效率提升42倍?EDA云实证Vol.4:国内最大规模OPC上云,5000核并行,效率提升53倍
16. 云上的EDA应用怎么部署?是不是每个软件CAD都要去配置?协助用户完成云上EDA应用自动化配置,一次配置,以后自动启用。
17. 脚本每日都有变动,云上要增加工作量?工作脚本如何更新?可以延续之前的使用方式,也可以使用提供的方式自动化完成脚本更新。
18. 云上EDA无缝衔接怎么做到的?云上用户体验无差异。
19. 自动化部署有什么好处?关于在云端部署自动化模式VS传统手动模式间的巨大差异可查看:从30天到17小时,如何让HSPICE仿真效率提升42倍?
20. 支持哪些调度器?支持Slurm/LSF/SGE/PBS。亿万打工人的梦:16万个CPU随用里,基于这四家主流调度器:LSF/SGE/Slurm/PBS以及9个演化版本进行了梳理和盘点。
21. 开源的调度器怎么提供商业支持?是开源Slurm调度器的代码贡献者,特别是跟云相关的功能点。提供Slurm配置/优化/调试/应用对接的最佳实践。
22. 就是个调度器吗?调度器是平台的一个重要组件。
23. 说的智能调度是什么?是基于用户策略的双层智能调度。上层调度程序支持灵活的用户策略:-基于位置-基于性能-基于成本-基于团队/组织目标……下层调度程序满足应用要求:-基于Slurm/LSF/SGE/PBS的工作任务-基于容器的K8S工作任务…智能调度用户策略详情看这个:生信云实证Vol.3:提速2920倍!用AutoDockVina对接2800万个分子
24. 为什么要Auto-Scale自动伸缩?省钱,省心。Auto-Scale功能自动监控用户提交的任务数量和资源的需求,动态按需地开启和关闭所需算力资源,在不够的时候,还能根据不同的用户策略,自动化调度本区域及其他区域的目标类型或相似类型实例资源。所有操作都是自动化完成,无需用户干预。划个重点,这里的关机对于成本的节约极其有帮助。
25. 数据怎么做到云上、线下同步?有专门的数据传输工具,提高传输效率。支持全自动化数据上传,可充分利用带宽,帮助用户快速上传、下载海量数据。同时,利用fastone自主研发的分段上传、高并发、断点续传等数据传输技术,优化海量数据的传输效率。也支持VPN/专线接入。
26. 很多PDK,就有几十T,怎么到云上,而且需要持续更新?离线传输方式可以初始化传输大量数据。很多PDK厂商也提供了在云上的访问方式。
27. 改变现在研发人员的使用习惯和体验吗?基本没有改变。支持桌面接入和SSH接入。
28. 任务和集群的区别是什么?任务更适用于流程固定并且经常有运行需求的任务,全程图形化界面。集群相对于任务,属于更高级的用法,用户可以直接SSH到云上的集群使用,可以直接进行应用的开发和调试。使用方式和本地无差别。
29. 能直接创建云上HPC集群吗?可以。支持普通用户模式和高级用户模式。高级用户,比如本身对应用工作流的理解和编程能力超强,可以不用走普通用户通过应用向导式提交的路径,可以直接根据自己写的脚本,通过Web浏览器选择新建集群,然后按需动态地在云端创建HPC集群,包括权限,计算资源,存储资源等。
30. 怎么监控、管理任务与集群的运行情况?提交任务后,可以在监控界面中查看任务和集群运行情况。
31. 支持混合云模式吗?支持。支持本地资源不足的时候,自动溢出到云上。下图是一个混合云模式架构图。
32. 增加一套云环境,对于IT管理会不会带来额外的负担?通过可以在不增加负担的情况下对接多云,减少IT管理压力。易用的自动化管理平台对IT人员来说很容易上手,对提升工作效率和资源利用率都有很大帮助。
33. 如何云上保护IP资产?可以延续公司原有的安全流程、工具,结合云上完整的审计、监控和权限管理功能。有丰富的安全实践。
34. 云上云下的安全?安全是一个立体的概念,包括系统安全、应用安全、流程安全、数据安全等很多方面。云的基础架构和传统IT架构在安全方面并没有本质上的区别,依然是利用计算节点和存储资源。很多人觉得这两者之间存在差异,认为这取决于个人的认知。
35. 支持纯云模式吗?支持,文末可以直接注册免费试用。
36. 关于选择哪种上云模式有什么建议?从接触的企业看来,既有老牌企业从纯本地逐渐过渡到本地+云的混合云模式的,也有初创公司直接从云端起步,逐渐添加本地机器,最后形成混合云模式的。对于国内企业来说,混合云应该是各种企业类型最终能接受的完成形态,既保留有本地的私密性,也时刻享有云端的灵活性。
37. 用云是不是很贵/便宜?企业上云是否便宜取决于具体应用场景,云的成本结构高度依赖于自动化和智能化的运营能力,效率的提升带来TCO的降低才是计算云成本的正确思路。帮助CXO解惑上云成本的迷思,看这篇就够了
38. 有优化成本的方案吗?三个层面:从应用适配层面,会在多云里选择最适合用户应用场景的最具性价比资源;从IT部署方面,通过自动化按需部署和资源实时监控管理进行成本优化;从任务运行层面,根据用户不同策略进行智能调度。当以成本优先策略为第一优先策略时,资源选择以SPOT实例为主,并在满足用户成本要求的前提下使用OD按需实例来优化时间效率,相比时间优先策略,成本降幅最多可达67%-90%。
39. 跨国团队研发协同有解决方案吗?跨国协同面临的IT挑战,一个是数据传输,一个是网络质量。有支持多本地的IT一体化落地案例。 再来几个具体点儿的:40. HSPICE任务能否在云端运行?41. 云端资源是否能适配HSPICE任务需求?42. fastone平台能否有效解决目前业务问题?43. 相比传统手动模式,云端计算集群的自动化部署,有哪些好处?
44. OPC任务能否在云端有效运行?
45. fastone平台能否满足业务弹性资源需求,有效减少OPC运行时间?
46. License Server配置在本地和云端对计算性能/一致性/稳定性是否有影响?
47. fastone能否支持不同调度器SGE/Slurm?
48. 使用不同调度器对计算性能/一致性/稳定性是否有影响?
49. fastone平台的云端输出计算结果是否与本地完全一致?
新思科技(Synopsys)的VCS
新思科技(Synopsys)家的VCS,在半导体行业使用率极高,背景就不多说了。
对经常跑EDA或其他算力密集型任务的用户来说,在深度掌握本行业业务知识及熟练运用常见EDA工具以外,通常还需要在技能树上点上一门技能——IT,就是怎么(顺利)使用机器把手里的任务给(高效)跑完。
IT技能升级打怪之旅一般分为三个阶段:
第一阶段:单机单CPU核,单任务
第二阶段:单机多CPU核,多任务
第三阶段:多机多CPU核,多任务
用户需求
某IC设计公司运行EDA仿真前端设计和后端设计的分析任务,进行机电一体芯片技术的开发。现有机房设备较为老旧,共有8台单机,需要同时服务数字和模拟两个研发部门。
随着公司业务的发展,相关部门负责人几乎同时反馈业务峰值时计算资源严重不足,排队现象严重。
实证目标
1、fastone平台是否能有效提升VCS任务运行效率?
2、fastone平台是否能有效提升本地机器资源利用率?
3、fastone平台是否支持大规模VCS任务自动化稳定运行?
实证参数
平台:fastone企业版产品
应用:Synopsys VCS
适用场景:数模混合电路仿真
系统:Red Hat Enterprise release 5.7(Tikanga)
实证结果
先来看看用户自己跑20000个任务和来跑的效果:
大规模任务验证
20000个任务
将本地机房的8台单机构建为一个统一管理的集群,运行20000个VCS任务的时间是用户自己所需时间的约1/50。
实证过程:1、用户使用一台单机C1运行20000个VCS任务,耗时40485分钟;2、将本地机房的所有8台单机构建为集群A,使用集群A运行20000个VCS任务,耗时809分钟。
用户按常理推断,本地机房共有8台单机,将所有机器一起来运行大规模VCS任务的时间大概应该是使用一台机器机耗时的6-7倍(理想值为8倍,但由于存在长尾任务,存在一定差异)。
但实证中50倍的提升大大超出了预期。中间发生了什么? 回到开头说的三个阶段——
单任务状态下的单机单核,就是一个任务只在一台机器上的一个CPU上跑。不管这台机器其实有几个CPU,反正就只用一个。资源利用率极其低下,可以说是暴殄天物。再细一点,这里其实还有个1.5阶段:单机多CPU核,单任务。效果类似。
假设给几个人(CPU核),完成一个叫做“搬桌子”的任务。单任务的处理方式分为单进程和多进程: 单进程的处理方式是:不管有几个人,同一时间永远只有1个人在搬整张桌子,其他人在围观。
多进程的处理方式是:先拆桌子。比如把一张桌子拆成4个零部件,分给4个人来同时搬,有的搬桌子腿,有的搬桌面等等,搬得最慢的人决定任务的完成速度。但是,哪怕有8个人,一次也只有4个人在搬。搬完一张桌子再搬下一张,依次往复。
补充一个背景信息:2009年4月,新思科技就发布了VCS的多核技术,通过将耗时的计算处理动态地分配至多个CPU内核来突破芯片验证的瓶颈,从而提高验证的速度。也就是说,应用十多年前就支持单任务多进程了,现在这个技术的名字叫Fine-Grained Parallelism,FGP。
多任务状态下的单机多核,就是多个任务能同时在一台机器上的数个CPU上跑,受制于单台机器的最大核数,目前最多也就96个核了。 继续讲“搬桌子”。上一阶段的多进程处理方式,存在一个明显的问题。哪怕有8个人,一次也只有4个人在搬。搬完一张桌子再搬下一张。这就很不合理了。 于是在此基础上改进了一下。在有8个人的情况下,一张桌子4个人搬,可以同时搬两张桌子啦。这样可以明显加快任务的完成速度。但是,单台机器的总CPU核数就是上限了。
当然这一阶段还是会存在一些问题,会出现有人突然跳出来跟抢人或者也搞不清楚哪些人现在有空来帮。
因为资源使用的不透明和缺乏有序管理,会出现不同人对同一资源的争抢,任务排队等现象。同时,会发现资源利用率还是不高。不少用户已经处在这一阶段。 看看从第一阶段到第二阶段的实际VCS验证效果:
应用并行化验证
400个任务
对VCS进行多任务并行化处理后,一台单机运行相同VCS任务的时间缩短为原先的15%-16%,极大提升了运行效率。 实证过程:1、使用一台单机C1(8核)运行400个VCS任务,耗时806分钟;2、使用一台单机C2(8核)运行400个VCS任务,耗时793分钟;3、对VCS应用进行多任务并行化处理后,使用一台单机C1(8核)运行400个VCS任务,耗时130分钟;4、对VCS应用进行多任务并行化处理后,使用一台单机C2(8核)运行400个VCS任务,耗时122分钟。
多任务状态下的多机多核,就是多个任务能同时在数台机器的数个CPU上跑,这个称之为集群化管理,一般都需要有调度器的参与。关于调度器的相关知识,看这里:亿万打工人的梦:16万个CPU随用
前面讲到已经可以同时安排搬两张桌子啦。但其实,如果机器足够多,人(CPU核)足够多,完全可以同时搬更多的桌子。
这个时候,必然要面临一个如何调兵遣将的问题。这么多机器,这么多任务,怎么顺利一一配置、启动、关闭,提高整体资源利用率,最好还能自动化管理等等。这就需要一点技术了。
至于云上资源的大规模动态化调度和管理,要更加高阶一点。在《生信云实证Vol.3:提速2920倍!用AutoDockVina对接2800万个分子》中,最多调用了10万核CPU资源对整个VS数据库进行虚拟筛选。
当集群达到如此规模之后,手动管理是不可想象的。而且云上资源跟本地不同,往往是个动态使用的过程,有时候甚至要抢。更不用说还要考虑不同用户在不同阶段的策略和需求。
看看从第二阶段到第三阶段的实际VCS验证效果:
集群化验证
400个任务
由2台单机构建的集群运行相同VCS任务的时间为单机的约60%,并实现了自动化资源管理。 实证过程:1、使用一台单机C1(8核)运行400个VCS任务,耗时130分钟;2、使用一台单机C2(8核)运行400个VCS任务,耗时122分钟;3、将C1和C2构建为集群B,使用集群B运行400个VCS任务,耗时75分钟。
最后,回顾一下,到底做了哪些事: 应用并行化:从单任务到多任务fastone帮助用户实现了应用并行化,可以充分使用一台单机上的全部CPU资源,确保了最大的计算效率。 资源集群化:从单机到集群fastone帮助用户实现了集群化管理,让多台机器能够并行化运行VCS任务,实现了数据、应用、资源的统一化管理。 规模自动化:从400个任务到20000个任务用户希望在面临大规模VCS任务时,上述方案的稳定性能够得到充分验证。fastone帮助用户充分验证了20000个VCS任务场景下,能够自动化规模化地调度资源高效完成任务,满足用户需求。 到现在为止,成功帮助用户从单机单任务单进程运行的阶段大幅度跨越到了大规模任务自动化集群化运行阶段。万事俱备,下一步,上云。
参考文献链接
https://mp.weixin.qq.com/s/qbBmJJzPU5YsD2T_ZAKw0Q
https://mp.weixin.qq.com/s/ZHvrs7P6TDnPAcRozfB3xQ