An evaluation system supporting massive brain-like computing communication performance

By designing an evaluation system that supports the communication performance of large-scale neuromorphic computing, the problem of evaluation difficulties caused by differences in communication library interfaces is solved, and unified evaluation and performance verification of different communication libraries is achieved, supporting testing of various hardware and scenarios.

CN120234217BActive Publication Date: 2026-04-24CHINA NANHU ACAD OF ELECTRONICS & INFORMATION TECH
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA NANHU ACAD OF ELECTRONICS & INFORMATION TECH
Filing Date
2023-12-28
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

Existing communication library interfaces vary greatly and lack a unified evaluation system, making it difficult to effectively evaluate the communication performance of distributed applications. This is especially true in large-scale brain simulations, where existing testing methods require significant computational resources and are time-consuming.

Method used

An evaluation system supporting the communication performance of large-scale neuromorphic computing was designed, including an evaluation layer, an interface layer, and a communication library layer. The system tests the communication time of different communication libraries through a unified interface, and conducts tests in simulated and real-world scenarios, covering brain simulation, deep learning, and high-performance computing scenarios.

Benefits of technology

It enables unified evaluation of different communication libraries, allowing verification of communication technology solutions without actual application scenarios, fully validating the performance of communication libraries, and supporting testing of various hardware and communication libraries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120234217B_ABST
    Figure CN120234217B_ABST
Patent Text Reader

Abstract

The application discloses a kind of support massive brain-like computing communication performance evaluation system, and evaluation layer test module carries out basic test, simulation scene, real scene test;Basic test submodule carries out correctness test and performance test to bottom layer hardware, simulation scene submodule carries out brain simulation simulation scene test, deep learning simulation scene test and high-performance computing simulation scene test to bottom layer hardware;Real scene test submodule carries out brain simulation real scene test, deep learning real scene test and high-performance computing real scene test to bottom layer hardware;Interface layer test module carries out the interface of bottom layer hardware communication library to obtain uniform interface to realize the communication between two communication entities or realize the collective communication between multiple communication entities;Communication library layer test module utilizes uniform interface test to bottom layer hardware communication back end under various communication interfaces Communication delay and communication time consumption under various application scenarios.The present application can utilize uniform interface to test different communication library.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to distributed computer system technology, and in particular to an evaluation system that supports large-scale neuromorphic computing communication performance. Background Technology

[0002] Because a single chip has limited storage space and cannot accommodate massive amounts of data and extremely large models—for example, a single chip cannot hold a large-scale brain model—a multi-chip distributed system platform is needed for model training and simulation.

[0003] A distributed system is a computer system architecture that distributes tasks and data across multiple independent computers or servers for processing. By distributing tasks and data across multiple nodes, distributed systems offer higher availability. Even if one node fails or breaks down, other nodes can continue operating, ensuring system continuity. Distributed systems can expand their processing power and storage capacity by adding more computer nodes. This horizontal scaling approach can meet growing demands without requiring major changes to the entire system. Distributed systems can share resources (such as processing power, storage space, and bandwidth) across multiple nodes. This fully utilizes the resources of each node, improving overall efficiency and performance. Distributed systems achieve redundancy and backup by replicating data and tasks across different nodes. When a node fails, backup data or tasks can be obtained from other nodes, ensuring system reliability and fault tolerance. Distributed systems can dynamically adjust and reconfigure nodes according to actual needs to adapt to different workloads and changing requirements. This flexibility makes the system more adaptable and scalable. Distributed systems can improve overall performance and response speed by assigning tasks to the nearest node, reducing data transmission and network latency.

[0004] One of the core issues in building efficient distributed systems is communication between chips and between servers. Excessive communication latency between system members can severely impact overall system performance, even leading to system crashes. However, current communication systems developed by various manufacturers have significantly different interfaces and inconsistent usage methods, making it difficult to directly and effectively evaluate and compare the performance of communication solutions when designing distributed applications. Therefore, there is currently a lack of a unified communication performance evaluation system to assess the merits of designed distributed applications. This is particularly true for large-scale brain simulation evaluation, which currently requires substantial computing hardware resources and involves very long initialization and testing times.

[0005] Currently, common message passing interface libraries include: Open MPI (Open Message Passing Interface), an open-source message passing interface library that enables developers to write high-performance, scalable parallel computing programs that can perform parallel computations in distributed memory systems. It is widely used in scientific computing, large-scale data processing, and parallel algorithm research, and is an important parallel computing tool.

