CN116384312A - 一种基于并行异构计算的电路良率分析方法 - Google Patents
一种基于并行异构计算的电路良率分析方法 Download PDFInfo
- Publication number
- CN116384312A CN116384312A CN202310454436.7A CN202310454436A CN116384312A CN 116384312 A CN116384312 A CN 116384312A CN 202310454436 A CN202310454436 A CN 202310454436A CN 116384312 A CN116384312 A CN 116384312A
- Authority
- CN
- China
- Prior art keywords
- memory
- circuit
- fpga
- parallel
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 63
- 230000001133 acceleration Effects 0.000 claims abstract description 53
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000013528 artificial neural network Methods 0.000 claims abstract description 36
- 238000005457 optimization Methods 0.000 claims abstract description 23
- 238000004088 simulation Methods 0.000 claims abstract description 14
- 235000013599 spices Nutrition 0.000 claims abstract 5
- 230000015654 memory Effects 0.000 claims description 125
- 239000011159 matrix material Substances 0.000 claims description 57
- 230000006870 function Effects 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 24
- 238000013461 design Methods 0.000 claims description 14
- 238000005070 sampling Methods 0.000 claims description 14
- 238000012549 training Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 13
- 230000017105 transposition Effects 0.000 claims description 12
- 210000002569 neuron Anatomy 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 9
- 230000010076 replication Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 5
- 230000004913 activation Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 claims description 4
- 210000003813 thumb Anatomy 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 238000012614 Monte-Carlo sampling Methods 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 7
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical group OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000006467 substitution reaction Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 3
- 101100311460 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sum2 gene Proteins 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000010025 steaming Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/373—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于并行异构计算的电路良率分析方法,属于集成电路良率分析技术领域,在并行异构计算平台中应用处理器、GPU、FPGA三种并行加速方法完成人工神经网络模型预测,结合SPICE仿真,完成电路良率分析,在达到基于蒙特卡洛采样方法的精度要求的同时,显著提高了优化效率。本发明采用的FPGA异构平台中独有的自定义并行流水线电路性能预测模型,将电路性能预测时间缩短在时钟周期的量级上,显著提高了模型预测和良率分析的效率。
Description
技术领域
本发明涉及一种基于并行异构计算的电路良率分析方法,属于集成电路良率分析技术领域。
背景技术
集成电路良率是指生产出来的芯片中符合规定性能要求的芯片数量占总芯片数量的比例,是衡量集成电路质量和生产成本的重要指标。目前在集成电路设计阶段,蒙特卡洛分析方法作为较为准确的良率估计方法,能够有效预测芯片制造过程中的多个不确定性参数对性能的影响,全面地分析芯片的良率情况,被称为电路良率估算的黄金标准。
蒙特卡洛良率分析方法包括基于SPICE仿真器的蒙特卡洛分析方法和基于替代模型的蒙特卡洛分析方法两种。基于SPICE仿真器的蒙特卡洛分析方法的基本思想是通过大量的随机抽样,将输入参数的不确定性考虑在内,并调用SPICE仿真器对电路性能进行分析,从而预测芯片的生产良率。这种方法预测结果准确全面,但因需要大量的SPICE仿真,耗时较长,给集成电路设计带来了非常大的挑战。基于替代模型的蒙特卡洛分析方法是随着大数据和人工智能技术的不断发展,将人工智能与蒙特卡洛分析方法相结合,用替代模型对IC的设计参数进行分析和预测,减少了SPICE仿真次数,缩短了仿真时间。对于失效率较低、良率精度较高的电路系统,需要大量的随机样本才能获得较为准确的良率结果,模型预测的计算成本和时间同样会面临巨大的瓶颈,难以满足集成电路设计工程师对良率分析的需求。
发明内容
针对现有技术的不足,本发明提出一种基于并行异构计算的电路良率分析方法,基于蒙特卡洛采样方法分析方法,应用基于并行异构计算平台的电路性能预测模型,结合SPICE仿真,完成电路良率分析,在达到基于蒙特卡洛采样方法的精度要求的同时,将电路性能预测时间缩短在时钟周期的量级上,显著提高了模型预测和良率分析的效率。
术语解释:
1、并行异构计算:在包含多种类型处理器或计算加速器(CPU、GPU、FPGA等)的计算机系统中,根据处理器或计算加速器的不同结构和特点,并行执行不同类型的任务,最大程度地发挥它们的优势,从而实现计算加速和优化的过程。
2、CUDA核心:在NVIDIA架构中,最基本的处理单元PE定义为SP(steamingprocess),又称CUDA核心。
3、流处理器SM:Streaming Multiprocessor,NVIDIA GPU中的一个核心组件之一,每个SM包含多个CUDA核心(CUDA Cores),寄存器文件(register file),共享内存(sharedmemory)和其他处理元素。每个SM可以并行处理多个线程,这使得GPU能够在同一时间内执行多个操作,来提高GPU的性能。
4、FPGA:现场可编程门阵列(Field-Programmable Gate Array,FPGA),是一种包含大量的可编程逻辑单元、可编程连接元件、可编程存储器单元、可编程数字信号处理单元,可以配置实现各种功能的逻辑器件。
5、SPICE仿真器:SPICE(Simulation program with integrated circuitemphasis)是一种功能强大的模拟电路仿真器。
6、拇指法则:rule of thumb,基于经验的估计神经网络超参数的方法。常用的规则,层数通常与数据的复杂性和规模有关,每层的神经元个数通常与数据的维度和样本量有关。
7、Adam算法:Adam(Adaptive Moment Estimation Algorithm)是对经典的随机梯度下降法的扩展,不但使用动量作为参数更新方向,而且自适应调整学习率,更加有效地更新神经网络权重。
8、Relu函数:常用的激活函数,f(x)=max(0,x),即f(x)=(x+|x|)/2。
9、上下文(Context):提供了一种在多个计算设备之间进行通信和共享资源的机制,包括计算设备、内存对象、命令队列和程序对象。
10、流水线设计:将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率和处理速度。
11、内核向量化:一种高效的并行计算技术,内核向量化是指将计算操作应用于一组数据元素,利用SIMD(单指令多数据)指令集并行处理数据的技术,同时执行多个数据元素处理。
12、Sobol序列采样:Sobol序列采样着重于在概率空间中产生均匀分布的随机数,而且当样本的个数为2的整数次幂时,在[0,1]区间中以2为底的每个基本间隔中有且只会有一个点。
13、工作项(Work Item),GPU中执行单元的最小单位,通常对应于一个线程。每个工作项有一个唯一的ID,可以用来在程序中进行标识和区分。工作项可以根据需要访问全局内存、共享内存和本地内存,执行各种计算任务。
14、工作组(Work Group):由多个工作项组成的,通常是在同一处理器上执行的工作项的集合。工作组通常共享同一个共享内存,并且可以相互通信和协作。在编写GPU程序时,通常需要将工作项分组为不同的工作组,以便更好地管理和协调工作项之间的关系。
15、时钟周期:时钟周期是指电路系统中的时钟信号所覆盖的时间间隔,通常以纳秒(ns)或皮秒(ps)为单位。时钟周期的长度取决于电路系统的时钟频率(时钟信号每秒钟的振荡次数)。例如,当时钟频率为1GHz时,每个时钟周期的长度为1纳秒(ns)。
本发明采用如下技术方案:
一种基于并行异构计算的电路良率分析方法,包括:
步骤1:搭建支持CPU、GPU、FPGA并行设备的异构计算良率分析平台,包括平台模型、执行模型、编程模型、存储模型的建立;
步骤2:在主机端,采用蒙特卡洛随机采样获取M组训练样本点S,对训练样本点S集合中的每个样本点进行并行晶体管级SPICE仿真,得出对应的电路性能输出值,记作集合H,进而得到原始训练数据集D={S,H},构建人工神经网络结构,使用数据集D训练人工神经网络模型;
步骤3:在主机端,应用Sobol序列采样产生J组随机变量,将数据存储主机内存中;
Sobol序列采样融合了蒙特卡洛采样和均匀采样两种采样的优势,避免了采样点重复和高度相关的采样点,保证采样空间高覆盖率以及多次采样数据的独立性。
步骤4:使用API函数进行平台查询和平台初始化,选择使用的平台,并完成相应设备的查询及初始化;创建上下文,建立内核对象、命令队列,并将数据从主机内存复制到GPU或FPGA内存中;
步骤5:执行GPU内核程序,基于训练好的人工神经网络模型,应用GPU并行设备,对J组随机变量进行预测,得到电路性能值,记作集合根据计算单元对全局内存和局部内存的访问特点,采用矩阵分块和矩阵转置的进行存储优化;
步骤6:执行FPGA内核程序,基于训练好的人工神经网络模型,应用FPGA软件加速模型,对J组随机变量的电路性能进行预测,记作集合FPGA软件加速模型应用流水线复制、内核向量化、和循环展开三种基本优化方式进行FPGA优化内核加速;
步骤7:执行FPGA内核程序,基于训练好的人工神经网络模型,应用FPGA自定义加速模型,对J组随机变量的电路性能进行预测,记作集合应用Verilog语言,采用流水线设计完成人工神经网络推理硬件加速模块,并将其集成到OpenCL library中,执行内核程序;
优选的,步骤1中,异构计算良率分析平台的主机是x86处理器,并行设备包括CPU、GPU和FPGA;CPU为四核Intel处理器;GPU基于NVIDIA Maxwell架构,包含768个CUDA核心,6个SM;FPGA基于Intel高性能低功耗的Arria 10,包含115万个逻辑单元(LE),1500个硬核DSP,45Mb嵌入式存储器,以及高性能的处理器子系统、高速串行收发器,支持PCIE等多种协议的外设接口,适用于加速电路模块的设计于应用;
平台模型的搭建包括硬件系统的搭建及连接,接口驱动、GPU和FPGA设备驱动的安装,以及Host程序、kernel程序、硬件加速模块等开发环境的建立;采用OpenCL标准作为并行异构计算程序的编程模型,执行模型为在主机上运行Host程序,并采用上下文管理运行Kernel程序;存储模型由主机内存、全局内存、局部内存、私有内存四部分共同构造而成,其中FPGA的私有内存采用片内寄存器逻辑单元,FPGA嵌入式存储器为局部内存。
优选的,步骤2中的人工神经网络结构,包含输入层、输出层、以及连接于输入层和输出层之间的隐藏层;输入层包含的神经元个数与工艺参数变量数目相同(即训练样本的维度),输出层包含的神经元个数与输出电路性能值数目相同,隐藏层的神经元个数应用拇指规则和网格搜索优化方法共同确定;神经网络训练方法选用Adam方法,隐含层的激活函数为Relu函数。
优选的,步骤4中,设备的查询和初始化需要使用两次API函数,第一次返回该平台关联的设备数量,第二次对将要使用的设备进行初始化,包括设置设备状态、调整设备参数、设置内存分配策略等;创建上下文过程中在主机端建立缓冲区对象,并将其映射到将要使用的设备端,应用PCIE接口完成数据共享与传输,保证数据传输时间的稳定性。
优选的,步骤5中,GPU计算单元对全局内存DDR5的访问速度较慢,对局部内存访问速度较快,本发明将计算任务分解为过个工作组,减小对全局内存的访问次数,并通过使用向量数据定义和传输计算来增大工作项的计算量,充分发挥局部存储器的带宽,完成存储器的优化。本发明根据使用的GPU的工作组特点,将数据矩阵与权重矩阵相乘的计算任务分解成多个工作项和工作组,在GPU上并行地执行任务,以提高计算效率和性能;将全局内存中的变量读到各个工作组的局部内存中,在局部内存中完成计算的访存,减小了并行计算过程中存储器的访存延迟,突破了计算吞吐量与全局存储带宽不匹配的瓶颈;
同时根据内存对数组进行存储时一般是行优先的特点,采用矩阵转置的方式提高局部内存的访存速度,包括A矩阵的列相乘方式和B矩阵的转置的行相乘方式,完成了访存的进一步优化。
步骤5在矩阵相乘的部分应用工作项和工作组方式对矩阵进行分块相乘,以及矩阵转置的相乘方式的访存优化,提高了局部存储器的访问速度,完成了存储器的优化,提高良率预测的效率。
此处举例说明数据矩阵与权重矩阵相乘的具体过程:
设两矩阵相乘,其中A矩阵大小为8*8,B矩阵大小为8*64,A与B矩阵相乘后输出C矩阵大小为8*64。将两个相乘矩阵都分为4*4的矩阵块进行计算,A矩阵可以表示为A(1,1)、A(1,2)、A(2,1)、A22(2,2)4个小矩阵,其中B矩阵表示为B(1,1)、B(1,2)....B(1,16)、B(2,1)、B(2,2)...B(2,16)32个小矩阵。首先A矩阵的中的矩阵A(1,1)和B矩阵中的矩阵B(1,1)相乘得到一个中间矩阵sum(4*4),接着A(1,2)和B(2,1)相乘中间矩阵sum2(4*4),将两中间矩阵sum(4*4)和sum2(4*4)的对应点数值相加即可得到C矩阵C(1,1)的数值。内核的索引空间设计方式为定义二维全局ID索引工作组和工作项,工作组第一维索引为各矩阵的行数bx,第二维为各矩阵的列数by,工作项第一维为tx,工作项第二维为ty。每个工作组的工作项大小为4*4即可,按照上述举例数据,工作组个数为2*16=32个,则bx=0~1,by=0~15,tx=0~3,ty=0~3。
优选的,步骤6中,采用流水线复制、内核向量化、和循环展开三种软件优化方式对FPGA优化内核进行软件加速;
FPGA软件加速模型把内核功能传送到专用深度流水线硬件电路中,使用了流水线并行处理概念;应用工作组模式,采用了4次内核向量化,编译器将加法或者乘法等运算整合成为单指令多数据方式进行;同将流水线复制3次,展开内层循环,用面积换速度,将循环串行计算展开成并行计算,增加kernel在每个时钟周期的工作量。
优选的,步骤7中,应用Verilog语言,采用流水线设计完成人工神经网络推理硬件加速模块,FPGA软件加速平台的存储模型,采用FPGA内部的RAM块作局部内存,内部的寄存器作私有内存;基于RTL流水线架构的自定义加速模块,将输出延时缩小至时钟量级;基于Avalon的总线的Kernel、OpenCL library集成方案,以及索引空间索缩小为输入数据的组数。
本发明的步骤7中,应用C模型函数在kernel程序编写调用RTL时,将C模型函数添加到OpenCL library中,将library链接进入kernel程序,编译kernel得到能够在FPGA设备上运行的aocx文件,执行内核程序;应用自定义加速模型,可以充分优化存储模型,本发明使用FPGA平台上的两块DDR4作为全局内存,分布在FPGA内部的RAM块作为局部内存,而内部的寄存器则作为私有内存,完成FPGA计算平台的存储模型;使自定义加速模块每次访问全局内存的是一组输入数据,一组输出数据,因此索引空间大小为输入数据的组数大小,整体采用流水线结构,将输出延时缩小至时钟量级。
优选的,步骤8中,为避免模型误差引起的良率,将电路失效空间R进行放大为R′,例如电路失效空间R为性能measure>4.395,为避免模型误差影响的良率,将电路性能失效空间放大为R′(性能measure>4.3),以便能够获取全部的失效点;将失效数组序号从设备内存复制回主机内存,减小数据传输量。
优选的,步骤9中,为保证基于蒙特卡洛成品率计算的准确性,K的取值大于50,电路良率为:
本发明提出了一种基于蒙特卡洛采样、人工神经网络、高性能并行异构平台、SPICE仿真的电路良率分析方法。与现有技术相比,克服了电路非线性和权重调整给重要性采样与神经网络相结合方法对良率准确性的带来影响;与马尔科夫蒙特卡洛采样方法相比,不需要先验知识,可以直接通过大量的随机样本来获得准确的良率结果。应用处理器、GPU和FPGA搭建完整的并行计算异构分析方法,不仅仅能够完成简单的数学计算,而且能够完成整个人工神经网络预测在处理器、GPU、FPGA三种并行加速,满足不同情况下的良率分析,同时PCIE数据实时传输、主机程序与内核程序架构为基于SPICE仿真器的蒙特卡洛分析方法和基于替代模型的蒙特卡洛分析方法两种方法的融合、保证良率准确性提供了条件,也方便了该方法在其他应用中的扩展。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现权利要求1-9任一所述的基于并行异构计算的电路良率分析方法。
本发明未详尽之处,均可参见现有技术。
本发明的有益效果为:
1、本发明的基于并行异构计算的电路良率分析方法,在并行异构计算平台中应用处理器、GPU、FPGA三种并行加速方法完成人工神经网络模型预测,满足了不同情况下的良率分析要求。PCIE数据实时传输以及主机程序与内核程序架构为基于SPICE仿真器的蒙特卡洛分析方法和基于替代模型的蒙特卡洛分析方法两种方法的融合、保证良率准确性提供了条件,显著提高了优化效率,也方便了该并行异构计算方法在其他应用中的扩展。
2、本发明采用工作项和工作组方式对矩阵进行分块相乘,将全局内存中的变量读到各个工作组的局部存储器中,计算过程中访问局部存储器的数据,减小了并行计算过程中存储器的访存延迟,突破了电路性能预测计算吞吐量与全局存储带宽不匹配的瓶颈。向量化数据的使用和矩阵转置进一步提高了局部存储器的访问速度,完成了存储器的优化,提高良率预测的效率。
3、本发明应用流水线复制、内核向量化、和循环展开的FPGA软件优化加速模型,预测电路性能,提高了基于OpenCL的FPGA电路性能预测效率。
4、本发明提出一种基于自定义流水线加速模块的FPGA电路性能预测加速模块设计方法。此方法将电路性能预测时间输出延时控制是时钟量级,同时充分利用FPGA内部存储器作为局部存储使用,FPGA的寄存器资源作设计的私有存储,将电路性能预测模块输入的索引空间索缩小为输入数据的组数,有效突破了电路性能预测过程中的数据存取瓶颈,提高了良率分析的速度。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为基于并行异构计算的电路良率分析硬件架构图。
图2为本发明提出的一种基于并行异构计算的电路良率分析方法的矩阵分块相乘示意图。
图3为本发明提出的一种基于并行异构计算的电路良率分析方法Host程序流程图。
图4为本发明提出的一种基于并行异构计算的电路良率分析方法的实施例1的SRAM电路的结构图。
图5为本发明提出的一种基于并行异构计算的电路良率分析方法的实施例1的人工神经网络结构图。
具体实施方式:
为了使本技术领域的人员更好的理解本说明书中的技术方案,下面结合本说明书实施中的附图,对本发明书实施例中的技术方案进行清楚、完整的描述,但不仅限于此,本发明未详尽说明的,均按本领域常规技术。
实施例1
一种基于并行异构计算的电路良率分析方法,如图3所示,具体实现步骤如下:
实施例1是一个电路设计中常用的6管SRAM单元,图4为本实施例的SRAM电路图,采用45nmCMOS工艺实现,本实施例共有6个MOS管,4个工艺参数变化,电路性能为写延迟时间,表1列出了电路性能失效空间以及失效点个数最小值,计算此失效空间R下的电路良率。
表1:电路性能失效空间以及失效点个数最小值
步骤1:搭建支持CPU、GPU、FPGA并行设备的异构计算良率分析平台,包括平台模型、执行模型、编程模型、存储模型的建立。本案例采用的并行异构计算良率分析平台模型主机是x86处理器,并行设备包括CPU,GPU,FPGA;CPU为四核Intel处理器;GPU基于NVIDIAMaxwell架构,包含768个CUDA核心,6个SM;FPGA基于Intel高性能低功耗的Arria 10,包含115万个逻辑单元(LE),1500个硬核DSP,45Mb嵌入式存储器,以及高性能的处理器子系统、高速串行收发器,支持PCIE等多种协议的外设接口,适用于加速电路模块的设计于应用。平台模型的搭建包括硬件系统的搭建及连接,接口驱动、GPU和FPGA设备驱动的安装,以及Host程序、kernel程序、硬件加速模块等开发环境的建立。本发明采用OpenCL标准作为并行异构计算程序的编程模型,执行模型为在主机上运行Host程序,并采用上下文管理运行Kernel程序。由主机内存、全局内存、局部内存、私有内存四部分共同构造存储模型,其中FPGA的私有内存采用片内寄存器逻辑单元,FPGA嵌入式存储器为局部内存。
步骤2:在主机端,采用蒙特卡洛随机采样获取M组训练样本点S,对集合S中的每个样本点进行并行晶体管级SPICE仿真,得出对应的电路性能输出值,记作集合H,进而得到原始训练数据集D={S,H}。分析SRAM电路性能参数及性能结构,根据拇指规则构建如图5人工神经网络结构,输入层神经元与电路工艺参数个数相同为4,两个隐藏层,隐藏层1神经元个数为8,隐藏层2神经元个数为4,输出层神经元个数为1,隐藏层的激活函数为Relu函数。神经网络训练方法选用Adam方法。
步骤3:在主机端,分析主机和GPU的内存空间,应用蒙特卡洛采样方法产生160000组随机变量,将数据存储主机内存中。
步骤4:使用API函数进行GPU平台查询和GPU平台初始化,并完成GPU设备的查询及初始化。创建上下文,建立内核对象、命令队列,并将数据从主机内存复制到GPU内存中。
步骤5:执行GPU内核程序,基于训练好的人工神经网络模型,应用GPU并行设备,对160000组随机变量进行预测,得到电路性能值,记作集合根据计算单元对全局内存和局部内存的访问特点,采用矩阵分块和矩阵转置的进行存储优化。
本实例中为平衡工作项计算时间和存储器访问时间,以隐藏层1说明矩阵分块方法。两矩阵相乘,A矩阵(隐藏层1的权重矩阵)大小为8*4,B矩阵(输入数据矩阵)大小为4*160000则最后输出C矩阵(隐藏层1的输出矩阵)大小为8*160000,而本发明使用的GPU的每个工作组能够使用的局部存储器大小为48KB,如果不进行矩阵分块,访问全局内存访问时间消耗非常大。应用主机向量化,定义B矩阵的数据类型是float4,全局内存ID数变为原来的1/4。将两个相乘矩阵都分为4*4的矩阵块进行计算,A矩阵可以表示为A(1,1),A(2,1)2个小矩阵;B矩阵表示为B(1,1),B(1,2)....B(1,40000)40000个小矩阵,工作组数量减小到原来的1/4。
通过实验分析,采用A矩阵转置列相乘方式的优化方式,速度较快,因此本实例采用了A矩阵转置列相乘方式进行访存优化。
本文发明中的实例1的输入数组分别为160、1600、16000、160000进行了加速测试,数据如表2所示。从表2当数据量成倍增加时,访存延迟的占比逐渐缩小,计算加速效率提高,因此本发明GPU加速方法对蒙特卡洛数据量较大的高精度电路良率分析加速效果更佳。
表2:GPU加速测试结果
步骤8:考虑人工神经网络预测误差,扩大电路性能失效空间R(measure>4.395)为R′(measure>4.3),对电路性能值进行分析,获取电路失效空间R′内的失效数据152组,将数组序号从GPU内存复制回主机内存。
步骤9:在主机端,对这152组数据重新进行晶体管级SPICE仿真,获得SPICE电路性能值measure及其对应的参数值,失效点数目为64,根据如下公式:
表3:GPU加速方法与基于快速蒙特卡洛采样方法的对比
从表3可以看出,本发明提出的一种基于并行异构计算的电路良率分析系统,在达到基于快速蒙特卡洛采样方法的精度要求的同时,显著提高了优化效率。
实施例2
一种基于并行异构计算的电路良率分析方法,如实施例1所述,其区别在于:
步骤4:使用API函数进行FPGA平台查询和FPGA平台初始化,并完成FPGA设备的查询及初始化。创建上下文,建立内核对象、命令队列,并将数据从主机内存复制到FPGA内存中。
每一个FPGA内核流水线都可以由多个工作组共同协助完成,编译器利用多余空闲的工作组进行3次流水线复制,增加硬件资源的利用率。同时采用命令进行内核向量化,使编译器可以将加法或者乘法等运算整合成为单指令4数据方式进行,每个工作项可以处理更多的运算量。同样采用指令方式,将循环串行计算展开成并行计算,提高并行运算的效率。如表4所示,使用FPGA指令进行加速比使用GPU进行加速更快了两倍,本发明FPGA指令加速对蒙特卡洛数据量较大的高精度电路良率分析加速效果更佳。
表4:使用FPGA指令进行加速测试结果
如表4所示,使用FPGA指令进行加速比使用GPU进行加速更快了两倍。
步骤8:考虑人工神经网络预测误差,扩大电路性能失效空间R(measure>4.395)为R′(measure>4.3),对电路性能值进行分析,获取电路失效空间R′内的失效数据152组,将数组序号从FPGA内存复制回主机内存。
步骤9:在主机端,对这152组数据重新进行晶体管级SPICE仿真,获得SPICE电路性能值及其对应的参数值,失效点数目为64,根据如下公式:
表5:FPGA软件优化加速方法与基于快速蒙特卡洛采样方法的对比
实施例3
一种基于并行异构计算的电路良率分析方法,如实施例1所述,其区别在于:
步骤4:使用API函数进行FPGA平台查询和FPGA平台初始化,并完成FPGA设备的查询及初始化。创建上下文,建立内核对象、命令队列,并将数据从主机内存复制到FPGA内存中。
应用Verilog语言,采用流水线设计完成人工神经网络推理加速模块的RTL设计,使其接口符合Avalon总线类型标准。创建.xml文件,包括模块名称,输入输出数据,延时Avalon总线类型,以及C模型的函数名称等属性。将RTL完成的功能使用C语言描述,建立C语言模型函数,在进行kernel程序编写调用调用C模型函数(实际调用为RTL module)。将C模型函数添加到OpenCL library中,将library链接进入kernel程序,编译kernel得到可以在FPGA设备上运行的aocx文件,完成FPGA自定义模块加速。
步骤8:考虑人工神经网络预测误差,扩大电路性能失效空间R(measure>4.395)为R′(measure>4.3),对电路性能值进行分析,获取电路失效空间R′内的失效数据152组,将数组序号从FPGA内存复制回主机内存。
步骤9:在主机端,对这152组数据重新进行晶体管级SPICE仿真,获得SPICE电路性能值measure及其对应的参数值,失效点数目为64,根据如下公式:
表6:FPGA自定义加速方法与基于快速蒙特卡洛采样方法的对比
表6说明使用RTL流水线模块集成到kernel中进行OpenCL library优化时在大量数据的情况下比串行计算加速倍数为53倍。这种方法不仅节省了和全局内存进行数据交换的访存延迟时间,而且对索引空间进行降维,从原来要满足基本矩阵运算的二维空间降维到输入组数计算的一维空间,使得全局变量的访问减小为输入矩阵大小。
实施例4
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现实施例1、2或3的基于并行异构计算的电路良率分析方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于并行异构计算的电路良率分析方法,其特征在于,包括:
步骤1:搭建支持CPU、GPU、FPGA并行设备的异构计算良率分析平台,包括平台模型、执行模型、编程模型、存储模型的建立;
步骤2:在主机端,采用蒙特卡洛随机采样获取M组训练样本点S,对训练样本点S集合中的每个样本点进行并行晶体管级SPICE仿真,得出对应的电路性能输出值,记作集合H,进而得到原始训练数据集D={S,H},构建人工神经网络结构,使用数据集D训练人工神经网络模型;
步骤3:在主机端,应用Sobol序列采样产生J组随机变量,将数据存储主机内存中;
步骤4:使用API函数进行平台查询和平台初始化,选择使用的平台,并完成相应设备的查询及初始化;创建上下文,建立内核对象、命令队列,并将数据从主机内存复制到GPU或FPGA内存中;
步骤5:执行GPU内核程序,基于训练好的人工神经网络模型,应用GPU并行设备,对J组随机变量进行预测,得到电路性能值,记作集合根据计算单元对全局内存和局部内存的访问特点,采用矩阵分块和矩阵转置的进行存储优化;
步骤6:执行FPGA内核程序,基于训练好的人工神经网络模型,应用FPGA软件加速模型,对J组随机变量的电路性能进行预测,记作集合FPGA软件加速模型应用流水线复制、内核向量化、和循环展开三种基本优化方式进行FPGA优化内核加速;
步骤7:执行FPGA内核程序,基于训练好的人工神经网络模型,应用FPGA自定义加速模型,对J组随机变量的电路性能进行预测,记作集合应用Verilog语言,采用流水线设计完成人工神经网络推理硬件加速模块,并将其集成到OpenCL library中,执行内核程序;
2.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤1中,异构计算良率分析平台的主机是x86处理器,并行设备包括CPU、GPU和FPGA;CPU为四核Intel处理器;
平台模型的搭建包括硬件系统的搭建及连接,接口驱动、GPU和FPGA设备驱动的安装,以及Host程序、kernel程序、硬件加速模块等开发环境的建立;采用OpenCL标准作为并行异构计算程序的编程模型,执行模型为在主机上运行Host程序,并采用上下文管理运行Kernel程序;存储模型由主机内存、全局内存、局部内存、私有内存四部分共同构造而成,其中FPGA的私有内存采用片内寄存器逻辑单元,FPGA嵌入式存储器为局部内存。
3.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤2中的人工神经网络结构,包含输入层、输出层、以及连接于输入层和输出层之间的隐藏层;输入层包含的神经元个数与工艺参数变量数目相同,输出层包含的神经元个数与输出电路性能值数目相同,隐藏层的神经元个数应用拇指规则和网格搜索优化方法共同确定;神经网络训练方法选用Adam方法,隐含层的激活函数为Relu函数。
4.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤4中,设备的查询和初始化需要使用两次API函数,第一次返回该平台关联的设备数量,第二次对将要使用的设备进行初始化,包括设置设备状态、调整设备参数、设置内存分配策略;创建上下文过程中在主机端建立缓冲区对象,并将其映射到将要使用的设备端,应用PCIE接口完成数据共享与传输,保证数据传输时间的稳定性。
5.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤5中,GPU计算单元对全局内存DD5的访问速度较慢,对局部内存访问速度较快,将数据矩阵与权重矩阵相乘的计算任务分解成多个工作项和工作组,在GPU上并行地执行任务,以提高计算效率和性能;将全局内存中的变量读到各个工作组的局部内存中,在局部内存中完成计算的访存;
同时根据内存对数组进行存储时行优先的特点,采用矩阵转置的方式提高局部内存的访存速度,包括A矩阵的列相乘方式和B矩阵的转置的行相乘方式,完成了访存的进一步优化。
6.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤6中,采用流水线复制、内核向量化、和循环展开三种软件优化方式对FPGA优化内核进行软件加速。
7.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤7中,FPGA软件加速平台的存储模型,采用FPGA内部的RAM块作局部内存,内部的寄存器作私有内存;基于RTL流水线架构的自定义加速模块,将输出延时缩小至时钟量级;基于Avalon的总线的Kernel、OpenCL library集成方案,以及索引空间索缩小为输入数据的组数。
8.根据权利要求1所述的基于并行异构计算的电路良率分析方法,其特征在于,步骤8中,将电路失效空间R进行放大为R′,以便能够获取全部的失效点;将失效数组序号从设备内存复制回主机内存,减小数据传输量。
10.一种计算机设备,包括存储器和处理器,其特征在于,存储器存储有计算机程序,处理器执行计算机程序时实现权利要求1-9任一所述的基于并行异构计算的电路良率分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310454436.7A CN116384312B (zh) | 2023-04-20 | 2023-04-20 | 一种基于并行异构计算的电路良率分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310454436.7A CN116384312B (zh) | 2023-04-20 | 2023-04-20 | 一种基于并行异构计算的电路良率分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116384312A true CN116384312A (zh) | 2023-07-04 |
CN116384312B CN116384312B (zh) | 2023-11-17 |
Family
ID=86965693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310454436.7A Active CN116384312B (zh) | 2023-04-20 | 2023-04-20 | 一种基于并行异构计算的电路良率分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116384312B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561669A (zh) * | 2023-07-12 | 2023-08-08 | 南通二进制软件科技有限公司 | 一种应用于生产管理的数据分类识别方法 |
CN117422047A (zh) * | 2023-12-19 | 2024-01-19 | 贝叶斯电子科技(绍兴)有限公司 | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 |
CN117827464A (zh) * | 2024-03-04 | 2024-04-05 | 北京大学 | 异构内存情境下软硬件协同设计的内存优化方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9524365B1 (en) * | 2014-12-23 | 2016-12-20 | Cadence Design Systems, Inc. | Efficient monte carlo flow via failure probability modeling |
CN109636026A (zh) * | 2018-12-07 | 2019-04-16 | 东华大学 | 一种基于深度学习模型的晶圆良率预测方法 |
CN114239464A (zh) * | 2021-12-17 | 2022-03-25 | 深圳国微福芯技术有限公司 | 基于贝叶斯筛选器与重采样的电路的良率预测方法及系统 |
CN114792084A (zh) * | 2021-01-26 | 2022-07-26 | 复旦大学 | 一种针对大规模sram阵列电路后仿真的高效良率分析方法 |
CN115358178A (zh) * | 2022-08-11 | 2022-11-18 | 山东大学 | 一种基于融合神经网络的电路良率分析方法 |
-
2023
- 2023-04-20 CN CN202310454436.7A patent/CN116384312B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9524365B1 (en) * | 2014-12-23 | 2016-12-20 | Cadence Design Systems, Inc. | Efficient monte carlo flow via failure probability modeling |
CN109636026A (zh) * | 2018-12-07 | 2019-04-16 | 东华大学 | 一种基于深度学习模型的晶圆良率预测方法 |
CN114792084A (zh) * | 2021-01-26 | 2022-07-26 | 复旦大学 | 一种针对大规模sram阵列电路后仿真的高效良率分析方法 |
CN114239464A (zh) * | 2021-12-17 | 2022-03-25 | 深圳国微福芯技术有限公司 | 基于贝叶斯筛选器与重采样的电路的良率预测方法及系统 |
CN115358178A (zh) * | 2022-08-11 | 2022-11-18 | 山东大学 | 一种基于融合神经网络的电路良率分析方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116561669A (zh) * | 2023-07-12 | 2023-08-08 | 南通二进制软件科技有限公司 | 一种应用于生产管理的数据分类识别方法 |
CN116561669B (zh) * | 2023-07-12 | 2023-09-05 | 南通二进制软件科技有限公司 | 一种应用于生产管理的数据分类识别方法 |
CN117422047A (zh) * | 2023-12-19 | 2024-01-19 | 贝叶斯电子科技(绍兴)有限公司 | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 |
CN117422047B (zh) * | 2023-12-19 | 2024-03-15 | 贝叶斯电子科技(绍兴)有限公司 | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 |
CN117827464A (zh) * | 2024-03-04 | 2024-04-05 | 北京大学 | 异构内存情境下软硬件协同设计的内存优化方法及系统 |
CN117827464B (zh) * | 2024-03-04 | 2024-04-30 | 北京大学 | 异构内存情境下软硬件协同设计的内存优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116384312B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116384312B (zh) | 一种基于并行异构计算的电路良率分析方法 | |
Lutz et al. | PARTANS: An autotuning framework for stencil computation on multi-GPU systems | |
You et al. | Fast deep neural network training on distributed systems and cloud TPUs | |
Liu et al. | A hybrid solution method for CFD applications on GPU-accelerated hybrid HPC platforms | |
Gu et al. | DLUX: A LUT-based near-bank accelerator for data center deep learning training workloads | |
Nguyen et al. | FPGA‐based HPC accelerators: An evaluation on performance and energy efficiency | |
Yang et al. | S 2 Engine: A novel systolic architecture for sparse convolutional neural networks | |
Mandal et al. | COIN: Communication-aware in-memory acceleration for graph convolutional networks | |
Cordeiro et al. | Machine learning migration for efficient near-data processing | |
Sun et al. | Evaluating performance, power and energy of deep neural networks on CPUs and GPUs | |
Cho et al. | FARNN: FPGA-GPU hybrid acceleration platform for recurrent neural networks | |
Zhou et al. | GCNear: A hybrid architecture for efficient GCN training with near-memory processing | |
US11036827B1 (en) | Software-defined buffer/transposer for general matrix multiplication in a programmable IC | |
Zhong et al. | CoGNN: An algorithm-hardware co-design approach to accelerate GNN inference with minibatch sampling | |
Halbiniak et al. | Exploration of OpenCL heterogeneous programming for porting solidification modeling to CPU‐GPU platforms | |
Li et al. | PIM-WEAVER: a high energy-efficient, general-purpose acceleration architecture for string operations in Big Data processing | |
Gan et al. | High performance reconfigurable computing for numerical simulation and deep learning | |
Carracciuolo et al. | Toward a new linpack‐like benchmark for heterogeneous computing resources | |
Lin et al. | Accelerating GNN training on cpu multi-FPGA heterogeneous platform | |
Diamantopoulos et al. | A system-level transprecision FPGA accelerator for BLSTM using on-chip memory reshaping | |
Shahshahani et al. | An automated tool for implementing deep neural networks on fpga | |
Santos et al. | Artificial neural network acceleration on FPGA using custom instruction | |
Arasteh | Transaction-level modeling of deep neural networks for efficient parallelism and memory accuracy | |
Kashi | Asynchronous fine-grain parallel iterative solvers for computational fluid dynamics | |
Andrianova et al. | Hardware acceleration of statistical data processing based on FPGAs in corporate information systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |