EDA场景高性能存储解决方案

周皓
  • 收获赞:10
  • 擅长领域:这个同学很专业,但是有点神秘哟~

您将阅读到:(1)EDA原理和不同阶段对于IO能力要求(2)CPFS产品特点和在EDA场景的能力优化 (3)CPFS在具体项目中的实践。

1. EDA原理和对IO吞吐需求

EDA是芯片设计行业的基石,作为芯片设计的最重要软件工具,主要的EDA厂商有三家:Synopsys,Cadence,Mentor。

各EDA公司在大多数芯片设计领域实现了高度集成的全流程工具,各个结点的工具可无缝切换和资源共享。

EDA 主要分为前端仿真和后端仿真两个不同阶段:

  • 在数据准备方面,前端的芯片设计经过综合后生成的门级网表,具有时序约束和时钟定义的脚本文件和由此产生的 .gcf 约束文件以及定义电源 Pad 的 DEF(Design Exchange Format)文件

  • 后端设计所需数据主要由 Foundry 厂提供的标准单元、宏单元和 I/O Pad 的库文件,包括物理库、时序库及网表库,分别以 .lef、.tlf 和 .v 的形式给出。

不同阶段IO模型特点

​前端逻辑设计:产生大量仿真工作,不断改进设计需多次循环迭代。创建、调度和执行仿真作业的效率决定了芯片推向市场时间。

前端验证阶段,大量作业并行访问,生产海量随机 IO 小文件,存储的 IO 特点是 KB 小文件读写为主的 OPS 型业务,伴有大量的元数据操作,对文件的元数据与数据读写速度要求极为苛刻,存储的缓存大小、读写策略及性能对验证结果产生重要影响。

以下是前端逻辑数据特征

  • 高并发:大量作业并行访问,计算节点规模数百至上千台节点。

  • 随机 IO:作业生产大量随机访问 IO,元数据操作密集型。

  • 海量小文件:读取编译百万个小的源文件构建模拟芯片设计,文件大小在 1K-16K 范围。

  • Read/Write 占比:15% ;Metadata 占比:85%。

  • 作业运行周期:几小时-几天。

后端物理设计:将网表转换成版图和版图优化的仿真,处理大量物理版图制作文件。随着芯片规格增加,转化版图非常耗时。

后端验证阶段,工作负载是顺序 IO 大文件,IO 特点是以 GB 级别的大文件大 IO 写为主,带宽型业务,对带宽要求较高。

以下是后端物理数据特征:

  • 共享存储:管理芯片设计目录和文件,如 Library 、tool、user space、tmp、home 目录。

  • 用户权限管理:不同的目录、脚本和应用程序可以访问数据。

  • 顺序 IO大文件:芯片设计 Tape-out 阶段输出文件,作业生产大量的顺序 IO。

  • 大文件读写:GB 级别大文件,< 1GB 占比 50%,,< 5GB 占比 50%。

  • Read/Write占比:45% ;Metadata 占比:55%。

  • 作业运行周期:几天-几周。

EDA对于数据挑战包括

性能瓶颈:EDA 工作流程仿真、设计、验证、生产过程中,前端仿真需要小文件高并发低时延的读写和巨量元数据处理能力,后端仿真存储需要提供很大的读写带宽满足大量数据的实时写入要求。

周期长:EDA 整个芯片设计流程非常长,一颗芯片的时间从数月到数年不止,仿真、设计流程耗时,芯片的上市周期是赢得市场的关键,需要更快的算力和高效的存储换时间。

交付难:资源无法短期到位,EDA 工作负载的数据容量快速增长,容量每两年翻一倍,面临数据业务突增,计算和存储资源无法短期到位。弹性开箱即用的云端资源即将成为新的趋势。

资源规划难:EDA 工作负载按照传统经验对于未来所需的 IT 资源预估越来越困难,计算/存储负载不可预知,弹性的算力和存储资源逐渐成为迫切需求。

流程复杂:EDA 设计流程复杂,计算精准度要求高,EDA 设计包含的环节多,涉及到多个流程,每个流程有多次验证,流程与流程之间可能多次返工,大量计算单元并发,多人多部门协同工作处理复杂的数据流程,亟待提高效率。

成本高昂:一次流片的成本高昂,流片设计、仿真各个环节,确保零失误非常关键,需要提高数据分析和计算精准。

