Parallel computing simulation acceleration method and device, electronic equipment and storage medium
By decomposing simulation tasks into independent simulation processes and utilizing network sockets and verification intellectual property cores, the problems of slow speed and poor flexibility in parallel computing simulation across multiple computing cards are solved, achieving efficient parallel computing simulation and flexible board management.
Patent Information
- Application Number
- CN202511697248.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-19
- Publication Date
- 2025-12-19
- Estimated Expiration
- 2045-11-19
AI Technical Summary
In existing technologies, parallel computing simulation using multiple computing cards is slow, inefficient, and lacks flexibility, and cannot support hot-swapping of simulation boards.
The simulation task is decomposed into multiple independent simulation processes, including host simulation process and board simulation process, and communication connection is established through network sockets to support parallel operation on different devices or cores. Protocol conversion is performed using the verification intellectual property core.
It achieves true parallel computing simulation, improves simulation efficiency, shortens simulation time, enhances scalability and robustness, and supports hot-swapping and hot-swapping of boards.
Smart Images

Figure CN121168366A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of chip design verification, and in particular to a parallel computing simulation acceleration method and device, an electronic device and a storage medium. BACKGROUND
[0002] In related technologies, when performing Electronic Design Automation (EDA) simulation on parallel computing of multiple computing cards, the actual physical connection mode between the multiple computing cards is simulated, the computing cards are interconnected, and all the computing cards are not independently running multiple simulation tasks, but are uniformly scheduled and managed under the same large simulation program. This simulation method is slow, inefficient, and has poor flexibility.
[0003] Therefore, how to improve the efficiency of parallel computing simulation of multiple computing cards has become a technical problem to be solved in the industry. SUMMARY
[0004] The present application provides a parallel computing simulation acceleration method and device, an electronic device and a storage medium, which are used to solve the technical problem of how to improve the efficiency of parallel computing simulation of multiple computing cards.
[0005] The present application provides a parallel computing simulation acceleration method, which comprises: decomposing a current simulation task into multiple simulation processes; the multiple simulation processes comprise at least one host simulation process and at least one board card simulation process; each simulation process is independently run; establishing a network socket-based communication connection between each simulation process; transmitting simulation data and control instructions between each simulation process through the communication connection.
[0006] In some embodiments, the method further comprises: configuring a verification intellectual property core inside each simulation process; the verification intellectual property core is used to convert a data packet received through the communication connection into a protocol operation of a target hardware interface, and / or convert the protocol operation of the target hardware interface into a data packet for transmission through the communication connection; the target hardware interface is a hardware interface configured by the host and / or a hardware interface configured by the board card.
[0007] In some embodiments, the protocol operation of the target hardware interface comprises a high-speed serial computer expansion bus protocol operation.
[0008] In some embodiments, each simulation process is independently run in the same physical computing device.
[0009] In some embodiments, each simulation process is independently running in different physical computing devices; the physical computing devices are connected through a network.
[0010] In some embodiments, the method comprises: detecting a network socket connection request sent by a current board card simulation process while each simulation process is running; the current board card simulation process is a newly added board card simulation process in the current simulation task; In the case of detecting the network socket connection request, a network socket-based communication connection is established with the current board card simulation process in response to the network socket connection request.
[0011] In some embodiments, the method comprises: detecting a network socket connection request sent by a current board card simulation process while each simulation process is running; the current board card simulation process is a newly added board card simulation process in the current simulation task; In the case of detecting the network socket connection request, a network socket-based communication connection is established with the current board card simulation process in response to the network socket connection request.
[0012] The application provides a parallel computing simulation acceleration device, comprising: a decomposition module for decomposing a current simulation task into a plurality of simulation processes; the plurality of simulation processes comprises at least one host simulation process and at least one board card simulation process; each simulation process is independently running; a communication module for establishing a network socket-based communication connection between each simulation process; a simulation module for transmitting simulation data and control instructions between each simulation process through the communication connection.
[0013] The application provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor; when the processor executes the computer program, the parallel computing simulation acceleration method is realized.
[0014] The application provides a non-transitory computer readable storage medium having a computer program stored thereon; when the computer program is executed by a processor, the parallel computing simulation acceleration method is realized.
[0015] The parallel computing simulation acceleration method, device, electronic equipment and storage medium provided by the application divide a huge simulation task into multiple independently running simulation processes, including a mainboard simulation process and a board card simulation process, and establish a communication connection between the simulation processes through a network socket; different simulation processes can be scheduled to different cores or devices for simultaneous running, realizing true parallel computing simulation, greatly improving simulation efficiency and shortening simulation time; since the simulation processes run independently, the number of board cards can be flexibly simulated to be increased or decreased, and failure of a single board card simulation process will not cause the entire simulation system to crash, enhancing the scalability and robustness of parallel computing simulation. BRIEF DESCRIPTION OF DRAWINGS
[0016] The accompanying drawings, which are incorporated herein and form part of the specification, illustrate embodiments consistent with the present application and, together with the description, further serve to explain the principles of the application.
[0017] In order to more clearly illustrate the technical solutions in the application or the prior art, the accompanying drawings needed in the embodiments or prior art description will be briefly introduced. Obviously, the accompanying drawings in the following description are some embodiments of the application, and those skilled in the art can also obtain other accompanying drawings according to these accompanying drawings without creative labor.
[0018] Figure 1 is a flowchart of the parallel computing simulation acceleration method provided by the application.
[0019] Figure 2 is a parallel computing simulation diagram in the related art provided by the application.
[0020] Figure 3 is one of the parallel computing simulation diagrams provided by the application.
[0021] Figure 4 is another of the parallel computing simulation diagrams provided by the application.
[0022] Figure 5 is a third of the parallel computing simulation diagrams provided by the application.
[0023] Figure 6 is a structural diagram of the parallel computing simulation acceleration device provided by the application.
[0024] Figure 7 is a structural diagram of the electronic equipment provided by the application. DETAILED DESCRIPTION
[0025] In the following, the technical solutions in the embodiments of the present application will be described clearly and completely in conjunction with the drawings in the embodiments of the present application, so that those skilled in the art can better understand the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work should fall within the scope of protection of the present application.
[0026] It should be noted that the terms "first", "second" and the like in the present application are used to distinguish similar objects, and do not necessarily indicate a specific order or a chronological sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device that includes a series of steps or units or modules does not necessarily have to be limited to those steps or units or modules clearly listed, but can include other steps or units or modules that are not clearly listed or inherent to these processes, methods, products or devices.
[0027] The related art parallelly calculates multiple computing cards, each computing card does not independently run a simulation task, but is uniformly scheduled and managed under the same large simulation program, the simulation speed is slow, the simulation efficiency is low, and the hot plug of the simulation simulation board card is not supported, and increasing or reducing any computing card needs the whole simulation program to be re-run.
[0028] In order to solve the problems of the related art, Figure 1 is a flowchart of the parallel computing simulation acceleration method provided by the present application, as Figure 1 shown, the method comprises steps 110, 120 and 130.
[0029] Step 110, the current simulation task is divided into multiple simulation processes; the multiple simulation processes include at least one host simulation process and at least one board card simulation process; each simulation process is independently run.
[0030] Specifically, the execution subject of the parallel computing simulation acceleration method provided by the embodiments of the present application is a parallel computing simulation acceleration device or system. The device can be realized by software, such as a parallel computing simulation acceleration program running in a computer system, or by hardware, such as a computer or server executing the parallel computing simulation acceleration method.
[0031] The board card in the embodiments of the present application is a computing card, which is a high-performance hardware module specially designed for specific computing tasks, and is a core engine of parallel computing, such as a general-purpose graphics processing unit (GPGPU) and the like.
[0032] The current simulation task is used to simulate parallel computing performed on multiple board cards. In parallel computing, a host is used to perform tasks such as control program flow, logical judgment, data preparation and scheduling, result processing and display, and the like; and a board card is used to perform large-scale and highly parallel computing tasks.
[0033] A process refers to an execution instance of a program, and has an independent memory address space, a data stack and other system resources. Unlike related technologies, the embodiments of the present application decompose the current simulation task into multiple simulation processes, and no longer compiles and runs simulation models of the host and all board cards in a unified program instance, but starts independent program instances for main logic units in the system.
[0034] The simulation processes obtained by decomposition include at least two types. One type is a host simulation process. The process is used to simulate the behavior of the host. For example, the host simulation process can include simulation models of a host processor, memory, an operating system, a driver program and the like, and the main function is to initiate access to the board card, data transmission requests and execution of upper-layer application software. The other type is a board card simulation process. The process is used to simulate the behavior of a single physical board card.
[0035] In a simulation task including multiple board cards, each board card can correspond to an independent board card simulation process. For example, if a simulation task needs to simulate a host and eight board cards, the task can be decomposed into one host simulation process and eight independent board card simulation processes, totaling nine simulation processes.
[0036] The host simulation process and the board card simulation process are independently run. Each simulation process has an independent memory space; is independently scheduled by an operating system, and can be allocated to different cores and executed in parallel; and the start, pause or abnormal crash of one simulation process does not necessarily cause interruption of other simulation processes.
[0037] Step 120, a network socket-based communication connection is established between the simulation processes.
[0038] Specifically, after the current simulation task is decomposed into multiple independent processes, a mechanism needs to be established to realize data interaction between the processes, otherwise the simulation cannot be performed. The embodiments of the present application use a network socket (Socket) as a communication means.
[0039] A network socket is a standard interface in computer network communication, which allows programs in different processes (even in different physical machines) to exchange data through network protocols. Each socket is usually uniquely identified by an Internet Protocol (IP) address and a port number.
[0040] The network socket-based communication connection is established between the simulation processes, including the communication connection between the host simulation process and the board simulation process, and the communication connection between the board simulation processes.
[0041] In a specific embodiment, a Client / Server model can be used to establish the network socket-based communication connection between the simulation processes. Taking the communication connection between the host simulation process and the board simulation process as an example, the host simulation process can be configured as a Server. At the beginning of simulation, the host simulation process is started first and detects on one or more predefined ports, waiting for the connection request from the board simulation process. Then, each board simulation process is started as a Client and initiates a network socket connection request to the host simulation process according to the configuration information (such as the IP address and port number of the machine where the host simulation process is located). After receiving the request, the host simulation process completes the handshake process, thereby establishing a point-to-point communication connection between the host and each board.
[0042] The embodiment of the present application selects the network socket for communication, which has the following effects compared with the related art: (1) The network socket helps to decouple the simulation processes, and the crash of a single simulation process will not affect the running of other simulation processes, thus helping to support the hot plug of the simulation board; (2) The network socket supports cross-machine device communication, and the simulation task can be distributed to different physical servers, allowing the resources of a computing cluster composed of different physical servers to be used to complete a simulation task together, and completely breaking the single-machine performance bottleneck; (3) The application interface of the network socket is standardized in all mainstream operating systems and programming languages, which simplifies the debugging of the communication process, facilitates the checking of when specific instructions or data are sent and whether they are correctly received, and improves the efficiency of problem positioning and analysis; (4) The network socket can seamlessly integrate the host simulation model or the board simulation model written in any language and on any platform into the simulation system, and supports mixed simulation of different sources of intellectual property cores.
[0043] In step 130, simulation data and control instructions are transmitted between the simulation processes through the communication connection.
[0044] Specifically, in parallel computing simulation, the communication connection established by the network socket can transmit simulation data and control instructions between the simulation processes to execute the current simulation task.
[0045] The simulation data refers to the data transmitted between the host and the board card or between the board cards in the simulation process. For example, the data block to be written into the memory of the board card by the host, or the state information or the calculation result read from the board card.
[0046] The control instruction refers to the command for coordinating and controlling the simulation process. For example, the read register instruction sent by the host simulation process to the board card simulation process, and the register address is specified; or the start data transmission instruction is sent, and the source address, target address and length parameters of the transmission are attached.
[0047] The parallel computing simulation acceleration method provided by the embodiment of the application divides the huge simulation task into multiple independent simulation processes, including the host simulation process and the board card simulation process, and establishes a communication connection between the simulation processes through the network socket; so that different simulation processes can be scheduled to different cores or devices to run simultaneously, realizing real parallel computing simulation, greatly improving the simulation efficiency and shortening the simulation time; since each simulation process runs independently, the number of board cards can be flexibly simulated to be increased or decreased, and the failure of a single board card simulation process will not cause the entire simulation system to crash, enhancing the scalability and robustness of the parallel computing simulation.
[0048] It should be noted that each embodiment of the application can be freely combined, the order can be changed or executed alone, and does not need to rely on or depend on a fixed execution order.
[0049] In some embodiments, the method further comprises: configuring the verification intellectual property core inside each simulation process; The verification intellectual property core is configured to convert the data packet received through the communication connection into a protocol operation of the target hardware interface, and / or convert the protocol operation of the target hardware interface into a data packet for transmission through the communication connection; The target hardware interface is a hardware interface configured by the host and / or a hardware interface configured by the board card.
[0050] Specifically, Verification Intellectual Property (VIP), also known as verification IP core, is a reusable, pre-verified complex verification component used for simulating and verifying a specific standard interface protocol. It can be a software library, a hardware behavior model, or a combination of both. For example, there are corresponding verification IP cores for Peripheral Component Interconnect Express (PCIe) protocol, Advanced eXtensible Interface (AXI) protocol, Ethernet protocol, etc.
[0051] In embodiments of the present application, verification IP cores are instantiated inside each simulation process. For example, in a host simulation process, a verification IP core for simulating the interface behavior on the host side can be configured; in each board simulation process, a verification IP core for simulating the interface behavior on the board side can be configured. Embodiments of the present application do not make specific limitations on the types and quantities of verification IP cores.
[0052] Target hardware interface refers to the hardware interface configured by the host and / or the hardware interface configured by the board. Verification IP core is used to implement the conversion of simulation data or control instructions to operations, to replace the high-speed interface between boards with virtual channels, and to convert complex physical signal interaction into more efficient and flexible logical data interaction, thereby bypassing some physical layer bottlenecks.
[0053] When control commands are issued or simulation data is received, the verification IP core can convert the data packet received through the communication connection into protocol operations of the target hardware interface. Protocol operation refers to a series of bottom-layer signal interaction events that conform to the protocol specification and have a timing relationship on the target hardware interface. For example, a PCIE memory write operation involves a series of complex simulation behaviors such as generation of transaction layer data packet, sequence number verification of data link layer, and encoding and serial transmission on differential signal lines of physical layer.
[0054] In a specific embodiment, when the verification IP core of a board simulation process receives a high-level data packet (e.g., a data packet containing write data) through a network socket, the verification IP core parses the data packet. Subsequently, the protocol engine inside the verification IP core starts and "translates" this abstract command into a series of specific protocol operations on the target hardware interface. The verification IP core drives the interface signals of the to-be-simulated design connected thereto to accurately simulate a complete data write process that conforms to the protocol specification.
[0055] When sending simulation data, the verification IP core converts protocol operations of the target hardware interface into data packets for sending through the communication connection.
[0056] In one specific embodiment, when the design to be simulated initiates an action that requires communication with the outside world (for example, the board needs to initiate data transmission to the host after completing the calculation), it will generate a series of protocol operations on its target hardware interface. The verification IP core connected to the interface will capture these protocol operations and identify the protocol events represented by the series of underlying signal changes. After identifying the protocol events, the verification IP core will abstract and encapsulate them into a high-level, general-purpose data packet that contains information such as event type and key parameters. Finally, the verification IP core sends this data packet to the corresponding simulation process (for example, the host simulation process) through the network socket.
[0057] The parallel computing simulation acceleration method provided by the embodiments of the present application configures a verification IP core in each simulation process, separates the high-level, cross-process, network socket-based general-purpose message passing mechanism from the underlying, in-process, specific hardware protocol-based accurate simulation, and converts complex physical signal interaction into more efficient and flexible logical data interaction, thereby improving simulation efficiency and shortening simulation time.
[0058] In some embodiments, the protocol operations of the target hardware interface include high-speed serial computer expansion bus protocol operations.
[0059] Specifically, in a computer system, the connection between the host and the high-performance board usually adopts a high-speed serial bus.
[0060] Correspondingly, the protocol operations of the target hardware interface can include high-speed serial computer expansion bus (PCIe) protocol operations.
[0061] The parallel computing simulation acceleration method provided by the embodiments of the present application, the verification IP core can convert the protocol operations including high-speed serial computer expansion bus protocol operations, can simulate a series of behaviors conforming to the PCIe standard specification on the PCIe interface of the design to be simulated, and make the verification engineer not need to consider the details of the underlying PCIe protocol, thereby improving the practicality and efficiency of parallel computing simulation.
[0062] In some embodiments, each simulation process is independently run in the same physical computing device.
[0063] Specifically, each simulation process can be independently run in the same physical computing device, such as a physical server, workstation or high-performance personal computer with powerful computing resources. The device has multiple processor cores, large memory and a standard operating system.
[0064] In one specific embodiment, all the required simulation processes can be started automatically by writing a script. For example, the script can first start the host simulation process, and then start a loop of the board simulation processes according to the number of the board to be simulated.
[0065] Since all the processes share the processor resources and memory resources of the same physical computing device, the operating system is responsible for allocating the resources among them. The user or system administrator can optimize the performance through the tools of the operating system, for example, binding different simulation processes to different processor cores to avoid additional overhead due to the contention for processor resources among processes, thereby maximizing the efficiency of parallel execution.
[0066] When all the simulation processes run on the same physical machine, the network socket communication among them becomes efficient. The communication data packets do not need to pass through the physical network card and external network switch, but are routed through the local loopback interface of the operating system kernel.
[0067] The parallel computing simulation acceleration method provided by the embodiments of the present application can make full use of the computing power of a multi-core computer, decompose different simulation tasks into different processes and bind them to different processor cores, and achieve efficient parallel processing. Since all the simulation processes run on the same physical machine, the low latency and high bandwidth of inter-process communication are ensured, which is very suitable for application scenarios with centralized computing resources and high simulation performance requirements.
[0068] In some embodiments, each simulation process is independently run in a different physical computing device; the physical computing devices are connected through a network.
[0069] Specifically, each simulation process can be independently run in a different physical computing device. Different physical computing devices can be multiple servers located in the same rack, multiple workstations distributed in the same local area network, or even multiple computers distributed in different geographic locations and interconnected through a wide area network or a dedicated network. Each physical computing device has an independent processor, memory and operating system. These physical computing devices can communicate with each other through standard network protocols.
[0070] Each simulation process can be flexibly deployed according to the resource status of each physical computing device and the characteristics of the simulation task. For example, the host simulation process with the heaviest computing and communication load can be deployed on a server with the strongest performance. Then, multiple board simulation processes can be grouped and deployed on other multiple servers. When each simulation process is started, it needs to be explicitly informed of the IP address and port number of the physical computing device where the communication counterpart (for example, the host simulation process) is located.
[0071] The parallel computing simulation acceleration method provided in the embodiments of the present application can effectively aggregate the scattered computing resources, form a unified and powerful simulation computing cluster, and improve the efficiency of parallel computing simulation.
[0072] In some embodiments, the method comprises: While the respective simulation processes are running, a network socket connection request sent by a current board card simulation process is detected; the current board card simulation process is a newly added board card simulation process in a current simulation task; In the case that the network socket connection request is detected, a network socket-based communication connection is established with the current board card simulation process in response to the network socket connection request.
[0073] Specifically, once the parallel computing simulation in the related art starts, the topology structure (i.e., which devices are included) of the simulation system is fixed and cannot be dynamically changed at runtime. The parallel computing simulation acceleration method in the embodiments of the present application can support board card hot plug-in.
[0074] At the start of simulation, the host simulation process can only establish a connection with a part of known board card simulation processes. However, in addition to processing the established connection (the respective simulation processes of the established connection continue to run), the host simulation process also continuously maintains a detection state on its port. The network protocol stack of the operating system automatically processes new connection requests, and when a new client attempts to connect, the detection process (i.e., the host simulation process) is awakened or notified.
[0075] The current board card simulation process is a newly added board card simulation process in a current simulation task. The process does not exist at the start of the initial simulation task, but is started manually or through a script by a user after the simulation is performed to a certain time.
[0076] When the host simulation process detects the network socket connection request sent by the current board card simulation process, it performs a standard network socket acceptance operation. The operation creates a new dedicated socket, which is specially used for subsequent one-to-one communication with the current board card simulation process. The original detection socket continues to maintain a detection state to receive more possible new connection requests at any time.
[0077] After the communication connection is established, the host simulation process can dynamically add the new communication link and the corresponding board card information to the device list managed internally. Subsequently, the upper-layer software (such as a simulated operating system or a test program) of the host simulation process can discover the current board card and start interacting with the board card for simulation data and control instructions, as if the board card existed initially.
[0078] The parallel computing simulation acceleration method provided in the embodiments of the present application realizes the real hardware hot insertion function at the simulation level, which greatly improves the flexibility and authenticity of the simulation.
[0079] In some embodiments, the method comprises: While the respective simulation processes are running, the network socket state corresponding to each board card simulation process is continuously detected; In the case where the network socket corresponding to any board card simulation process is disconnected, the system resource corresponding to the network socket corresponding to the board card simulation process is released.
[0080] Specifically, the parallel computing simulation acceleration method in the embodiments of the present application can also support board card hot plug-out.
[0081] The host simulation process maintains a list of all currently connected board card simulation processes, and a dedicated socket for communication with each board card, and continuously detects the network socket state corresponding to each board card simulation process.
[0082] There can be two cases for the disconnection of the network socket corresponding to any board card simulation process. The first case is that the user actively plugs out. In order to simulate hot plug-out, the user manually and normally terminates a certain board card simulation process during simulation. The process will actively close its network socket before exiting, thereby causing the host to detect disconnection. The second case is abnormal disconnection. A certain board card simulation process abnormally crashes due to internal simulation logic errors, physical machine downtime or network failure, etc. This also causes the network socket connection corresponding to the process to be determined as disconnected by the operating system kernel.
[0083] The host simulation process continuously detects the network socket state corresponding to each board card simulation process while the respective simulation processes are running. In the case where the network socket corresponding to any board card simulation process is disconnected, the host simulation process can determine that the board card simulation process is likely to be caused by the user unplugging the board card, release the system resource corresponding to the network socket corresponding to the board card simulation process, and remove the board card from the active device list maintained internally.
[0084] During this process, the communication between the host simulation process and other board card simulation processes is not affected at all and continues normally.
[0085] The parallel computing simulation acceleration method provided in the embodiments of the present application successfully simulates the hardware "hot plug-out" function through continuous detection of the network socket state and the corresponding resource release mechanism, so that the simulation system can handle the dynamic removal of the simulation unit, and the fault tolerance, robustness and high availability of the simulation system are improved.
[0086] The following example, simulating a parallel computing system consisting of one host and two boards, illustrates the parallel computing simulation acceleration method provided in this application.
[0087] Figure 2 This is a schematic diagram of parallel computing simulation in the related technology provided in this application, such as... Figure 2 As shown, the simulation methods in related technologies require building a parallel computing environment consisting of one host and two boards. This necessitates pre-connecting all hardware according to the configuration using hardware wiring, and then compiling it into a single simulation program for simulation. This results in slow simulation speed and low efficiency. Since the simulation runs in the same environment regardless of the number of boards, the simulation speed decreases progressively with the increase in the number of boards.
[0088] Furthermore, it does not support hot-swapping of simulation boards. Adding or removing any board requires readjusting the topology of the simulation system and restarting the entire simulation program.
[0089] After adopting the parallel computing simulation acceleration method provided in this application, a huge simulation task can be decomposed into multiple independently running simulation processes, including motherboard simulation processes and board simulation processes, and communication connections can be established between each simulation process through network sockets; so that different simulation processes can be scheduled to run simultaneously on different devices.
[0090] Figure 3 This is one of the parallel computing simulation diagrams provided in this application, such as... Figure 3 As shown, you can first start the host simulation process and then wait for the board simulation process to start.
[0091] Figure 4 This is the second parallel computing simulation diagram provided in this application, as shown below. Figure 4 As shown, the first board emulation process starts. This process can run on any device with a network connection to the host. The process requests a connection from the host emulation process. After connecting with the host emulation process, the host assigns an address to the board for socket communication.
[0092] Figure 5 This is the third parallel computing simulation diagram provided in this application, such as... Figure 5 As shown, the first The board simulation process starts. Similar to the initial board startup, this process can run on any device with a network connection to the host and other boards. The process requests a connection from the host emulation process. After connecting, the host assigns an address to the board for socket communication. Simultaneously, it also requests connections from other board emulation processes to obtain their communication addresses.
[0093] A verification intellectual property (IP) core is configured in each simulation process.
[0094] After receiving a command or data from the host simulation process, the verification IP core in each board card simulation process converts the command or data into a corresponding protocol operation and sends the operation to the board card simulation process.
[0095] After receiving a command or data sent to the host simulation process, the verification IP core in each board card simulation process packs the command or data into socket communication data and sends the data to the host simulation process.
[0096] After receiving a command or data from another board card simulation process, the verification IP core in each board card simulation process converts the command or data into a corresponding protocol operation and sends the operation to the board card simulation process.
[0097] After receiving a command or data sent to another board card simulation process, the verification IP core in each board card simulation process packs the command or data into socket communication data and sends the data to the other board card simulation process.
[0098] In related technologies, the simulation speed linearly decreases with the increase of the number of board cards. However, by using the method provided in the present application, the simulation speed is basically not affected by the increase of the number of board cards. In a specific embodiment, the EDA simulation of a graphics processing unit (GPU) takes days to simulate a test scene. Assuming that it takes one day to simulate a scene of one GPU, for a scene simulation of eight GPUs, the multi-card simulation in related technologies takes eight days. By using the method provided in the present application, the simulation can be completed in only one day, greatly increasing the simulation speed.
[0099] The device provided in the embodiments of the present application is described below. The device described below can be referred to in conjunction with the method described above.
[0100] Figure 6 is a structural schematic diagram of a parallel computing simulation acceleration device provided in the present application, as shown in Figure 6 The device includes: A decomposition module 610 is configured to decompose a current simulation task into a plurality of simulation processes. The plurality of simulation processes includes at least one host simulation process and at least one board card simulation process. Each simulation process is independently run. A communication module 620 is configured to establish a network socket-based communication connection between the simulation processes. A simulation module 630 is configured to transmit simulation data and control instructions between the simulation processes through the communication connection.
[0101] The parallel computing simulation acceleration device provided in this application decomposes a large simulation task into multiple independently running simulation processes, including a motherboard simulation process and a board simulation process, and establishes communication connections between each simulation process through network sockets. This allows different simulation processes to be scheduled to run simultaneously on different cores or devices, realizing true parallel computing simulation, greatly improving simulation efficiency and shortening simulation time. Since each simulation process runs independently, it can flexibly simulate adding or removing boards, and the failure of a single board simulation process will not cause the entire simulation system to crash, enhancing the scalability and robustness of parallel computing simulation.
[0102] Figure 7 This is a schematic diagram of the structure of the electronic device provided in this application, such as... Figure 7 As shown, the electronic device may include a processor 710, a communications interface 720, a memory 730, and a communications bus 740, wherein the processor 710, communications interface 720, and memory 730 communicate with each other via the communications bus 740. The processor 710 can call logical commands stored in the memory 730 to execute the methods described in the above embodiments, for example: The current simulation task is decomposed into multiple simulation processes; the multiple simulation processes include at least one host simulation process and at least one board simulation process; each simulation process runs independently; a network socket-based communication connection is established between the simulation processes; simulation data and control commands are transmitted between the simulation processes through the communication connection.
[0103] Furthermore, the logical commands in the aforementioned memory can be implemented as software functional units and sold or used as independent products, and can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several commands to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0104] The processor in the electronic device provided by the embodiments of the present application can call the logical instructions in the memory to implement the above method, the specific implementation manners of which are consistent with the foregoing method implementation manners, and the same beneficial effects can be achieved, which will not be described here again.
[0105] The embodiments of the present application further provide a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the method provided by the above embodiments.
[0106] The specific implementation manners of which are consistent with the foregoing method implementation manners, and the same beneficial effects can be achieved, which will not be described here again.
[0107] The embodiments of the present application provide a computer program product, which includes a computer program, and the computer program is executed by a processor to implement the above method.
[0108] The device embodiments described above are only schematic, wherein the units described as separated components can or can not be physically separated, and the components displayed as units can or can not be physical units, that is, they can be located in one place, or can be distributed on multiple network units. Part or all of the modules can be selected according to actual needs to achieve the purpose of the embodiments. Those skilled in the art can understand and implement without creative labor.
[0109] Through the description of the above embodiments, those skilled in the art can clearly understand that the embodiments can be realized by means of software and necessary universal hardware platforms, and of course, can also be realized by hardware. Based on such understanding, the above technical solutions can be embodied in the form of software products, which can be stored in a computer readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and include a number of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the methods described in each embodiment or some parts of the embodiments.
[0110] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement to some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.
Claims
1. A parallel computing simulation acceleration method, characterized by, The method comprises: decomposing a current simulation task into a plurality of simulation processes; the plurality of simulation processes comprises at least one host simulation process and at least one board card simulation process; each simulation process is independently run; a network socket-based communication connection is established between each simulation process; simulation data and control instructions are transmitted between each simulation process through the communication connection.
2. The parallel computing simulation acceleration method of claim 1, wherein, The method further comprises: an authentication intellectual property core is configured inside each simulation process; the authentication intellectual property core is used to convert a data packet received through the communication connection into a protocol operation of a target hardware interface, and / or convert a protocol operation of the target hardware interface into a data packet for transmission through the communication connection; the target hardware interface is a hardware interface configured for the host and / or a hardware interface configured for the board card.
3. The parallel computing simulation acceleration method of claim 2, wherein, The protocol operation of the target hardware interface comprises a high-speed serial computer expansion bus protocol operation.
4. The parallel computing simulation acceleration method of claim 1, wherein, Each simulation process is independently run in the same physical computing device.
5. The parallel computing simulation acceleration method of claim 1, wherein, Each simulation process is independently run in different physical computing devices; the physical computing devices are connected through a network.
6. The parallel computing simulation acceleration method according to any one of claims 1 to 5, characterized in that, The method comprises: while each simulation process is running, a network socket connection request sent by a current board card simulation process is detected; the current board card simulation process is a newly added board card simulation process in the current simulation task; in a case where the network socket connection request is detected, a network socket-based communication connection is established with the current board card simulation process in response to the network socket connection request.
7. The parallel computing simulation acceleration method according to any one of claims 1 to 5, characterized in that, The method comprises: while each simulation process is running, a network socket state corresponding to each board card simulation process is continuously detected; in a case where a network socket corresponding to any board card simulation process is disconnected, a system resource corresponding to the network socket corresponding to the any board card simulation process is released.
8. A parallel computing simulation acceleration device, comprising: The method comprises: a decomposition module configured to decompose a current simulation task into a plurality of simulation processes; the plurality of simulation processes comprises at least one host simulation process and at least one board card simulation process; each simulation process is independently run; a communication module configured to establish a network socket-based communication connection between each simulation process; a simulation module configured to transmit simulation data and control instructions between each simulation process through the communication connection.
9. An electronic device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, The processor executes the computer program to implement the parallel computing simulation acceleration method of any one of claims 1 to 7. 10.A non-transitory computer-readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement the parallel computing simulation acceleration method of any one of claims 1 to 7.
Citation Information
Patent Citations
Simulation method and simulation device of integrated circuit, and storage medium
CN118114608A
Analog simulation calculation method based on multiple modules
CN119127483A
Multi-core parallel simulation method and device and electronic equipment
CN119938311A
Multi-channel simulation image generation system based on FPGA parallel compression
CN119991935A
Wafer-level chip simulation method, device and equipment and storage medium
CN120317210A