[0006] NCCL (NVIDIA Collective Communications Library) is a high-performance communication library developed by NVIDIA, specifically designed for data communication operations in parallel computing. NCCL aims to optimize communication performance in multi-GPU systems, providing a set of efficient communication primitives that can significantly accelerate the process of transferring data between multiple GPUs. It can significantly improve the performance and efficiency of parallel computing tasks, making it easier to achieve high-throughput and low-latency data transfer in large-scale parallel computing.

[0007] BCCL (Brain-like Chip Collective Communications Library) is a collection of communication libraries for neuromorphic chips. Neuromorphic chips are artificial neural network chips that mimic the structure and function of the human brain. They aim to simulate and replicate the connections and information transmission between neurons in the brain to achieve cognitive and intelligent abilities similar to the human brain. BCCL provides communication primitives between neuromorphic chips, enabling communication between them.

[0008] Different communication libraries are used in different ways. For example, NCCL might use ncclGroupStart() and ncclGroupEnd(), while Open MPI doesn't have corresponding interfaces. This necessitates writing different test programs for different communication libraries. This presents significant challenges for testing our designed distributed application solutions, making it difficult to decide which communication library and communication process to use in distributed applications. Currently, evaluations of communication libraries only include basic correctness verification and performance verification of communication latency when sending a certain amount of data. Effective scenario testing is lacking, failing to demonstrate the performance of communication libraries in real-world applications. Summary of the Invention

[0009] To address the technical problem that different hardware has its own communication library with different interfaces, resulting in a lack of a unified evaluation system, this invention proposes an evaluation system that supports the communication performance of large-scale neuromorphic computing.

[0010] This invention provides an evaluation system for supporting the communication performance of large-scale neuromorphic computing, comprising: an evaluation layer testing module, an interface layer testing module, and a communication library layer testing module, wherein...

[0011] The evaluation layer testing module includes a basic testing submodule, a simulated scenario submodule, and a real-world scenario testing submodule;

[0012] The basic testing submodule performs correctness and performance tests on the underlying hardware;

[0013] The simulation scenario submodule performs brain simulation scenario testing, deep learning simulation scenario testing, and high-performance computing simulation scenario testing on the underlying hardware.

[0014] The real-world scenario testing submodule performs real-world scenario testing on the underlying hardware, including brain simulation, deep learning, and high-performance computing.

[0015] The interface layer testing module unifies the interfaces between the underlying hardware communication libraries to obtain a unified interface, which enables point-to-point communication between two communication entities or collective communication between multiple communication entities.

[0016] The communication library layer testing module targets various underlying hardware communication libraries and uses a unified interface to test the communication latency of the underlying hardware communication backend under various communication interfaces and the communication time consumption under various application scenarios.

[0017] Furthermore, the specific process of the correctness test performed by the basic test submodule includes: for point-to-point communication mode, the basic test submodule tests whether point-to-point communication can realize the transmission of data from one communication entity to another, and whether the transmitted data is correct; for aggregated communication mode, the basic test submodule tests whether the entities participating in aggregated communication send and receive the correct data according to the given aggregated communication rules.

[0018] The specific process of performance testing in the basic testing submodule includes: taking the amount of communication data, preheating communication test, and actual number of communication as inputs, and testing the communication latency generated when the communicating entity communicates under the corresponding amount of data and number of communication.

[0019] The basic testing submodule can perform communication correctness tests when the entities participating in the communication are set up on a single server, and when the entities participating in the communication are set up on multiple servers.

[0020] Furthermore, the simulated scenario submodule further includes a pulse signal generator for performing brain simulation scenario testing;

[0021] A pulse signal generator receives parameters, including: hardware storage space size, neuron model type, synapse model type, ratio of the number of neurons to the number of synapses, average pulse firing rate, time taken to simulate one second of biological time, and amount of data required to communicate one pulse.

[0022] The pulse signal generator determines the storage space consumption and proportional relationship of the neuron model and synapse model based on the neuron model type, synapse model type, and the ratio of the number of neurons to the number of synapses; then, based on the hardware storage space size, it determines the number of neurons and synapses that can be stored.

[0023] The pulse signal generator determines the average number of pulses based on the number of neurons and the average pulse firing rate; then, based on the time consumption of a simulated organism in one second, it determines the average number of pulses fired per second; and uses a random distribution with the mean of the average number of pulses to generate the required amount of pulse output.

[0024] Furthermore, the simulated scenario submodule further includes a brain-like cluster simulator, which is used for brain simulation scenario testing;