2. CPFS与EDA场景优化

阿里云CPFS是为HPC高性能计算和AI机器学习设计的并行文件系统,输出形态上可以支持公共云和混合云,云上、云下都可以具备一致的使用体验,最大可以支持TB级别吞吐能力。CPFS具备弹性扩展能力,存储容量可以无缝扩容,性能随着容量弹性增加。CPFS是高可用性架构设计,采用全冗余架构,任一后端节点故障都可以自动切换,无单点故障。

高性能文件处理能力,缩短芯片上市周期:CPFS 提供每TB 200 MB/s和每 TB 30000 高 IOPS,采用分布式元数据,支持客户端缓存、高可用写缓存、本地只读缓存、自定义的可变数据块条带化技术等,加速元数据处理,提高并发访问性能。满足 EDA 工作负载前端仿真百万随机 IO 小文件,后端仿真海量顺序读写大文件的高并发访问需求,简化 EDA 的工作流程,降低了仿真作业的时间。

弹性扩展,支撑业务快速上线:CPFS 可以按需在线扩容 ,应用无任何感知,随着容量的提升,性能(吞吐和 IOPS)线性同步增长 。弹性扩展完美应对 EDA 工作负载的弹性资源需求。 CPFS 开箱即用,确保资源快速供应到位,业务快速上线。

并行访问共享存储,让数据访问更为高效:支持近万个客户端并行访问,海量计算实例同时高并发处理相同的处理集,CPFS 提供设计流程数据的共享访问,这些数据集无需反复拷贝和传输,极大提升了EDA 工作负载复杂的工作流的数据共享访问能力,加速 EDA 工作流效率。

针对EDA场景,CPFS对元数据和小文件有以下优化:

  • 条带化:文件以条带化的方式散列在所有的存储空间上,所有的存储节点同时对所有的客户端提供数据 I/O 服务,单个文件跨节点和存储系统分布,提高并发访问性能。

  • 数据块的大小可自定义:64K, 128K,256K, 512K, 1M,2M,4M,8M,16M。

  • 智能预取机制:通过对文件访问模式的预测来进行预取,降低读写延迟。

  • 分布式的块级锁管理,包括文件和目录两个级别,支持上万个客户端的并发访问。

  • 没有专用的中央控制元数据服务器,采用分布式元数据架构, 元数据处理无任何性能瓶颈。

  • 闪存加速元数据,元数据包括目录、inode、indirect blocks。

  • 支持客户端数据缓存,不同节点可以根据需要设置不同的缓存大小,缓存优化。

3. CPFS方案架构与项目实践

EDA架构图.png

此方案是CPFS在EDA场景的整体解决方案,CPFS灵活支持线下与公共云不同部署模式。存储在CPFS数据可以在公共云和混合云流动,使数据管理更为简单。

在实际项目中,通过与资源调度管理平台和高性能计算集群结合使用。CPFS能够提供统一的命名空间,让计算集群可以通过共享方式访问数据,简化数据访问和管理难度。

CPFS极致性能,可以满足 EDA 高性能计算集群的可靠、稳定、高性能需求,包括前端与后端设计。

在云端可以进一步与云原生计算能力结合,获得更多的灵活性,这是传统厂商无法提供的能力。

已经在使用此方案的某个客户是国内最大的通信基带芯片提供商,长期在线下使用NetApp高端产品线,对于存储系统性能和企业级管理能力有极高要求。

CPFS在客户应用场景中,与EHPC结合使用,达到客户EDA场景对于高吞吐能力的要求,做到计算任务运算速度不慢于线下的NetApp集群。

除了需要吞吐和IOPS能力需要能够匹敌NetApp,客户在整个运维管理模式上,同样需要CPFS能够提供支持此功能,能够让现有运维管理系统能够更加容易的完成迁移。

客户关注的管理功能集中在配额和快照能力,客户在NetApp产品通过Volume实现以上两种功能。CPFS在企业管理上,通过Fileset和Quota去实现对标NetApp提供能力,在此案例中,通过与客户LDAP服务器对接,将当前客户用户管理体系能够在CPFS应用。在经过一个月的实际任务验证,客户充分认可了公共云CPFS可以支持现有业务,并且认同公共云的优势。