CN117422047B - 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 - Google Patents
一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 Download PDFInfo
- Publication number
- CN117422047B CN117422047B CN202311748653.3A CN202311748653A CN117422047B CN 117422047 B CN117422047 B CN 117422047B CN 202311748653 A CN202311748653 A CN 202311748653A CN 117422047 B CN117422047 B CN 117422047B
- Authority
- CN
- China
- Prior art keywords
- gpu
- cpu
- verilog
- circuit
- parameters
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 238000011156 evaluation Methods 0.000 claims abstract description 18
- 239000013598 vector Substances 0.000 claims description 67
- 230000014509 gene expression Effects 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 22
- 230000006399 behavior Effects 0.000 claims description 7
- 238000009434 installation Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- UELITFHSCLAHKR-UHFFFAOYSA-N acibenzolar-S-methyl Chemical compound CSC(=O)C1=CC=CC2=C1SN=N2 UELITFHSCLAHKR-UHFFFAOYSA-N 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种CPU与GPU异构平台的电路仿真方法,同时还提出了一种CPU与GPU异构平台的自动化仿真方法。将Verilog‑A/AMS器件编译成CPU和GPU异构平台上执行的代码时,将涉及器件评估的部分编译成GPU代码,将电路方程的其他部分编译成CPU端的代码。这样可以利用GPU进行大规模器件评估计算,又能联合求解器进行电路仿真,将Verilog‑A/AMS器件自动编译成CPU和GPU异构平台上执行的代码,这样可以利用GPU进行大规模计算,这将有效提高Verilog‑A/AMS器件的仿真效率。
Description
技术领域
本发明属于集成电路仿真领域,具体涉及一种CPU与GPU异构平台的Verilog-A/AMS电路仿真方法与CPU-GPU异构平台自动化仿真方法。
背景技术
在集成电路领域中,模拟模块的行为模型、新型器件的紧凑模型以及多物理模块的行为模型常常使用Verilog-A/AMS硬件描述语言来建模。对这些模型的仿真则需要先采用Verilog-A/AMS编译程序先把Verilog-A/AMS语言编译成C/C++语言,然后调用C/C++的编译器生成二进制库文件,最后才能参与到电路仿真中去,从程序编译角度来看,存在效率优化的空间。
随着集成电路规模与精度要求的提高,在仿真、调试过程的效率提升难以满足需求,其主要原因如下:1、仿真多基于CPU平台,应用广泛的冯诺依曼架构、哈佛架构等都属于串行处理体系结构,运行速度限制较大;即使采用多核CPU,也受到CPU核芯数量的限制,提升效率有限;2、即使采用具有并行能力的GPU加速,也需要依靠工程师的人工配置优化,缺乏异构平台的自动化协同处理,仿真优化的整体效率较为低下。
本申请人提出的主题名称为“一种Verilog-A的仿真方法”的专利(公开号为:CN114398846A),通过将一些普遍适用的Verilog-A进行优化处理,固化成电路仿真器的固有模型,从而使得后续再遇到此类Verilog-A,电路仿真器能够直接调用优化后的固有模型,从而提高Verilog-A的仿真效率。但其存在如下问题:1、优化逻辑局限于从程序编译、特定器件结构的角度展开,对于整体电路仿真效率的提升还存在不足;2、仍然存在串行计算速度限制、CPU核芯数量有限与异构平台缺乏自动化配置优化的瓶颈。
为解决以上问题,有必要提出一种新的方法。
发明内容
针对现有技术中所存在的不足,本发明提供了一种CPU与GPU异构平台的电路仿真方法,应用于Verilog-A/AMS电路仿真,包含以下步骤:
A、解析电路网表和Verilog-A/AMS器件;
B、根据步骤A得到的电路信息和Verilog-A/AMS器件信息,预先在GPU上分配电性参数所需的内存块,仿真初始化时,将待仿真的Verilog-A/AMS器件所包含的电性参数组传输到GPU;所述电性参数组包含Verilog-A/AMS器件的model参数、instance参数、电压向量和电路拓扑参数;
C、在GPU端进行器件电性参数组的评估计算,评估计算内容包含利用Verilog-A/AMS器件行为的方程式和电压向量重新计算Verilog-A/AMS器件的雅可比矩阵的stamp信息和电流向量以及电荷向量;根据评估计算结果更新电参数雅可比矩阵与电流向量信息/电荷向量信息;
D、从GPU端传更新后电参数雅可比矩阵的stamp信息、电流向量信息或电荷向量信息到CPU端;期间将分散在多个instance参数的雅可比矩阵的stamp信息重组为一段连续的内存数据再往CPU端传输;
E、CPU端基于电参数雅可比矩阵、电压向量、电流向量或电荷向量组成的线性方程组,求解电压向量后更新电压向量;
F、判断步骤E中所得方程组的解的收敛情况:如果收敛则执行下一个仿真点的计算,如果不收敛则将GPU中电性参数组的电压向量替换为步骤E中最新求解的电压向量,继续从步骤C开始执行;
G、判断仿真是否结束:如果仿真未结束,则继续从步骤C开始执行下一个点的仿真计算;如果仿真结束,则程序执行完毕。
进一步的,在步骤A中,利用词法分析器Flex和语法分析器Bsion对Verilog-A/AMS器件和电路网表进行词法解析与语法解析,并生成对应电路模型的语法树。
进一步的,在步骤A中,解析待仿真的Verilog-A/AMS器件的表达式,所述表达式为描述Verilog-A/AMS器件行为的方程式,与节点电压向量有关的表达式分配在GPU上计算,与节点电压向量无关的表达式分配在CPU上计算。
进一步的,对语法树进行递归解析,直至所有的根节点为预先定义的器件参数或本地变量。
进一步的,GPU计算所需的参数信息在连续内存块中进行整体存储。
进一步的,GPU计算所需参数信息的存储包含以下步骤:
A01、解析Verilog-A/AMS器件中的model参数和instance参数定义,统计model参数和instance参数包含的参数名,记为model参数列表和instance参数列表;
B01、解析Verilog-A/AMS器件中的与节点电压向量有关的表达式,统计计算每个表达式值所需的参数;
C01、将步骤B01中涉及与节点电压向量相关的表达式中的model参数组成新的一个数组,记为紧凑型model参数,并通过和步骤A01中解析所得到的model参数名进行匹配,将相对应model参数的值赋值给步骤B01中的model参数名;
D01、将步骤B01中涉及的instance参数组成新的一个数组,记为紧凑型instance参数,并通过和步骤A01中解析所得到的instance参数名进行匹配,将相对应instance参数的值赋值给步骤B01中的instance参数名;
E01、将既不是model参数又不是instance参数的参数记录为本地变量。
本发明还提出了一种CPU与GPU异构平台的自动化仿真方法,包含以下步骤:
A1、检测计算机上GPU计算平台的安装情况;
A2、待仿真的Verilog-A/AMS器件根据GPU计算平台的安装检测识别结果,进行相应的代码编译:当安装有GPU计算平台时,编译为CPU端和GPU端异构平台执行代码,如C/C++代码;
当未安装有GPU计算平台时,编译为CPU端上执行代码,如C/C++代码;并在CPU中以多核并行方式进行计算,如可用TBB进行并行计算;
A3、把Verilog-A/AMS器件编译所得的代码,如C/C++代码,再编译成二进制库,和通用电路仿真器一起组成新的Verilog-A/AMS电路仿真器,进行电路仿真,电路仿真包含所述的一种CPU与GPU异构计算电路的仿真方法。
进一步的,将各GPU型号按照对应的计算资源进行编译配置作为编译配置项,以在步骤A2中,识别所述 GPU计算平台对应的GPU型号之后,选择对应型号的配置项内容进行编译。
进一步的,编译配置包含以下步骤:
A11、解析电路网表,确定待仿真的电路网表中Verilog-A/AMS器件的instance参数的数量,记为N;
A12、查询当前GPU的block和thread最大数目,分别记为BN和GN,并设grid和block均为1维;
A13、当N<BN时,grid设置为1维,block设置为N维;
当BN<N<BN*GN 时,grid设置为N/BN+1维,block设置为BN维;
当1*BN*GN<N<2*BN*GN时,每次进入自定义模型评估时,采用分批次进入GPU进行计算,第1次前BN*GN个instance参数的评估将grid设置为GN维,block设置为BN维;再将剩余的instance参数按照当N<BN或BN<N<BN*GN 时的情景分别设置grid和block的维数数目。
相比于现有技术,本发明将器件信息(instance参数/model参数)、电路拓扑信息和初始电压向量在电路仿真前一次性传入GPU中,避免了在仿真时多次传输;将Verilog-A/AMS编译成CPU和GPU异构平台上执行的代码时,将不同的GPU的编译选项做成配置项,这样可以最大限度的发挥GPU的计算优势,提高了效率。
附图说明
图1为实施例CPU与GPU异构平台Verilog-A/AMS电路仿真流程图。
图2为实施例CPU与GPU异构计算流程图。
图3为实施例对应的紧凑型参数分析流程图。
图4为实施例电路网表示意图。
具体实施方式
以下结合说明书附图对本发明作进一步详细说明,并给出具体实施方式。
本实施例提出了一种CPU与GPU异构平台的电路的仿真方法,如图1、图2所示,包含以下步骤:
A、解析电路网表和Verilog-A/AMS器件;所述解析即利用词法分析器flex和语法分析器bsion对电路网表和Verilog-A/AMS器件进行词法解析与语法解析,并最终生成模型的语法树;所述Verilog-A/AMS器件不仅包含单个紧凑型半导体器件,也包含由若干紧凑型半导体器件组成的电路模块;本实施例中的Verilog-A/AMS器件为UC Berkeley的BSIM3V3器件;电路网表的示例参见图4;
B、根据步骤A得到的电路信息和Verilog-A/AMS器件信息,预先在GPU上分配电性参数所需的内存块,仿真初始化时,将待仿真的Verilog-A/AMS器件所包含的电性参数组传输到GPU;所述电性参数组包含Verilog-A/AMS器件的model参数、instance参数、电压向量和电路拓扑参数;本实施例中,GPU为NVIDIA GPU计算平台,并调用CUDA进行相关计算作业;
C、在GPU端进行器件电性参数组的评估计算,评估计算内容包含利用Verilog-A/AMS器件行为的方程式和电压向量,重新计算器件的雅可比矩阵的stamp信息和电流向量/电荷向量;根据评估计算结果更新电参数雅可比矩阵、电流向量或电荷向量信息;为方便理解,作为一种实施例,Verilog-A/AMS器件行为的方程式包含但不限于电路方程式;
D、从GPU端传更新后电参数雅可比矩阵的stamp信息、电流向量信息或电荷向量信息到CPU端;期间将分散在多个instance参数的电参数雅可比矩阵的stamp信息重组为一段连续的内存数据再往CPU端传输;
E、CPU端基于电压向量、电参数雅可比矩阵、电流向量或电荷向量组成的线性方程组,求解电压向量后更新电压向量;
F、判断步骤E中所得方程组的解的收敛情况:如果收敛则进行下一个仿真点的计算,如果不收敛则将GPU中电性参数组的电压向量替换为步骤E中最新求解的电压向量,继续从步骤C开始执行;
G、判断仿真是否结束:如果步仿真未结束,则继续从步骤C开始执行下一个点的器件评估计算;如果步仿真结束,则程序执行完毕。
在步骤E中,线性方程如下所示:
( 1 )
上式以电参数为电导参数的雅可比矩阵为例,电参数雅可比矩阵中的其中一部分元素就称为stamp,如下式所示即为电导stamp信息示例,是一个2*2的小矩阵,
其中,雅可比矩阵可以是电导矩阵或电容矩阵,右端项可以是电流向量或电荷向量。组成的线性方程组包含电导、电压向量和电流向量组成的方程组,也包含电容、电压向量和电荷向量组成的方程组。
在以上步骤A中,解析待仿真的Verilog-A/AMS器件的表达式,与节点电压向量有关的表达式分配在GPU上计算,与节点电压向量无关的表达式分配在CPU上计算。由此,将Verilog-A/AMS编译成CPU和GPU异构平台上执行的代码时,将涉及模型评估的部分编译成GPU代码,将模型其他部分编译成CPU端的代码,这样可以利用GPU进行大规模模型评估计算,又能联合求解器进行电路仿真,提高仿真效率;基于生成的语法树,对其进行递归解析,直至所有的根节点为预先定义的器件参数或本地变量,通过将与电压向量无关的表达式的计算在CPU上计算,将与电压向相关的表达式在GPU上进行,避免了GPU上重复执行只需计算一次的表达式的值,提高了计算效率。而将包含instance参数、model参数在内的器件信息、电路拓扑信息和初始电压向量在电路仿真前一次性传入GPU中,避免了在仿真时多次的传输,提高了效率。
另外,GPU计算所需的参数信息以更加紧凑的存储方式重新组合,本实施例中,参数信息在连续内存块中进行整体存储以连续方式进行存储;具体的,参见图3,本实施例GPU计算所需参数信息的紧凑式存储包含以下步骤:
A01、解析Verilog-A/AMS器件中的model参数和instance参数定义,统计model参数和instance参数包含的参数名,记为model参数列表和instance参数列表;
B01、解析Verilog-A/AMS器件中的与节点电压向量有关的表达式,所述表达式为描述Verilog-A/AMS器件行为的方程式,统计计算每个表达式计算所需的参数;
C01、将步骤B01中涉及与节点电压向量相关的表达式中的model参数组成新的一个数组,记为紧凑型model参数,并通过和步骤A01中解析所得到的model参数名进行匹配,将相对应model参数的值赋值给步骤B01中的model参数名;
D01、将步骤B01中涉及的instance参数组成新的一个数组,记为紧凑型instance参数,并通过和步骤A01中解析所得到的instance参数名进行匹配,将相对应instance参数的值赋值给步骤B01中的instance参数名;
E01、将既不是model参数又不是instance参数的参数记录为本地变量。
通过将model参数和instance参数紧凑化,提高了GPU上访问内存的效率。
需要在GPU端器件评估完成后进行CPU和GPU传输数据时,将原来分散在多个instance参数的电参数雅可比矩阵的stamp信息数据重新组成一整块连续的内存空间,然后再传输,这样可以减少数据传输的耗时。
本实施例还提出了一种CPU与GPU异构平台的自动化仿真方法,包含以下步骤:
A1、检测计算机上GPU计算平台的安装情况;
A2、待仿真的Verilog-A/AMS器件根据GPU计算平台的安装检测识别结果,进行相应的代码编译:当安装有GPU计算平台时,编译为CPU端和GPU端异构平台执行代码,如C/C++代码;
当未安装有GPU计算平台时,编译为CPU端上执行代码,如C/C++代码,并利用TBB进行多核并行计算,通过并行运算提高计算效率。
A3、把Verilog-A/AMS器件编译所得的C/C++代码,再编译成二进制库,和通用电路仿真器一起组成新的Verilog-A/AMS电路仿真器,进行电路仿真,电路仿真包含如上所述的一种CPU与GPU异构计算电路的仿真方法。
作为一种实施例,检测计算机上是否安装了NVIDIA GPU,可采用如下的命令:
nvidia-smi。
如果返回为空,则没有安装NVIDIA GPU。如果返回不为空,则可以进一步确认是什么型号的NVIDIA GPU。
当确定是什么型号的NVIDIA GPU后则可以确认使用什么编译选项,这里举例如下:
如果是NVIDIA GeForce RTX 4080,则可使用下面的编译选项
-gencode=arch=compute_86,code=sm_86 -rdc=true -O3
如果是NVIDIA GeForce RTX 4080,则可使用下面的编译选项
-gencode=arch=compute_89,code=sm_89 -rdc=true -O3
将不同型号的GPU的编译选项作为软件配置项,当确定GPU型号后即可选用不同的编译选项。通过将Verilog-A/AMS器件自动编译成CPU和GPU异构平台上执行的代码。这样可以利用GPU进行大规模计算,这将有效提高Verilog-A/AMS器件的仿真效率。
进一步的,将各GPU型号按照对应的计算资源进行编译配置,以在步骤A2中,识别所述GPU计算平台对应的GPU型号之后,选择对应型号的配置项进行编译。Verilog-A/AMS器件编译和相关配置包含以下步骤:
A11、解析电路网表,确定待仿真的自定义模型中instance参数的个数,instance数量即为问题规模,记为N;
A12、查询当前GPU的block和thread最大数目,分别记为BN和GN,并设grid和block均为1维;
A13、当N<BN时,grid设置为1,block设置为N;
当BN<N<BN*GN 时,grid设置为N/BN+1,block设置为BN;
当1*BN*GN<N<2*BN*GN时,每次进入Verilog-A/AMS器件评估时,采用分批次进入GPU进行计算,第1次前BN*GN个instance参数的评估将grid设置为GN,block设置为BN;再将剩余的instance参数按照当N<BN或BN<N<BN*GN 时的情景分别设置grid和block的维数。当前线程的索引号计算方式为index = threadIdx.x + blockIdx.x * blockDim.x。gridDim是一个dim3类型,表示网格的大小,一个网格中通常有多个线程块。blockDim是一个dim3类型,表示线程块的大小。上式中blockDim.x表示线程快第一个维度方向上的大小。blockIdx是一个uint3类型,表示一个线程块的索引,一个线程块中通常有多个线程。threadIdx是一个uint3类型,表示一个线程的索引。由此,将Verilog-A/AMS器件编译成CPU和GPU异构平台上执行的代码时,将不同的GPU的编译选项做成配置项,这样可以最大限度的发挥GPU的计算优势。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种CPU与GPU异构平台的电路仿真方法,其特征在于,应用于Verilog-A/AMS电路仿真,包含以下步骤:
A、解析电路网表和Verilog-A/AMS器件;
B、根据步骤A得到的电路信息和Verilog-A/AMS器件信息,预先在GPU上分配电性参数所需的内存,仿真初始化时,将待仿真的Verilog-A/AMS器件所包含的电性参数组传输到GPU;所述电性参数组包含Verilog-A/AMS器件的model参数、instance参数、电压向量和电路拓扑参数;
C、在GPU端进行器件电性参数组的评估计算,评估计算内容包含利用Verilog-A/AMS器件行为的方程式和电压向量,重新计算Verilog-A/AMS器件的电参数雅可比矩阵的stamp信息和电流向量以及电荷向量;根据评估计算结果更新电参数雅可比矩阵与电流向量信息/电荷向量信息;
D、从GPU端传更新后的电参数雅可比矩阵的stamp信息、电流向量信息或电荷向量信息到CPU端;期间将分散在多个instance参数的电参数雅可比矩阵的stamp信息重组为一段连续的内存数据再往CPU端传输;
E、CPU端基于电参数雅可比矩阵、电压向量、电流向量或电荷向量所组成的线性方程组,求解电压向量后更新电压向量;
F、判断步骤E中所得方程组的解的收敛情况:如果收敛则进行下一个仿真点的计算,如果不收敛则将GPU中电性参数组的电压向量替换为步骤E中最新求解的电压向量,继续从步骤C开始执行;
G、判断仿真是否结束:如果仿真未结束,则继续从步骤C开始执行下一个点的仿真计算;如果仿真结束,则程序执行完毕。
2.如权利要求1所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,在步骤A中,利用词法分析器Flex和语法分析器Bsion对Verilog-A/AMS器件和电路网表进行词法解析与语法解析,并生成对应电路模型的语法树。
3.如权利要求1或2所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,在步骤A中,解析待仿真的Verilog-A/AMS器件的表达式,所述表达式为描述Verilog-A/AMS器件行为的方程式,与节点电压向量有关的表达式分配在GPU上计算,与节点电压向量无关的表达式分配在CPU上计算。
4.如权利要求3所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,对语法树进行递归解析,直至所有的根节点为预先定义的器件参数或本地变量。
5.如权利要求3所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,GPU计算所需的参数信息在连续内存块中进行整体存储。
6.如权利要求5所述的一种CPU与GPU异构平台的电路仿真方法,其特征在于,GPU计算所需参数信息的存储包含以下步骤:
A01、解析Verilog-A/AMS器件中的model参数和instance参数定义,统计model参数和instance参数包含的参数名;
B01、解析Verilog-A/AMS器件中的与节点电压向量有关的表达式,统计每个表达式计算所需的参数;
C01、将步骤B01中涉及与节点电压向量相关的表达式中的model参数组成新的一个数组,并通过和步骤A01中解析所得到的model参数名进行匹配,将相对应model参数的值赋值给步骤B01中的model参数名;
D01、将步骤B01中涉及的instance参数组成新的一个数组,并通过和步骤A01中解析所得到的instance参数名进行匹配,将相对应instance参数的值赋值给步骤B01中的instance参数名;
E01、将既不是model参数又不是instance参数的参数记录为本地变量。
7.一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于,用于Verilog-A/AMS电路的自动化仿真,包含以下步骤:
A1、检测计算机上GPU计算平台的安装情况;
A2、待仿真的Verilog-A/AMS器件根据GPU计算平台的安装检测识别结果,进行相应的代码编译:当安装有GPU计算平台时,编译为CPU端和GPU端异构平台执行代码;
当未安装有GPU计算平台时,编译为CPU端上执行代码;
A3、把Verilog-A/AMS器件编译所得的代码,再编译成二进制库,和通用电路仿真器一起组成新的Verilog-A/AMS电路仿真器,进行电路仿真,电路仿真包含如权利要求1所述的一种CPU与GPU异构平台的电路仿真方法。
8.如权利要求7所述的一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于:在步骤A2中,在CPU中以多核并行方式进行计算。
9.如权利要求7或8所述的一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于:将各GPU型号按照对应的计算资源作为编译配置项,以在步骤A2中,识别所述 GPU计算平台对应的GPU型号之后,选择对应型号的配置项内容进行编译。
10.如权利要求9所述的一种CPU与GPU异构平台的电路自动化仿真方法,其特征在于,编译配置包含以下步骤:
A11、解析电路网表,确定待仿真的电路网表中的Verilog-A/AMS器件的instance参数数量,记为N;
A12、查询当前GPU的block和thread最大数目,分别记为BN和GN,并设grid和block均为1维;
A13、当N < BN时,grid设置为1,block设置为N;
当BN < N < BN*GN 时,grid设置为N/BN+1,block设置为BN;
当1*BN*GN < N < 2*BN*GN时,每次进入自定义模型评估时,采用分批次进入GPU进行计算,第1次前BN*GN个instance参数的评估将grid设置为GN,block设置为BN;再将剩余的instance参数按照当N< BN或BN < N < BN*GN 时的情景分别设置grid和block的数目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311748653.3A CN117422047B (zh) | 2023-12-19 | 2023-12-19 | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311748653.3A CN117422047B (zh) | 2023-12-19 | 2023-12-19 | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117422047A CN117422047A (zh) | 2024-01-19 |
CN117422047B true CN117422047B (zh) | 2024-03-15 |
Family
ID=89528855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311748653.3A Active CN117422047B (zh) | 2023-12-19 | 2023-12-19 | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117422047B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012221389A (ja) * | 2011-04-13 | 2012-11-12 | Fuji Electric Co Ltd | 回路シミュレーション方法および回路シミュレーション装置 |
CN103034750A (zh) * | 2011-09-30 | 2013-04-10 | 济南概伦电子科技有限公司 | 可重复电路仿真的方法和系统 |
CN105205191A (zh) * | 2014-06-12 | 2015-12-30 | 济南概伦电子科技有限公司 | 多速率并行电路仿真 |
US9348957B1 (en) * | 2010-10-01 | 2016-05-24 | ProPlus Design Solutions, Inc. | Repetitive circuit simulation |
CN114741204A (zh) * | 2022-05-10 | 2022-07-12 | 吉林大学 | 一种仿真模型的任务分解与并行求解的方法 |
CN116151073A (zh) * | 2023-02-16 | 2023-05-23 | 厦门大学 | 一种基于混合有限元法的集成电路仿真方法及其装置 |
CN116384312A (zh) * | 2023-04-20 | 2023-07-04 | 山东大学 | 一种基于并行异构计算的电路良率分析方法 |
-
2023
- 2023-12-19 CN CN202311748653.3A patent/CN117422047B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9348957B1 (en) * | 2010-10-01 | 2016-05-24 | ProPlus Design Solutions, Inc. | Repetitive circuit simulation |
JP2012221389A (ja) * | 2011-04-13 | 2012-11-12 | Fuji Electric Co Ltd | 回路シミュレーション方法および回路シミュレーション装置 |
CN103034750A (zh) * | 2011-09-30 | 2013-04-10 | 济南概伦电子科技有限公司 | 可重复电路仿真的方法和系统 |
CN105205191A (zh) * | 2014-06-12 | 2015-12-30 | 济南概伦电子科技有限公司 | 多速率并行电路仿真 |
CN114741204A (zh) * | 2022-05-10 | 2022-07-12 | 吉林大学 | 一种仿真模型的任务分解与并行求解的方法 |
CN116151073A (zh) * | 2023-02-16 | 2023-05-23 | 厦门大学 | 一种基于混合有限元法的集成电路仿真方法及其装置 |
CN116384312A (zh) * | 2023-04-20 | 2023-07-04 | 山东大学 | 一种基于并行异构计算的电路良率分析方法 |
Non-Patent Citations (4)
Title |
---|
Analog RFmodel development with Verilog-A;Troyanovsky等;《RadioFrequency integrated Circuits(RFIC)Symposium》;20051231;全文 * |
基于Verilog-A的模拟电路行为模型及仿真;朱樟明, 张春朋, 杨银堂, 付永朝;电子器件;20040115(04);全文 * |
基于Verilog-A的流水线型ADC数字校正技术仿真平台;宫月红;张少君;罗敏;王明雨;刘冰冰;;微处理机;20180415(02);全文 * |
基于单片机的SM3算法优化及Verilog模型验证;曾小波;唐忠彪;焦歆;;电子科技;20150215(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117422047A (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8677334B2 (en) | Parallelization method, system and program | |
CN109143952B (zh) | 可编程逻辑控制器编程语言转换系统 | |
US9377998B2 (en) | Code generation for control design | |
JP4931978B2 (ja) | 並列化処理方法、システム、及びプログラム | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
US7194726B2 (en) | Method for automatically decomposing dynamic system models into submodels | |
CN109032056B (zh) | 可编程逻辑控制器编程语言转换方法 | |
Sottile et al. | Semi-automatic extraction of software skeletons for benchmarking large-scale parallel applications | |
CN112765031A (zh) | 一种群智化漏洞挖掘任务的分解方法 | |
US20110209129A1 (en) | Parallelization method, system and program | |
CN110347588B (zh) | 软件验证方法、装置、计算机设备和存储介质 | |
CN114896755A (zh) | 一种支持模型属性量化评估的指标验证技术 | |
CN117422047B (zh) | 一种cpu与gpu异构平台的电路仿真方法与自动化仿真方法 | |
Sottile et al. | Static analysis techniques for semiautomatic synthesis of message passing software skeletons | |
CN110210046B (zh) | 应用程序及专用指令集处理器一体化敏捷设计方法 | |
CN116893960A (zh) | 代码质量检测方法、装置、计算机设备和存储介质 | |
CN112783736B (zh) | 软件组件的运行体时间监测方法、装置及电子设备 | |
Balbo et al. | On the computation of performance characteristics of concurrent programs using GSPNs | |
US20170109457A1 (en) | Verification of system assertions in simulation | |
Bataineh | Verifying worst-case execution time of timed automata models with cyclic behaviour | |
CN114153750B (zh) | 代码检查方法及装置、代码编写方法、电子设备 | |
US20240201965A1 (en) | Method for generating source code | |
Sharma et al. | Study and Estimation of Existing Software Quality Models to Predict the Reliability of Component-Based Software | |
CN117313373A (zh) | Emt仿真方法、装置、上位机及emt仿真系统 | |
CN117453222A (zh) | 一种多参数公式编译方法及其编译器 |
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 |