[0025] The brain-like cluster simulator determines the number of communication entities based on the scale of the brain simulation required for the brain simulation scenario test and the hardware storage space of the communication entities. A pulse signal generator is created on each communication entity to generate pulse data, simulating the pulse communication process. The simulator tests whether the brain simulation pulse communication process can proceed normally. If it can, the communication system is deemed to meet the brain simulation requirements. If not, the simulation time consumption of one second of the organism is increased, and the brain simulation scenario test continues until the simulation time consumption of one second of the organism is determined, thus determining the actual performance of the communication system.

[0026] Furthermore, the simulated scenario submodule also includes a parameter and gradient data generator, which is used for deep learning simulated scenario testing;

[0027] The parameter and gradient data generator determines the communication primitives to be used based on the distributed deep learning model parallelism, data parallelism, or a hybrid parallelism scheme to be simulated; then, based on the structural characteristics of the deep neural network, the deep neural network splitting scheme, parameter size, and gradient data during training, it determines the amount of data to be communicated and generates virtual parameter data and gradient data.

[0028] Furthermore, the simulation scenario submodule also includes a deep learning cluster simulator, which is used for testing deep learning simulation scenarios;

[0029] The deep learning cluster simulator determines and numbers the number of communication entities based on the model size of the deep neural network and data / model parallel measurement. During data parallelism, each communication entity creates the same parameter and gradient data generator, synchronizes the parameter and gradient data, and tests the communication time. During model parallelism, different parameters and gradient generators are created from front to back according to the communication entity number and model characteristics, following the structure of the deep learning network. Parameter and gradient data communication is synchronized, and the communication time is tested. When data / models are simultaneously parallel, communication entities are grouped according to their numbers. Within the same group, different parameters and gradient generators are created according to the front-to-back order of the deep neural network. The parameters and gradient generators created for communication entities in each group are identical, and then deep learning simulation scenario testing is performed.

[0030] Furthermore, the simulation scenario submodule also includes a computational data generator and a high-performance computing cluster simulator, both of which are used for testing high-performance computing simulation scenarios;

[0031] The computational data generator determines the communication scheme and data volume based on the high-performance computing scenario to be tested.

[0032] The high-performance computing cluster simulator constructs virtual test data based on the aforementioned communication scheme and data volume to conduct communication tests in high-performance computing simulation scenarios.

[0033] Furthermore, the real-world scenario testing submodule performs real-world scenario testing for brain simulation, deep learning, and high-performance computing, specifically including:

[0034] The real-world brain simulation test includes neuron receiving pulse input, neuron-related parameter calculation and updating, pulse data generation, and pulse data output.

[0035] Real-world deep learning testing involves creating a deep learning neural network on a distributed system, performing forward and backward propagation to calculate gradients and update parameters, synchronizing communication during the test and updating real gradient or parameter data, and testing the performance of the communication system.

[0036] High-performance computing real-world scenario testing: Constructing a complete test scenario to generate realistic test data, employing a finite difference grid pattern for parallel computation, and simultaneously completing test data communication.

[0037] Furthermore, the interface layer testing module unifies the interfaces between communication libraries to obtain a unified interface to achieve point-to-point communication between two communication entities or aggregated communication between multiple communication entities, further including:

[0038] The specific method by which the interface layer testing module unifies the interfaces between communication libraries to obtain a unified interface is as follows: for underlying communication libraries with different interfaces, a unified communication data structure is constructed by encapsulating the interfaces of the underlying communication libraries, thereby unifying the underlying communication libraries into the same interface.

[0039] The point-to-point communication refers to sending and receiving data between two communication entities;

[0040] The collective communication refers to the transmission of data between multiple communication entities according to certain rules, including Multicast, Partgather, Broadcast, All2ALL, Allreduce, Allgather, Reducescatter, and Reduce.

[0041] Furthermore, the communication library includes MPI, NCCL, and BCCL; the underlying hardware corresponding to the communication entity includes CPU, GPU, and neuromorphic chip.

[0042] This invention constructs a unified testing system, using a unified interface to test the communication time of different communication libraries. Addressing the current limitations of communication library testing, which primarily focuses on correctness and performance testing for sending specific amounts of data, lacking consideration for real-world application scenarios, this invention designs various application scenario tests, including brain simulation scenarios, deep learning scenarios, and high-performance computing scenarios. Furthermore, to enable technical verification of the communication scheme before scenario implementation, scenario testing is divided into simulated scenario testing and real-world scenario testing. Specifically, considering the current practice of using real neurons to generate pulse signals, which involves high computational demands and storage consumption, and is often impractical in real-world testing, a simulated scenario test based on a pulse signal generator and a brain-like cluster simulator is proposed. Attached Figure Description

[0043] Figure 1 This is a diagram of the brain architecture of the communication performance evaluation system of this invention;

[0044] Figure 2 This is the architecture diagram of the brain-like cluster simulator of the present invention;

[0045] Figure 3 This is a schematic diagram of the pulse signal generator architecture of the present invention. Detailed Implementation

[0046] This invention proposes an evaluation system that supports the communication performance of large-scale neuromorphic computing, comprising: an evaluation layer testing module, an interface layer testing module, and a communication library layer testing module.

[0047] The evaluation layer testing module includes a basic testing submodule, a simulated scenario submodule, and a real-world scenario testing submodule.

[0048] The basic testing submodule performs correctness and performance tests on the underlying hardware. The correctness testing specifically includes:

[0049] For point-to-point communication mode, the basic test submodule tests whether point-to-point communication can transmit data from one communication entity to another, and whether the transmitted data is correct; for aggregated communication mode, the basic test submodule tests whether the entities participating in aggregated communication send and receive correct data according to the given aggregated communication rules.

[0050] The basic testing submodule performs performance testing, specifically by taking the amount of communication data, preheating communication tests, and actual number of communication attempts as inputs, and testing the communication latency generated when the communicating entities communicate under the corresponding data volume and number of communication attempts.

[0051] The basic testing submodule can perform communication correctness tests when the entities participating in the communication are set up on a single server, and when the entities participating in the communication are set up on multiple servers.

[0052] The simulation scenario submodule performs brain simulation scenario testing, deep learning simulation scenario testing, and high-performance computing simulation scenario testing on the underlying hardware.

[0053] The simulation scenario submodule further includes a brain-like cluster simulator and a pulse signal generator, both used for brain simulation scenario testing.

[0054] The brain-like cluster simulator determines the number of communication entities based on the scale of the brain simulation required for the brain simulation scenario test and the hardware storage space of the communication entities. A pulse signal generator is created on each communication entity to generate pulse data and simulate the pulse communication process. The test is conducted to see if the brain simulation pulse communication process can proceed normally. If it can, it is determined that the designed communication system meets the brain simulation requirements. If not, the time consumption of simulating a biological entity for one second is increased, and the brain simulation scenario test is continued until the time consumption of simulating a biological entity for one second is determined, thus determining the actual performance of the communication system.

[0055] The pulse signal generator receives corresponding parameters, including: hardware storage space size, neuron model type, synapse model type, ratio of the number of neurons to the number of synapses, average pulse firing rate, time taken to simulate one second of biological time, and amount of data required to communicate one pulse.

[0056] The pulse signal generator determines the storage space consumption and proportional relationship of the neuron and synapse models based on the neuron model type, synapse model type, and the ratio of the number of neurons to the number of synapses. Then, based on the hardware storage space size, it determines the number of neurons and synapses that can be stored.

[0057] The pulse signal generator determines the average number of pulses based on the number of neurons and the average pulse firing rate; then, based on the time taken to simulate one second of biological time, it determines the average number of pulses fired per second; and uses a random distribution with the mean of the average number of pulses to generate the required amount of pulse output.

[0058] The simulation scenario submodule further includes a parameter and gradient data generator and a deep learning cluster simulator, both used for testing deep learning simulation scenarios.

[0059] The parameter and gradient data generator determines the communication primitives to be used based on the parallel, data parallel, or hybrid parallel schemes of the distributed deep learning model to be simulated. Then, based on the structural characteristics of the deep neural network, the splitting scheme of the deep neural network, the parameter size, and the gradient data during the training process, it determines the amount of data to be communicated and generates virtual parameter data and gradient data.

[0060] The deep learning cluster simulator determines and numbers the number of communication entities based on the model size of the deep neural network and data / model parallelism measurements. During data parallelism, each communication entity creates the same parameter and gradient data generators, synchronizes the parameter and gradient data, and tests communication time. During model parallelism, different parameters and gradient generators are created according to the communication entity numbers and model characteristics, following the deep learning network structure from front to back, synchronizing parameter and gradient data communication and testing communication time. When data / models are simultaneously parallel, communication entities are grouped according to their numbers. Within the same group, different parameters and gradient generators are created according to the deep neural network's front-to-back order. Communication entities in different groups with corresponding orders create the same parameters and gradient generators. Then, deep learning simulation scenarios are tested.

[0061] The simulation scenario submodule further includes a computational data generator and a high-performance computing cluster simulator, both of which are used for testing high-performance computing simulation scenarios.

[0062] The computational data generator determines the communication scheme and data volume based on the high-performance computing scenario to be tested.

[0063] The high-performance computing cluster simulator constructs virtual test data based on the aforementioned communication scheme and data volume to conduct communication tests in high-performance computing simulation scenarios.

[0064] The real-world scenario testing submodule performs real-world scenario testing on the underlying hardware, including brain simulation, deep learning, and high-performance computing.

[0065] The brain simulation real-world scenario test includes neurons receiving pulse input, calculating and updating neuron-related parameters, generating pulse data, and outputting pulse data.

[0066] Real-world deep learning testing involves creating a deep learning neural network on a distributed system, performing forward and backward propagation to calculate gradients and update parameters, synchronizing communication during testing, updating real gradient or parameter data, and testing the performance of the communication system.

[0067] High-performance computing real-world scenario testing: Constructing a complete test scenario to generate realistic test data, employing a finite difference grid pattern for parallel computation, and simultaneously completing test data communication.

[0068] The interface layer testing module unifies the interfaces between the underlying hardware communication libraries to obtain a unified interface, enabling point-to-point communication between two communication entities or collective communication between multiple communication entities.

[0069] The specific method by which the interface layer testing module unifies the interfaces between communication libraries to obtain a unified interface is as follows: for underlying communication libraries with different interfaces, a unified communication data structure is constructed by encapsulating the interfaces of the underlying communication libraries, thus unifying the underlying communication libraries into the same interface.

[0070] Point-to-point communication refers to sending and receiving data between two communicating entities.

[0071] The collective communication refers to the transmission of data between multiple communication entities according to certain rules, including Broadcast, All2ALL, Allreduce, Allgather, Reducescatter, and Reduce.

[0072] The communication library layer testing module targets various underlying hardware communication libraries, using a unified interface to test the communication latency of the underlying hardware communication backend under various communication interfaces and communication time in various application scenarios. The communication libraries include MPI, NCCL, and BCCL. The underlying hardware includes CPUs, GPUs, and neuromorphic chips.

[0073] Example 1

[0074] When the evaluation system for supporting large-scale neuromorphic computing and communication performance proposed in this invention is evaluated in the form of a computer executable program, the following steps are performed.

[0075] Reference Figure 1 The brain architecture of the communication performance evaluation system includes: evaluation layer, interface layer, communication library layer, and hardware layer.

[0076] The evaluation layer is used to perform unified evaluation of the performance of the communication library and the design of the communication scheme.

[0077] The interface layer unifies the interfaces of the underlying communication libraries, making it easier to evaluate various underlying communication libraries.

[0078] The communication library layer includes various underlying communication libraries.

[0079] The hardware layer can evaluate communication between various underlying hardware components.

[0080] The evaluation layer mainly includes three modules: basic testing, simulated scenario testing, and real-world scenario testing.

[0081] The basic tests in the evaluation layer include: correctness testing and performance testing.

[0082] The correctness test verifies whether point-to-point communication can transmit data from one communication entity to another, and whether the transmitted data is correct. The aggregate communication test verifies whether the participating communication entities send and receive correct data according to the defined communication rules (including Multicast, Partgather, Broadcast, All2ALL, Allreduce, Allgather, Reducescatter, and Reduce). It supports correctness testing on a single server (where the participating communication entities are on one server) and on multiple servers (where the participating communication entities are not on the same server).

[0083] Performance testing measures communication latency when communicating with different amounts of data. The test takes the amount of data communicated, pre-communication tests, and the actual number of communications as input, and can test communication latency for different data amounts and number of communications as needed. It supports communication performance testing on a single server (where the communicating entities are on one server) and on multiple servers (where the communicating entities are not on the same server).

[0084] The evaluation layer includes simulated scenario tests: brain simulation scenario tests, deep learning simulation scenario tests, and high-performance computing simulation scenario tests.

[0085] To complete the brain simulation scenario testing, a brain-like cluster simulator and a pulse signal generator need to be constructed. The brain-like cluster simulator is as follows: Figure 2 As shown, based on the required number of communication entities to be tested, set the following parameters for each communication entity in the cluster, according to the storage space of the communication entity's hardware: neuron model type, synapse model type, ratio of the number of neurons to the number of synapses, average pulse firing rate, time taken to simulate one second of biological time, and the amount of data required to communicate one pulse. Set up and create a pulse signal generator. In this way, each communication entity will generate its own pulse signal. Then, using the communication primitives to be tested in the communication library, test the pulse signal communication. The communication process is as follows: Figure 2 As shown by the double-headed arrow.

[0086] Pulse signal generator such as Figure 3 As shown, different parameter data can be input to the pulse signal generator according to the needs of the brain simulation scenario. The input parameters include: hardware storage space size, neuron model type, synapse model type, ratio of the number of neurons to the number of synapses, average pulse firing rate, time taken to simulate one second of biological time, and the amount of data required to communicate one pulse.

[0087] Based on the neuron model type, synapse model type, and the ratio of the number of neurons to the number of synapses, we can obtain the storage space consumption of the neuron and synapse models, as well as their proportional relationship. Furthermore, considering the available hardware storage space, we can determine the number of neurons and synapses that can be stored.

[0088] The average number of pulses can be obtained based on the number of neurons and the average pulse firing rate. Then, by simulating the time taken for one second in a biological system, the average number of pulses fired per second can be obtained. The required amount of pulse output data is then generated using a random distribution whose mean is the average number of pulses.

[0089] Deep learning simulation scenario testing involves determining the communication primitives to be used based on the distributed deep learning model to be simulated (either linear or data parallel). Then, based on the structural characteristics, parameter size, and gradient data from the training process of the deep neural network, the amount of data to be communicated is determined, constructing virtual parameter and gradient data. Finally, the amount of data for each communication is set, allowing for deep learning simulation scenario testing. This eliminates the need to actually create the deep neural network or perform forward and backward gradient calculations.

[0090] High-performance computing (HPC) simulation scenario testing involves determining the communication scheme and data volume based on the specific HPC scenario. Taking a meteorological scenario as an example, meteorological scenarios typically employ a finite-difference grid-point parallel computing model. Therefore, broadcast, allreduce, and allgather are required for communication. Furthermore, the amount of data to be communicated is determined based on the scale of the meteorological simulation, allowing for the construction of virtual meteorological data. This enables communication testing of the HPC meteorological simulation scenario without the need to construct a complete meteorological scenario.

[0091] The evaluation layer includes real-world scenario tests: brain simulation real-world scenario tests, deep learning real-world scenario tests, and high-performance computing real-world scenario tests. Unlike simulation scenarios that ignore the computational process, real-world scenario tests present complete scenarios that include not only the communication process but also the entire computational process.

[0092] The brain simulation real-world scenario test includes neuron receiving pulse input, neuron related parameter calculation and update, pulse data generation, pulse data output, and the distributed creation of a real brain simulation network to conduct realistic brain simulation, serving as the final test and verification of the distributed communication scheme.

[0093] Real-world testing of deep learning requires creating a deep learning neural network on a distributed system, performing forward and backward propagation to calculate gradients and update parameters, synchronizing communication and updating real gradient or parameter data during the process, and testing the performance of the communication system.

[0094] High-performance computing real-world scenario testing: Taking a meteorological scenario as an example, a complete meteorological scenario is constructed to generate real meteorological data. Parallel computing is performed using a finite difference grid pattern. Broadcast, allreduce, and allgather are used to complete the communication of real meteorological data during meteorological computation.

[0095] The interface layer unifies the interfaces of the underlying communication libraries, facilitating the evaluation of various underlying communication libraries, including point-to-point communication interfaces and aggregate communication interfaces.

[0096] The interface layer is designed with a unified interface. For underlying communication libraries with different interfaces, a unified communication data structure is constructed by encapsulating the interface of the underlying communication library, thus unifying the underlying communication libraries into the same interface.

[0097] Point-to-point communication is the sending and receiving of data between two communicating entities, using the Send and Recv interfaces.

[0098] Collective communication refers to the transmission of data between multiple communication entities according to certain rules, including Multicast, Partgather, Broadcast, All2ALL, Allreduce, Allgather, Reducescatter, and Reduce.

[0099] The communication library layer includes various low-level communication libraries: MPI, NCCL, and BCCL. The evaluation system supports multiple low-level communication libraries, including MPI, NCCL, and BCCL. Through a unified interface layer, it facilitates unified evaluation of different communication backends, testing the communication latency of different communication interfaces and the communication time consumption in different application scenarios.

[0100] The hardware layer includes CPUs, GPUs, and neuromorphic chips. The evaluation system supports testing communication between various low-level hardware components, including CPUs, GPUs, and neuromorphic chips. The communication performance of different hardware components varies. The communication evaluation system designed in this paper can not only measure the communication time between different hardware components but also test which hardware is most efficient in different application scenarios.

[0101] Example 2

[0102] As shown in Table 1, a brain simulation scenario with 4 million neurons was tested, evaluating the communication time of different hardware CPUs and GPUs for brain simulation, different communication backends MPI and NCCL for communication, different data transmission processes, and different communication primitives. Experimental results show that the communication performance evaluation system designed in this invention can evaluate the communication time of different hardware CPUs and GPUs for brain simulation, different communication backends MPI and NCCL for communication, different data transmission processes, and different communication primitives. This invention can effectively perform communication testing and facilitates solution design.

[0103] Table 1. Simulation test of a brain with 4 million neurons

[0104] The present invention has the following advantages:

[0105] 1. The communication performance evaluation system proposed in this invention can compare the communication performance of different hardware and different communication libraries using a unified interface.

[0106] 2. The communication performance evaluation system of this invention proposes a simulated scenario communication test process, which can verify the communication technology solution without the need for actual scenario implementation.

[0107] 3. The communication performance evaluation system proposed in this invention covers brain simulation scenarios, deep learning scenarios, and high-performance computing scenarios, and can fully verify the performance of the communication library.

[0108] 4. This invention constructs a pulse signal generator and a brain-like cluster simulator. The pulse signal generator is used to simulate the generation of pulse signals during brain simulation, and the brain-like cluster simulator is used to simulate the communication of pulse signals between clusters.

[0109] This invention proposes a communication performance evaluation system that can test different communication libraries using a unified interface, facilitating comparisons between them. It also presents a simulated scenario communication testing process, enabling verification of communication technology solutions without requiring actual application implementation. The system's scenario testing covers brain simulation, deep learning, and high-performance computing scenarios, comprehensively validating the performance of communication libraries.

[0110] To overcome the differences in interfaces among various communication libraries, the interfaces of these libraries were standardized to facilitate testing and comparison of underlying communication libraries. To enable technical verification before application implementation, a simulated scenario communication testing process was designed, allowing verification of communication technology solutions without the need for actual implementation scenarios. Furthermore, to fully verify the performance of the communication libraries, a communication performance evaluation system was designed, covering brain simulation scenarios, deep learning scenarios, and high-performance computing scenarios.

Claims

1. A system for evaluating the communication performance of large-scale neuromorphic computing, characterized in that, include: The testing modules include the evaluation layer, the interface layer, and the communication library layer. The evaluation layer testing module includes a basic testing submodule, a simulated scenario submodule, and a real-world scenario testing submodule; The basic testing submodule performs correctness and performance tests on the underlying hardware; The simulation scenario submodule performs brain simulation scenario testing, deep learning simulation scenario testing, and high-performance computing simulation scenario testing on the underlying hardware; among them... The simulation scene submodule includes a pulse signal generator. The pulse signal generator determines the storage space consumption of the neuron model and synapse model, and the proportional relationship of storage space consumption, based on the neuron model type, synapse model type, and the ratio of the number of neurons to the number of synapses. Then, based on the hardware storage space size, it determines the number of neurons and synapses that can be stored. The pulse signal generator determines the average number of pulses based on the number of neurons and the average pulse firing rate; then, based on the time consumption of a simulated organism in one second, it determines the average number of pulses fired per second; and uses a random distribution with the mean of the average number of pulses to generate the required amount of pulse output. The simulation scenario submodule includes a brain-like cluster simulator, which is used for brain simulation scenario testing; The brain-like cluster simulator determines the number of communication entities based on the scale of the brain simulation required for the brain simulation scenario test and the hardware storage space of the communication entities. A pulse signal generator is created on each communication entity to generate pulse data and simulate the pulse communication process. The simulator tests whether the brain simulation pulse communication process can proceed normally. If it can proceed normally, it is determined that the communication system meets the brain simulation requirements. If it cannot, the simulation time consumption of one second of the organism is increased, and the brain simulation scenario test continues until the simulation time consumption of one second of the organism is determined, thus determining the actual performance of the communication system. The underlying hardware corresponding to the communication entity includes CPU, GPU, and neuromorphic chip; The real-world scenario testing submodule performs real-world scenario testing on the underlying hardware, including brain simulation, deep learning, and high-performance computing. The interface layer testing module unifies the interfaces between the underlying hardware communication libraries to obtain a unified interface, which enables point-to-point communication between two communication entities or collective communication between multiple communication entities. The communication library layer testing module targets various underlying hardware communication libraries and uses a unified interface to test the communication latency of the underlying hardware communication backend under various communication interfaces and the communication time consumption under various application scenarios.

2. The system according to claim 1, characterized in that, The specific process of the correctness test performed by the basic test submodule includes: for point-to-point communication mode, the basic test submodule tests whether point-to-point communication can realize the transmission of data from one communication entity to another, and whether the transmitted data is correct; for aggregated communication mode, the basic test submodule tests whether the entities participating in aggregated communication send and receive correct data according to the given aggregated communication rules. The specific process of performance testing in the basic testing submodule includes: taking the amount of communication data, preheating communication test, and actual number of communication as inputs, and testing the communication latency generated when the communicating entity communicates under the corresponding amount of data and number of communication. The basic testing submodule can perform communication correctness tests when the entities participating in the communication are set up on a single server, and when the entities participating in the communication are set up on multiple servers.

3. The system according to claim 2, characterized in that, The pulse signal generator receives parameters, including: hardware storage space size, neuron model type, synapse model type, ratio of the number of neurons to the number of synapses, average pulse firing rate, time taken to simulate one second of biological time, and amount of data required to communicate one pulse.

4. The system according to claim 3, characterized in that, The simulated scenario submodule further includes a parameter and gradient data generator, which is used for deep learning simulated scenario testing; The parameter and gradient data generator determines the communication primitives to be used based on the distributed deep learning model parallelism, data parallelism, or a hybrid parallelism scheme to be simulated; then, based on the structural characteristics of the deep neural network, the splitting scheme of the deep neural network, the parameter size, and the gradient data during the training process, it determines the amount of data to be communicated and generates virtual parameter data and gradient data.

5. The system according to claim 4, characterized in that, The simulation scenario submodule further includes a deep learning cluster simulator, which is used to test deep learning simulation scenarios. The deep learning cluster simulator determines and numbers the number of communication entities based on the model size of the deep neural network and data / model parallel measurement; during data parallelism, each communication entity creates the same parameter and gradient data generator, performs parameter and gradient data synchronization, and tests communication time. When the model is in parallel, different parameters and gradient generators are created from front to back according to the communication entity number and model characteristics and the structure of the deep learning network. The parameter and gradient data communication is synchronized, and the communication time is tested. When the data and model are in parallel, the communication entities are grouped according to the communication entity number. Different parameters and gradient generators are created in the same group according to the deep neural network from front to back. The parameters and gradient generators created for the corresponding communication entities in each group are the same. Then, deep learning simulation scenario testing is performed.

6. The system according to claim 5, characterized in that, The simulation scenario submodule further includes a computational data generator and a high-performance computing cluster simulator, both of which are used for testing high-performance computing simulation scenarios. The computational data generator determines the communication scheme and data volume based on the high-performance computing scenario to be tested. The high-performance computing cluster simulator constructs virtual test data based on the aforementioned communication scheme and data volume to conduct communication tests in high-performance computing simulation scenarios.

7. The system according to claim 6, characterized in that, The real-world scenario testing submodule performs real-world scenario testing for brain simulation, deep learning, and high-performance computing, specifically including: The real-world brain simulation test includes neuron receiving pulse input, neuron-related parameter calculation and updating, pulse data generation, and pulse data output. Real-world deep learning testing involves creating a deep learning neural network on a distributed system, performing forward and backward computation to calculate gradients and update parameters, synchronizing communication during the test and updating real gradient or parameter data, and testing the performance of the communication system. High-performance computing real-world scenario testing: Constructing a complete test scenario to generate realistic test data, employing a finite difference grid pattern for parallel computation, and simultaneously completing test data communication.

8. The system according to claim 7, characterized in that, The interface layer testing module unifies the interfaces between communication libraries to obtain a unified interface, enabling point-to-point communication between two communication entities or aggregated communication between multiple communication entities. This further includes: The specific method by which the interface layer testing module unifies the interfaces between communication libraries to obtain a unified interface is as follows: for underlying communication libraries with different interfaces, a unified communication data structure is constructed by encapsulating the interfaces of the underlying communication libraries, thereby unifying the underlying communication libraries into the same interface. The point-to-point communication refers to sending and receiving data between two communication entities; The collective communication refers to the transmission of data between multiple communication entities according to certain rules, including Multicast, Partgather, Broadcast, All2ALL, Allreduce, Allgather, Reducescatter, and Reduce.

9. The system according to claim 8, characterized in that, The communication library includes MPI, NCCL, and BCCL.

Citation Information

Patent Citations

  • Reconfigurable brain-like computing system on chip based on FPGA (Field Programmable Gate Array)

    CN117195980A

  • Multi-granularity circuit reconstruction and mapping method for large-scale brain-like calculation

    CN117195981A