Brain-inspired application test set determination method and apparatus, electronic device, and storage medium
Through the feature analysis and clustering processing of brain-like applications, a target application test set with orthogonality is constructed, which solves the problems of low testing efficiency and poor accuracy in the existing technology, and achieves the streamlining of the application test set and the improvement of the test efficiency.
Patent Information
- Application Number
- PCT/CN2023/136095
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-12-04
- Publication Date
- 2025-06-12
AI Technical Summary
The existing technology cannot effectively analyze the characteristics of brain-like applications, resulting in the inability to streamline the application test set, low testing efficiency and poor accuracy.
By performing feature analysis on brain-like applications in the initial application test set, data representation features and data calculation features are extracted, brain-like applications are grouped using clustering processing technology to build a target application test set to ensure that brain-like applications in the test set are orthogonal.
It has achieved streamlining of application test sets and improved the testing efficiency and accuracy of brain-like computing systems.
Smart Images

Figure CN2023136095_12062025_PF_FP_ABST
Abstract
Description
Method, device, electronic device and storage medium for determining brain-like application test set Technical Field
[0001] The present application relates to the field of data processing, and in particular to a method, device, electronic device, and storage medium for determining a brain-like application test set. Background Art
[0002] Brain-inspired computing is a computing architecture that simulates the human brain and nervous system. Brain-inspired computing systems, centered around brain-inspired chips, are rapidly developing. To ensure the stable operation of brain-inspired computing systems, they must be tested for system performance using brain-inspired applications from a test set. To improve the efficiency of system performance testing, the computational features of the brain-inspired applications in the test set must be orthogonal, meaning that the corresponding features of the brain-inspired applications in the test set are dissimilar.
[0003] However, in the related art, it is impossible to quantitatively analyze the characteristics of brain-like applications, and thus it is impossible to effectively streamline the application test set. In addition, the related art also manually selects brain-like applications from different application scenarios to perform performance tests on brain-like computing systems, but the brain-like applications included in the application test set constructed in this way may not cover all scenarios, and may also include a large number of brain-like applications with the same characteristics. Using existing application test sets to perform performance tests on brain-like computing systems will result in low testing efficiency and poor test accuracy of brain-like computing systems.
[0004] Summary of the Invention
[0005] The embodiments of the present application provide a method, device, electronic device and storage medium for determining a brain-like application test set, which can simplify the application test set and thereby ensure the orthogonality between the brain-like applications included in the application test set.
[0006] In a first aspect, an embodiment of the present application provides a method for determining a brain-like application test set, the method comprising: performing feature analysis on each brain-like application included in the initial application test set to obtain data representation features corresponding to each brain-like application; calculating the computational overhead generated when each brain-like application is executed based on a pulse neural network paradigm; determining the data calculation features corresponding to each brain-like application based on the computational overhead corresponding to each brain-like application; clustering the brain-like applications in the initial application test set based on the data representation features of each brain-like application and the data calculation features of each brain-like application to obtain at least one group; constructing a brain-like application based on the feature vector corresponding to each group to obtain a target application test set corresponding to the initial application test set, wherein the multiple brain-like applications in the target application test set are orthogonal to each other.
[0007] In the second aspect, an embodiment of the present application provides a device for determining a brain-like application test set, which includes: a feature extraction module for performing feature analysis on each brain-like application included in the initial application test set to obtain data representation features corresponding to each brain-like application; a computational overhead analysis module for calculating the computational overhead generated when each brain-like application is executed based on the pulse neural network paradigm; a feature determination module for determining the data computation features corresponding to each brain-like application based on the computational overhead corresponding to each brain-like application; a clustering module for clustering the brain-like applications in the initial application test set based on the data representation features of each brain-like application and the data computation features of each brain-like application to obtain at least one group; a set determination module for constructing brain-like applications based on the feature vector corresponding to each group to obtain a target application test set corresponding to the initial application test set, wherein the multiple brain-like applications in the target application test set are orthogonal to each other.
[0008] In a third aspect, an embodiment of the present application provides an electronic device comprising: a processor and a memory storing computer program instructions; when the processor executes the computer program instructions, the method for determining the brain-like application test set as described in the first aspect is implemented.
[0009] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium having computer program instructions stored thereon. When the computer program instructions are executed by a processor, the method for determining a brain-like application test set as described in the first aspect is implemented.
[0010] In a fifth aspect, an embodiment of the present application provides a computer program product. When the instructions in the computer program product are executed by a processor of an electronic device, the electronic device executes the method for determining a brain-like application test set as described in the first aspect.
[0011] From the above content, it can be seen that the embodiment of the present application extracts data representation features and data calculation features of brain-like applications, and extracts features of brain-like applications from multiple levels, thereby achieving quantitative analysis of the features of brain-like applications and providing a technical basis for streamlining the application test set. In addition, in the embodiment of the present application, the brain-like applications in the target application test set are constructed by the feature vectors of the group, and the group is obtained by clustering the brain-like applications in the application test set based on the features of the brain-like applications, that is, the brain-like applications contained in the group have the same or similar features. Therefore, by constructing brain-like applications based on the feature vectors of the group obtained by cluster analysis, a smaller number of brain-like applications can be obtained, and these brain-like applications are orthogonal, which achieves the streamlining of the application test set. Using the streamlined application test set to perform performance testing on the brain-like computing system can improve the testing efficiency of the type computing system and improve the test accuracy. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0013] FIG1 is a schematic diagram of an analysis framework provided by an embodiment of the present application;
[0014] FIG2 is a flowchart of a method for determining a brain-inspired application test set according to an embodiment of the present application;
[0015] FIG3 is a schematic diagram of a brain-inspired application provided by one embodiment of the present application;
[0016] FIG4 is a schematic diagram of brain-inspired application blocks provided by one embodiment of the present application;
[0017] FIG5 is a schematic diagram corresponding to the SNN execution level provided by one embodiment of the present application;
[0018] FIG6 is a schematic structural diagram of a device for determining a brain-inspired application test set according to another embodiment of the present application;
[0019] FIG7 is a schematic structural diagram of an electronic device provided in yet another embodiment of the present application. DETAILED DESCRIPTION
[0020] The features and exemplary embodiments of various aspects of the present application will be described in detail below. In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain the present application, rather than to limit the present application. For those skilled in the art, the present application can be implemented without the need for some of these specific details. The following description of the embodiments is merely to provide a better understanding of the present application by illustrating the examples of the present application.
[0021] It should be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, the elements defined by the phrase "comprising..." do not exclude the presence of other identical elements in the process, method, article, or device comprising the elements.
[0022] For ease of understanding, before explaining the solution provided in this application, the background of the solution provided in this application is first explained.
[0023] Brain-inspired computing is a highly interdisciplinary and integrated approach to life science, especially brain science, and information technology. Its technical implications include an in-depth understanding of the brain's information processing principles, and the development of new processors, algorithms, and system integration architectures based on this understanding, which are then applied to a wide range of fields, including the new generation of artificial intelligence, big data processing, and human-computer interaction.
[0024] Spiking Neural Networks (SNNs) are the primary computing paradigm for brain-inspired computing systems and a key component of next-generation neural networks. Various brain-inspired computing systems, centered around brain-inspired computing chips, are rapidly developing. These systems, primarily targeting brain-inspired applications, are gradually demonstrating their advantages in solving certain intelligent problems and in low-power intelligent computing.
[0025] However, there is currently a lack of a recognized and highly representative benchmark application test set for brain-inspired applications. This benchmark application test set consists of brain-inspired applications with high discrimination. Using the brain-inspired applications in this benchmark application test set can achieve accurate evaluation of the system performance of brain-inspired computing systems.
[0026] As can be seen from the above, constructing the aforementioned benchmark application test set requires ensuring orthogonality between the application features of the selected brain-inspired applications. This means that the application features of different brain-inspired applications within the benchmark application test set are not identical or similar. Therefore, before constructing the benchmark application test set, feature extraction and analysis of the brain-inspired applications are required to determine the similarities between them. If multiple brain-inspired applications are similar, they are grouped together; otherwise, they are grouped separately.
[0027] However, currently, the relevant fields are unable to quantitatively analyze the characteristics of individual brain-inspired applications, resulting in a lack of streamlining of brain-inspired applications in benchmark application test sets, which in turn leads to low testing efficiency and poor test accuracy for brain-inspired computing systems. Currently, the design of benchmark application test sets urgently requires a suitable application feature extraction and analysis solution to serve as a strong basis for selecting brain-inspired applications.
[0028] Given that most brain-like applications can be uniformly represented as SNN, to address the above problems, the solution provided in the embodiments of the present application can realize feature extraction and feature analysis of brain-like applications. Based on the idea of decoupling software and hardware, a set of analysis frameworks based on parallel models are designed to realize quantitative analysis of application characteristics of brain-like applications, and then perform similarity evaluation of brain-like applications based on the corresponding characteristics of brain-like applications, providing a basis for streamlining brain-like applications in the application test set.
[0029] Figure 1 shows the analysis framework provided by an embodiment of the present application. The analysis structure is constructed based on the SDF (Synchronous Dataflow Model) and BSP (Bulk Synchronous Parallel) models. The analysis can abstract the characteristics of brain-like applications and brain-like architectures, thereby obtaining the characteristics of brain-like applications.
[0030] As can be seen from Figure 1, the analysis framework consists of four levels, namely the application level, SNN representation level, SNN partitioning level, and SNN execution level.
[0031] As shown in Figure 1, at the SNN representation level, the features of brain-like applications are abstracted through the SNN escape module to obtain the SDF representation of the brain-like application; then at the SNN partitioning level, the brain-like architecture of the brain-like application is abstracted into the BSP model; at the SNN execution level, based on the Bulk architecture (such as the Bulk operation in Figure 1), multiple execution units are used to simulate the execution of brain-like applications (i.e., the SNN execution in Figure 1).
[0032] At the application level, the ONNX (Open Neural Network Exchange) format is used as the representation and storage format of SNN to represent brain-like applications. Based on this, in the embodiment of the present application, the SNN representation level and the SNN partitioning level can be implemented using Python, while the SNN execution level can use the C / C++ version of OpenMPI to achieve parallel execution. In the embodiment of the present application, the SNN execution level is the encapsulated level. When using this framework to extract the features of brain-like applications, users only need to call the interfaces of the SNN representation level and the SNN partitioning level.
[0033] Based on the above framework, after giving the basic constraints and partitioning mapping scheme of the brain-inspired architecture, for any brain-inspired application, the characteristics of the brain-inspired application before and after multi-core mapping can be analyzed.
[0034] It should be noted that the above-mentioned ONNX is an open neural network intermediate representation format, and OpenMPI is a parallel program development interface based on message passing.
[0035] Figure 2 shows a flow chart of a method for determining a brain-inspired application test set according to an embodiment of the present application. As shown in Figure 2 , the method includes steps S201 to S205 .
[0036] Step S201 : performing feature analysis on each brain-inspired application included in the initial application test set to obtain data representation features corresponding to each brain-inspired application.
[0037] In step S201, the initial application test set is a collection of multiple brain-inspired applications, including but not limited to applications for processing multimodal sensory information, applications for language comprehension and knowledge reasoning, applications for performing deep learning tasks, and applications for parallel computing. Some of the brain-inspired applications in the initial application test set have the same or similar features, and the solution provided in the embodiments of this application can be used to streamline the brain-inspired applications in the initial application test set.
[0038] It should be noted that in step S201, the brain-like application can be reduced to an SNN representation consisting of a number of neurons and synapses. The overall function of a given brain-like application is realized through calculation and communication between neurons and synapses in the SNN.
[0039] In addition, in step S201 , given the SNN corresponding to the brain-inspired application, its behavior can be abstracted through the SDF model to obtain the main computing features of the brain-inspired application.
[0040] Specifically, SNN represents the abstraction of neurons and synapses in brain-like applications. In order to observe the execution of brain-like applications, the SDF model is used to describe the execution behavior of each neuron and synapse in the SNN representation. Among them, each neuron and synapse is abstracted as a node in the SDF model, and data transmission is achieved between neurons and synapses through the transmission of pulses, which is represented as the reception and transmission of data in the SDF model. In this example, an SNN development framework (for example, the PyNN framework) or a deep SNN (i.e., D-SNN) development framework based on PyTorch (for example, the SpikingJelly framework, the Norse framework) can be used to describe brain-like applications. At this time, the organizational granularity of the brain-like application is the neuron group and the synapse group. For subsequent unified analysis, the neuron group and the synapse group are separated and converted into an SDF representation consisting of several independent neurons and synapses, and based on this, the computational characteristics of the monomer and the whole are obtained. In an embodiment of the present application, in the process of obtaining computational features, the finest granularity (i.e., independent neurons and synapses) is used to perform feature abstraction on the execution process of brain-like applications to ensure that the granularity of different brain-like applications is always consistent in the SNN representation level analysis.
[0041] Through step S201, the computational features of neurons and synapses in the SNN corresponding to each brain-like application are extracted, and the computational features corresponding to each brain-like application can be obtained, including but not limited to the average pulse firing rate of various types of neurons and synapses (including pulse input sources), the pulse firing interval of each neuron and synapse, the maximum transmission distance of pulses on the SNN, etc.
[0042] Step S202 , calculating the computational overhead of executing each brain-inspired spiking neural network paradigm.
[0043] It should be noted that the computational overhead of brain-inspired applications is an important indicator for evaluating whether there is orthogonality between brain-inspired applications. Therefore, in the embodiments of the present application, it is necessary to determine the computational overhead corresponding to each brain-inspired application.
[0044] In step S202, the computational overhead corresponding to the brain-like application can be determined by summing the individual computational overhead of each neuron and synapse on the SNN when the brain-like application is executed. Specifically, the computational overhead corresponding to the brain-like application is the sum of the computational overhead generated when each neuron and synapse on the SNN corresponding to the brain-like application performs operations. In addition, since the brain-like application is composed of multiple neurons and synapses, during execution, data transmission between neurons and synapses is mediated by pulses. Since the neurons and synapses on the SNN are executed step by step according to time steps, the pulses can be numbered according to the time when the pulse is emitted, the number of the neuron (or synapse) that emits the pulse, and the number of the synapse (or neuron) that receives the pulse. For example, neuron A receives pulse D1 at time T1, performs operations at time T2, and transmits the output data generated as pulse D2 to synapse B at time T3. Here, D2 is the input of synapse B. After receiving D2, synapse B performs operations at the next time step.
[0045] Taking into account the current development of brain-like chips or accelerators towards a multi-processor architecture, in order to better describe this parallel computing behavior, this application introduces the BSP model as an abstraction of a brain-like multi-processor architecture. For the SDF model, it is divided into several blocks through a block algorithm, where each block contains part of the original neurons and synapses and retains the original connection relationship. Each block is mapped to an execution unit in the BSP model. When there is a pulse transmission between neurons and synapses in two different blocks, it is manifested as data transmission between the blocks, corresponding to the communication between the processing units of the BSP model.
[0046] At this time, for each brain-like application, the computational overhead is counted, including the number of floating-point calculations for each neuron and synapse, the number of internal communications between execution units on the BSP model during application execution, and the amount of communication data.
[0047] Step S203: Determine the data computing features corresponding to each brain-inspired computing according to the computing overhead corresponding to each brain-inspired application.
[0048] In step S203, based on the computational features and computational overhead corresponding to the brain-inspired application, the computational features that have the greatest impact on computational overhead are screened to further determine the main features of the brain-inspired computation (i.e., data computational features). As an example, after determining the computational features and related data of the brain-inspired application, the existing computational features are standardized through principal component analysis and analyzed one by one, retaining the features that have the greatest impact on computational overhead. The relevant data during the execution of each brain-inspired application is mapped to these features to obtain a feature vector representation corresponding to the application.
[0049] Step S204 : clustering the brain-inspired applications in the initial application test set based on the data representation features and data calculation features of each brain-inspired application to obtain at least one group.
[0050] In step S204, based on the above main features, each brain-inspired application in the initial application test set is clustered, so that applications with similar main features are merged into the same group, and several groups with main features that are orthogonal to each other are obtained.
[0051] The data representation features and data calculation features of each brain-like application are features extracted at different levels (i.e., the SNN representation level and the SNN execution level in Figure 1). After obtaining the features of each brain-like application at different levels, feature mapping can be performed on the features at different levels to obtain the mapping vector corresponding to each brain-like application. Then, based on the mapping vector, the brain-like applications in the initial application test set are clustered to obtain at least one group. Each group consists of at least one brain-like application, and the brain-like applications in each group have the same or similar features, that is, the brain-like applications in each group show similarity in the above-mentioned main features.
[0052] Step S205 , constructing a brain-inspired application according to the feature vector corresponding to each group, and obtaining a target application test set corresponding to the initial application test set.
[0053] In step S205, the feature vector corresponding to each group is obtained by merging the mapping vectors of the brain-like applications contained in the group. Since the brain-like applications contained in each group have the same or similar features, the pulse neural network constructed based on the feature vector corresponding to each group can characterize any brain-like application in the group, that is, the group is abstracted as an executable brain-like application. It is worth noting that since the brain-like applications in the initial application test set are clustered, and the number of groups corresponding to the initial application test set is not greater than the number of brain-like applications contained in the initial application test set, the number of brain-like test applications constructed based on the feature vectors of each group is not greater than the number of brain-like applications contained in the initial application test set, that is, the number of brain-like applications contained in the target simplest test set is less than or equal to the number of brain-like applications contained in the initial application test set, thereby achieving the simplification of the initial application test set.
[0054] Furthermore, in the present embodiment, the brain-inspired applications within each group exhibit similarities in the aforementioned key features, while the brain-inspired applications between at least two groups exhibit significant differences in their features, indicating orthogonality between the brain-inspired applications within the groups. The multiple brain-inspired applications in the target minimalist test set are constructed from the feature vectors corresponding to the clusters, thus ensuring orthogonality between the multiple brain-inspired applications in the target minimalist test set.
[0055] It can be seen that the embodiments of the present application not only achieve the simplification of brain-like applications in the application test set in the related art, but also ensure the orthogonality between the brain-like applications in the simplified application test set.
[0056] Based on the scheme defined in the above steps S201 to S205, it can be known that the embodiment of the present application extracts data representation features and data calculation features of brain-like applications, and extracts features of brain-like applications from multiple levels, thereby achieving quantitative analysis of the features of brain-like applications and providing a technical basis for streamlining the application test set. In addition, in the embodiment of the present application, the brain-like applications in the target application test set are constructed by the feature vectors of the group, and the group is obtained by clustering the brain-like applications in the application test set based on the features of the brain-like applications, that is, the brain-like applications contained in the group have the same or similar features. Therefore, by constructing brain-like applications based on the feature vectors of the group obtained by cluster analysis, a smaller number of brain-like applications can be obtained, and these brain-like applications are orthogonal, thereby achieving the streamlining of the application test set. Using the streamlined application test set to perform performance testing on the brain-like computing system can improve the testing efficiency of the type computing system and improve the test accuracy.
[0057] The scheme defined in the above steps S201 to S205 is explained in detail below.
[0058] As shown in FIG1 , before streamlining the brain-inspired applications in the initial application test set, the data representation features of each brain-inspired application included in the initial application test set are first obtained at the SNN representation level, that is, step S201 is executed.
[0059] Specifically, the escape module deployed in the SNN representation level can split the neuron group and synapse group in each brain-like application to obtain multiple neurons and multiple synapses, wherein the multiple neurons are independent of each other, and the multiple synapses are independent of each other, that is, a number of independent neurons and synapses corresponding to each brain-like application are obtained; then, the multiple synapses are merged according to the synaptic parameters of the multiple synapses, and the multiple neurons are merged according to the neuron parameters of the multiple neurons to obtain the data flow representation information corresponding to each brain-like application, that is, the synapses with the same parameters and the same neuron are merged to obtain the simplest structural representation corresponding to each brain-like application; finally, the data flow representation information is feature analyzed to obtain the data representation features corresponding to each brain-like application.
[0060] It should be noted that the above-mentioned multiple neurons and synapses are independent of each other.
[0061] As an example, before obtaining the data representation features of brain-inspired applications, they must be uniformly converted to the ONNX representation format for each application at the application level, thereby achieving data format unification. For neurological brain-inspired applications, the PyNN framework interface can be used to describe the application, and the ONNX representation of the application can be obtained through a custom export module. For D-SNN applications, PyTorch-based development frameworks such as SpikingJelly and Norse can be used to describe the application, and the corresponding ONNX representation can be exported based on the PyTorch ONNX module.
[0062] Furthermore, after achieving a unified representation format for brain-like applications, the escape module parses the ONNX representation corresponding to each brain-like application to obtain neuron groups and synapse groups in the ONNX format, and then splits the neuron groups and synapse groups into several independent neurons and protrusions, and then merges the synapses with the same parameters to obtain the simplest SDF representation corresponding to the brain-like application.
[0063] Furthermore, after obtaining the SDF representation of each brain-inspired application, the data representation features corresponding to each brain-inspired application can be obtained by analyzing the operations of each neuron and synapse during the execution of the brain-inspired application and the data transmission mediated by pulses. The data representation features include static features and dynamic features. Static features may include, but are not limited to, the topological structure of the SNN representation corresponding to the brain-inspired application, the number of floating-point calculations of each type of SNN neuron and synapse in a single time step, etc. Dynamic features may include, but are not limited to, the pulse firing status of each neuron and synapse during execution (for example, the average pulse firing rate, the distribution of pulse firing intervals, etc.) and relevant features of the brain-inspired application's runtime before blocking.
[0064] As can be seen from the above, through the above step S201, the extraction of data representation features for brain-like applications is achieved at the SNN representation level with single neurons and synapses as the organizational granularity.
[0065] As shown in Figure 1, after obtaining the data representation features of brain-inspired applications, the computational overhead incurred when each brain-inspired application is partitioned and mapped to multiple processing units for parallel execution is extracted at the SNN execution level. Given that mainstream brain-inspired chips in the related art are mostly based on high-performance multi-processor architectures, in order to analyze the behavior of each brain-inspired application when partitioned and executed in parallel across multiple processors, a partitioning module is introduced in the embodiments of this application to partition the SNN.
[0066] Specifically, based on the block algorithm, the multiple neurons and multiple synapses corresponding to each brain-like application are blocked to obtain multiple blocks; after the multiple neurons and multiple synapses corresponding to each brain-like application are blocked based on the block algorithm to obtain multiple blocks, the block information of each block is counted to obtain the data block features corresponding to each brain-like application.
[0067] It should be noted that there is a connection relationship between the neurons and synapses contained in each block, and the above-mentioned block information at least includes the connection information between the neurons and synapses within each block, and the connection relationship between the neurons and synapses in each block and the neurons and synapses in other blocks.
[0068] In addition, it should be noted that as brain-like architectures gradually develop towards high-performance multi-processor architectures interconnected by network-on-chip (NoC), the analysis of the runtime characteristics of brain-like applications on actual architectures also requires consideration of the multi-processor mapping of brain-like applications. That is, after abstracting the brain-like architecture into a BSP model, the SNN representation corresponding to the brain-like application is divided into blocks, and each block is mapped to the execution unit corresponding to the BSP model for parallel execution. Based on the execution results, information about the parallel execution of the brain-like application on multiple processing units is extracted.
[0069] SDF partitioning is an application of graph partitioning, and graph partitioning is an NP (Non-deterministic Polynomial, non-deterministic polynomial complexity) complete problem, that is, there is no optimal solution. In order to efficiently implement graph partitioning, technicians in related technical fields have successively proposed a variety of efficient algorithms. Before conducting subsequent analysis, it is necessary to determine the block partitioning algorithm and scheduling strategy for brain-like applications. This analysis can be completed with the help of a partitioning module. Furthermore, after fixing the brain-like application used, it is also possible to evaluate the impact of different graph partitioning algorithms on the computational overhead, thereby evaluating the performance of the partitioning algorithm on the application.
[0070] The partitioning of brain-like applications can be achieved at the SNN partitioning level shown in Figure 1. A partitioning module is deployed at the SNN partitioning level. In the partitioning module, the SDF can be abstracted into a simple graph that only retains the connection relationship between neurons and synapses. This process can be implemented through an interface based on the graph analysis tool NetworkX, and the output of the NetworkX interface is an unweighted graph. Users can customize the graph partitioning algorithm based on NetworkX. After partitioning the above unweighted graph, the partitioning module will organize the neurons and synapses into several blocks according to the grouping, and can use user-defined scheduling policies to adjust them.
[0071] As an example, a block algorithm and scheduling strategy that matches the brain-like application can be selected from multiple block algorithms and multiple scheduling strategies, and the selected block algorithm and scheduling strategy can be used to implement the block processing of the brain-like application. The above block algorithm and scheduling strategy can be selected by the user. In this scenario, it is necessary to ensure that the block algorithm and scheduling strategy selected by the user are compatible with NetworkX to reduce the difficulty of system development. The above block algorithm can be an open source graph block algorithm based on the NetworkX backend (for example, METIS and Louvain graph block algorithms).
[0072] After determining the block partitioning algorithm and related scheduling strategies, we also need to determine the block capacity corresponding to each block. This capacity represents the maximum number of neurons and synapses that the block can accommodate. For the same brain-inspired application, the block capacities of multiple blocks can be the same or different.
[0073] Furthermore, after determining the corresponding block partitioning algorithm for each brain-inspired application and the corresponding block capacity for each block, the block partitioning module can then partition the data representation features corresponding to the brain-inspired application to obtain multiple blocks. For example, the block partitioning module can partition the brain-inspired application shown in Figure 3 to obtain the multiple blocks shown in Figure 4. Furthermore, the block partitioning module can also collect block information corresponding to each block to obtain the data block features corresponding to each brain-inspired application.
[0074] It should be noted that each circle in Figure 3 represents a neuron or synapse. For convenience, we call this single neuron or synapse a spike operator. Arrows indicate the need for data transmission between two spike operators. For example, in Figure 3, when spike operator A executes, it needs to transmit data to spike operators B and C. Node D indicates that spike operator A is transmitting data to spike operator C.
[0075] In addition, the data block characteristics corresponding to each brain-inspired application may include, but are not limited to, the number of blocks, the number of neurons and synapses of various types contained in each block, the number of cross-cores corresponding to each block, the number of blocks requiring cross-processing unit data transmission, and the number of successor neurons and synapses on the same computing unit and other computing units for each neuron and synapse in each block. The successor neurons or synapses of the current neuron or synapse receive the pulses transmitted by the current neuron or synapse. For example, in Figure 3, pulse operator C is the successor of pulse operator A.
[0076] In addition, after determining the parameters corresponding to brain-inspired applications and brain-inspired architectures, the SNN execution level can be combined to evaluate the computational cost corresponding to each brain-inspired application under different block algorithms and / or scheduling strategies, and then the block algorithm and / or scheduling strategy can be adjusted or optimized based on the computational cost to enhance the scope of use of the architecture shown in Figure 1.
[0077] As shown in Figure 1, after the brain-inspired application is divided into blocks through the SNN partitioning level, the computational overhead generated when each brain-inspired application is executed based on the pulse neural network paradigm can be calculated through the representation module in the SNN execution level.
[0078] Specifically, the representation module deployed in the SNN execution level calculates the computational overhead generated when using the neurons and synapses contained in each block for calculation, obtains the first computational overhead corresponding to each block, and calculates the transmission overhead for data transmission between multiple blocks to obtain the second computational overhead; finally, based on the first computational overhead and the second computational overhead corresponding to each block, the computational overhead corresponding to each brain-like application can be determined.
[0079] It should be noted that as one of the mainstream parallel models, the BSP model is similar to the SDF model and can both quantify the computational overhead of executing multiple blocks of parallel algorithms in parallel based on a synchronization mechanism.
[0080] As an example, a multi-core simulation environment based on the Bulk framework (BSP development framework) is deployed in the SNN execution level. In this simulation environment, multiple execution units are deployed, and each execution unit is used to execute the neurons and synapses contained in a block. In the schematic diagram corresponding to the SNN execution level shown in Figure 5, each execution unit corresponds to a block shown in Figure 4, and each execution unit is composed of a computing unit, a storage unit, a receiving queue, and a sending queue. In Figure 5, the computing unit is used to execute neurons and synapses to process the data to be processed; the storage unit is used to store the neurons and synapses contained in the corresponding block; the receiving queue is used to temporarily store the data to be processed, which can be data transmitted from other execution units to the current execution unit, or data obtained after the current execution unit executes neurons and synapses; the sending queue is used to temporarily store the results of the computing unit using neurons and synapses to process the data to be processed.
[0081] In an embodiment of the present application, the representation module in the SNN execution level can export multiple blocks obtained by SNN partitioning level block division into JSON format files. When the SNN execution level is initialized, the format-converted blocks are read and loaded into the simulation environment deployed in the SNN execution level, and then the corresponding neurons and synapses are executed in the execution unit in the simulation environment.
[0082] It should be noted that since the JSON format is compatible with all hardware devices in the field of brain-like computing, after converting the blocks into JSON format, the SNN partitioning level can directly process the blocks without relying on the SNN partitioning level, thereby realizing the decoupling of the SNN partitioning level and the SNN execution level.
[0083] In addition, the computational overhead corresponding to brain-inspired applications consists of the computational processing overhead of the pulses to be processed (i.e., the first computational overhead) and the transmission overhead of data transmission between blocks (i.e., the second computational overhead). For the first computational overhead, before execution, the data to be processed corresponding to each block is normalized to obtain a normalized processing result. This normalized processing result includes at least the neurons and synapses that need to participate in the operation. Then, based on the normalized processing result, the neurons and synapses to be used are determined, that is, the neurons and synapses to be involved in the operation. Finally, the computational overhead generated by processing the data to be processed corresponding to each block through these neurons and synapses to be used is calculated to obtain the first computational overhead.
[0084] As an example, in a simulation environment executed by an SNN, each execution unit is used to execute neurons and synapses in each block. In each execution unit, before executing the operation of neurons and synapses, that is, before using neurons and synapses to process the received pulses, the pulses to be processed in the receiving queue are normalized, that is, the pulses of the same target neuron or synapse are normalized to obtain the normalized processing result, and the neurons and synapses that need to participate in the operation, that is, the neurons and synapses to be used, are determined based on the normalized processing result; then, the computing unit loads the neurons and synapses to be used from the storage unit, and these neurons and synapses perform update operations after receiving the normalized pulses. After the computation completes, if a pulse transmission is required and needs to be transmitted to other execution units, where neurons and synapses in those units further process the pulse, then the pulse transmission is considered an inter-core transmission. In this case, the computation unit places the processed result in the form of a pulse in a send queue, awaiting completion of processing by all processing units. If a pulse is generated after the computation, and the pulse only needs to be transmitted to other neurons or synapses on the same execution unit and does not need to be transmitted to other execution units, then the data transmission is considered an intra-core transmission. In this case, the computation unit places the pulse in the receive queue of the corresponding processing unit, allowing the computation unit to continue loading the neurons or synapses responsible for processing the pulse and continue processing the pulse. This process is repeated until there are no more pulses in the receive queue of the current execution unit. At this point, all execution units enter the synchronization phase. During the synchronization phase, each processing unit sends the pulses in its send queue to the receive queue of the execution unit corresponding to the pulse for further processing. This phase continues until all processing units have completed their pulse transmissions (i.e., their transmit queues are cleared), at which point the computation phase begins. This process repeats to complete the application execution.
[0085] It should be noted that through the above process, based on the hierarchical BSP paradigm, the SNN execution level can analyze the computational overhead corresponding to each execution unit at each time step, and then calculate the sum of the computational overhead corresponding to each execution unit to obtain the computational overhead corresponding to the brain-like application. This computational overhead can reflect the computational complexity of the brain-like application on BSP.
[0086] Furthermore, after obtaining the computational overhead of the brain-inspired application, the data computational features corresponding to the brain-inspired application can be determined based on the computational overhead of the brain-inspired application, which is step S203.
[0087] Furthermore, after obtaining the data representation features, block features, and data calculation features corresponding to each brain-like application, similarity analysis can be performed on the brain-like applications in the initial application test set to determine brain-like applications with similar performance, that is, executing step S204.
[0088] Specifically, first, the key features of the application characteristics of each brain-like application are extracted, and the key features of multiple brain-like applications are subjected to multivariate regression processing to obtain the mapping vector corresponding to each brain-like application; finally, hierarchical clustering analysis is performed on the mapping vectors corresponding to multiple brain-like applications, that is, several applications with similar features are classified into the same group, and it is guaranteed that at least one group is obtained, thereby realizing the similarity analysis of the initial application test set.
[0089] It should be noted that the above-mentioned application features include at least: data representation features, data segmentation features and data calculation features; the above-mentioned key features are the features in each application feature that have a greater impact on the output results of the brain-like application. For each brain-like application, its corresponding key features include at least the first key feature, the second key feature and the third key feature. The first key feature, the second key feature and the third key feature correspond to the data representation feature, the data segmentation feature and the data calculation feature respectively.
[0090] In the process of extracting key features from the application features of each brain-like application, a first key feature is extracted from the data representation features of the first type of brain application according to the degree of influence of the data representation features of the first type of brain application on the output results of the first type of brain application, where the first type of brain application is any brain-like application in the initial application test set; a second key feature is extracted from the data blocking features of the first type of brain application according to the degree of influence of the data blocking features of the first type of brain application on the output results of the first type of brain application; a third key feature is extracted from the data calculation features of the first type of brain application according to the degree of influence of the data calculation features of the first type of brain application on the output results of the first type of brain application.
[0091] It should be noted that by extracting key features from the application characteristics of brain-like applications, the feature space dimensions at each level can be reduced, thereby reducing the complexity of the computational feature analysis of the application test set.
[0092] After obtaining the key features of each brain-like application, multiple regression processing can be performed on the key features of multiple brain-like applications to obtain the mapping vector corresponding to each brain-like application, that is, by establishing a feature mapping of SNN representation level-SNN division level-SNN execution level.
[0093] Specifically, a multivariate regression process is first performed on the first, second, and third key features to obtain a mapping relationship between the first, second, and third key features. Then, based on this mapping relationship, vectors are constructed for the first, second, and third key features to obtain a mapping vector corresponding to each brain-inspired application. That is, for a brain-inspired application, a mapping relationship is established between the first key feature, the second key feature, and the third key feature, so that each brain-inspired application can be represented by a mapping vector.
[0094] Furthermore, after obtaining the mapping vector corresponding to each brain-inspired application, a hierarchical clustering analysis can be performed on the multiple brain-inspired applications based on the mapping vectors corresponding to the multiple brain-inspired applications.
[0095] Specifically, first, the vector distance between the mapping vectors of any two brain-like applications in the initial application test set is calculated, and multiple brain-like applications in the initial application test set are clustered based on the vector distance, so that applications with similar distances are initially grouped together to obtain at least one initial group; then, the mapping vectors of the brain-like applications contained in each initial group are vector-merged to obtain the feature vector corresponding to each initial group; and when there are multiple initial groups, the vector distance between the feature vectors corresponding to any two initial groups in the multiple initial groups is calculated; then, based on the vector distance between any two initial groups, the multiple initial groups are clustered to obtain at least one group. Through hierarchical clustering, applications are grouped based on the feature similarity of the applications, so that each group ultimately exhibits orthogonality in the calculated features.
[0096] As an example, we randomly select one brain-inspired application (hereinafter referred to as the target brain-inspired application) from the initial application test set and calculate the vector distance between the mapping vectors of other brain-inspired applications and the mapping vector of the target brain-inspired application. We then merge brain-inspired applications whose vector distances meet a preset condition to form an initial group. For example, we merge brain-inspired applications whose vector distances are less than a preset vector distance to form the initial group corresponding to the target brain-inspired application. This process is then repeated for the brain-inspired applications that were not merged into the initial group until all brain-inspired applications have corresponding initial groups.
[0097] To ensure orthogonality among the brain-inspired applications in the streamlined application test set, after obtaining multiple initial groups, these groups were further clustered using a similar clustering process as the one used for brain-inspired applications. First, the mapping vectors of the brain-inspired applications within each initial group were merged to obtain the corresponding feature vector for each initial group. The vector distance between any two initial groups was then calculated, and the initial groups were merged based on this vector distance to obtain at least one group.
[0098] It should be noted that the above-mentioned vector distance is used to characterize the similarity between two vectors, and this similarity can reflect the degree of orthogonality between two brain-like applications or two initial groups.
[0099] Furthermore, after obtaining at least one group corresponding to the initial application test set, the brain-like application corresponding to each group can be constructed, and then a target application test set can be formed based on the constructed brain-like application, so that the brain-like applications contained in the target application test set are orthogonal.
[0100] Based on the above content, it can be seen that the solution provided in the embodiment of the present application can realize feature extraction of brain-like applications, and provides a reference basis for the design of brain-like test sets. Given a brain-like test set, the solution provided in the embodiment of the present application can be used to obtain the simplest application test set, which provides a design basis for the benchmark test set of brain-like computing. In addition, the solution provided in the embodiment of the present application can also quantitatively analyze the computing characteristics of brain-like applications based on a decoupled analysis framework. By adjusting the inputs at each level, the evaluation of the block algorithm and scheduling strategy for brain-like applications can be realized, and the performance test of the brain-like computing system can also be realized.
[0101] An embodiment of the present application also provides a device for determining a brain-inspired application test set. As shown in FIG6 , the device 600 includes: a feature extraction module 601 , a computational overhead analysis module 602 , a feature determination module 603 , a clustering module 604 , and a set determination module 605 .
[0102] A feature extraction module 601 is used to perform feature analysis on each brain-inspired application included in the initial application test set to obtain data representation features corresponding to each brain-inspired application;
[0103] A computational overhead analysis module 602 is used to calculate the computational overhead generated when each brain-inspired application is executed based on the spiking neural network paradigm;
[0104] A feature determination module 603 is configured to determine a data computation feature corresponding to each brain-inspired application based on the computational overhead corresponding to each brain-inspired application;
[0105] A clustering module 604 is configured to cluster the brain-inspired applications in the initial application test set based on the data representation characteristics and data computation characteristics of each brain-inspired application to obtain at least one group;
[0106] The set determination module 605 is used to construct a brain-inspired application based on the feature vector corresponding to each group, and obtain a target application test set corresponding to the initial application test set, wherein the multiple brain-inspired applications in the target application test set are orthogonal to each other.
[0107] In one example, the feature extraction module is specifically used to split the neuron group and synapse group in each brain-like application to obtain multiple neurons and multiple synapses, wherein the multiple neurons are independent of each other, and the multiple synapses are independent of each other; the multiple synapses are merged according to the synaptic parameters of the multiple synapses, and the multiple neurons are merged according to the neuron parameters of the multiple neurons to obtain data flow representation information corresponding to each brain-like application; the data flow representation information is feature analyzed to obtain data representation features corresponding to each brain-like application.
[0108] In one example, the computational overhead analysis module includes: a block module, a first overhead calculation module, a second overhead calculation module, and a third overhead calculation module. The block module is used to perform block processing on multiple neurons and multiple synapses corresponding to each brain-like application based on a block algorithm to obtain multiple blocks, wherein there is at least a connection relationship between the pulse operators contained in each block; the first overhead calculation module is used to calculate the computational overhead generated when performing calculations on the neurons and synapses contained in each block to obtain the first computational overhead corresponding to each block; the second overhead calculation module is used to calculate the transmission overhead of data transmission between multiple blocks to obtain the second computational overhead; and the third overhead calculation module is used to determine the computational overhead corresponding to each brain-like application based on the first computational overhead and the second computational overhead corresponding to each block.
[0109] In one example, the device for determining the brain-like application test set also includes: a feature statistics module, which is used to count the block information of each block to obtain the data block features corresponding to each brain-like application, wherein the block information at least includes the connection information between the neurons and synapses contained in each block, and the connection relationship between the neurons and synapses in each block and the neurons and synapses in other blocks.
[0110] In one example, the first overhead calculation module is specifically used to obtain a normalized processing result by normalizing the data to be processed corresponding to each block; determine the neurons and synapses to be used based on the normalized processing result; and count the computational cost generated by processing the data to be processed corresponding to each block through the neurons and synapses to be used to obtain a first computational overhead.
[0111] In one example, the clustering module includes a key feature extraction module, a regression processing module, and a hierarchical clustering module. The key feature extraction module is used to extract key features from the application features of each brain-inspired application, where the application features include at least data representation features, data segmentation features, and data calculation features. The regression processing module is used to perform multivariate regression processing on the key features of multiple brain-inspired applications to obtain a mapping vector corresponding to each brain-inspired application. The hierarchical clustering module is used to perform hierarchical cluster analysis on the mapping vectors corresponding to multiple brain-inspired applications to obtain at least one group.
[0112] In one example, the key features of each brain-like application include at least a first key feature, a second key feature, and a third key feature, wherein the key feature extraction module is specifically used to extract the first key feature from the data representation feature of the first type of brain application according to the degree of influence of the data representation feature of the first type of brain application on the output result of the first type of brain application, wherein the first type of brain application is any brain-like application in the initial application test set; extract the second key feature from the data blocking feature of the first type of brain application according to the degree of influence of the data blocking feature of the first type of brain application on the output result of the first type of brain application; extract the third key feature from the data calculation feature of the first type of brain application according to the degree of influence of the data calculation feature of the first type of brain application on the output result of the first type of brain application.
[0113] In one example, the regression processing module is specifically used to perform multivariate regression processing on the first key feature, the second key feature, and the third key feature to obtain a mapping relationship between the first key feature, the second key feature, and the third key feature; based on the mapping relationship, vectors of the first key feature, the second key feature, and the third key feature are constructed to obtain a mapping vector corresponding to each brain-like application.
[0114] In one example, the hierarchical clustering module is specifically used to calculate the vector distance between the mapping vectors of any two brain-like applications in the initial application test set; perform cluster analysis on multiple brain-like applications in the initial application test set based on the vector distance to obtain at least one initial group; perform vector merging on the mapping vectors of the brain-like applications contained in each initial group to obtain the feature vector corresponding to each initial group; when there are multiple initial groups, calculate the vector distance of the feature vectors corresponding to any two initial groups in the multiple initial groups; cluster the multiple initial groups based on the vector distance between any two initial groups to obtain at least one group.
[0115] The device for determining the brain-like application test set provided in the embodiment of the present application can implement each process implemented in the aforementioned method embodiment. To avoid repetition, it will not be described here.
[0116] Those skilled in the art can clearly understand that, for the convenience and brevity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In actual applications, the above-mentioned functions can be distributed and completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated into one processing unit, or each unit can exist physically alone, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.
[0117] FIG7 shows a schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application.
[0118] The electronic device 700 may include a processor 701 and a memory 702 storing computer program instructions.
[0119] Specifically, the processor 701 may include a central processing unit (CPU), or an application-specific integrated circuit (ASIC), or may be configured to implement one or more integrated circuits of the embodiments of the present application.
[0120] The memory 702 may include a large capacity memory for data or instructions. By way of example and not limitation, the memory 702 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive, or a combination of two or more of these. Where appropriate, the memory 702 may include removable or non-removable (or fixed) media. Where appropriate, the memory 702 may be inside or outside the integrated gateway disaster recovery device. In a specific embodiment, the memory 702 is a non-volatile solid-state memory.
[0121] The memory may include read-only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, electrical, optical or other physical / tangible memory storage devices. Thus, generally, the memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the method according to an aspect of the present disclosure.
[0122] The processor 701 reads and executes computer program instructions stored in the memory 702 to implement any one of the methods for determining a brain-inspired application test set in the above embodiments.
[0123] In one example, the electronic device may further include a communication interface 703 and a bus 710. As shown in FIG7, the processor 701, the memory 702, and the communication interface 703 are connected via the bus 710 and communicate with each other.
[0124] The communication interface 703 is mainly used to implement communication between various modules, devices, units and / or equipment in the embodiments of the present application.
[0125] Bus 710 comprises hardware, software or both, couples the parts of electronic equipment to each other.For example, and not limitation, bus can comprise accelerated graphics port (AGP) or other graphics bus, enhanced industry standard architecture (EISA) bus, front side bus (FSB), hypertransport (HT) interconnection, industry standard architecture (ISA) bus, infinite bandwidth interconnection, low pin count (LPC) bus, memory bus, micro channel architecture (MCA) bus, peripheral component interconnection (PCI) bus, PCI-Express (PCI-X) bus, serial advanced technology attachment (SATA) bus, video electronics standard association local (VLB) bus or other suitable bus or two or more of these combinations.In suitable cases, bus 710 can comprise one or more buses.Although the present application embodiment describes and shows specific bus, the application considers any suitable bus or interconnection.
[0126] In addition, in conjunction with the method for determining a brain-inspired application test set in the above embodiments, embodiments of the present application may provide a computer-readable storage medium for implementation. The computer-readable storage medium stores computer program instructions; when the computer program instructions are executed by a processor, they implement any of the methods for determining a brain-inspired application test set in the above embodiments.
[0127] In addition, in conjunction with the method for determining a brain-inspired application test set in the above embodiments, embodiments of the present application may provide a computer program product for implementation. When the instructions in the computer program product are executed by a processor of an electronic device, the electronic device executes and implements any of the methods for determining a brain-inspired application test set in the above embodiments.
[0128] It should be understood that the present application is not limited to the specific configurations and processes described above and illustrated in the figures. For the sake of brevity, a detailed description of known methods is omitted here. In the above embodiments, several specific steps are described and illustrated as examples. However, the method process of the present application is not limited to the specific steps described and illustrated. Those skilled in the art can make various changes, modifications, and additions, or change the order of the steps after understanding the spirit of the present application.
[0129] The functional modules shown in the above-described block diagram can be implemented as hardware, software, firmware or a combination thereof. When implemented in hardware, it can be, for example, an electronic circuit, an application specific integrated circuit (ASIC), appropriate firmware, a plug-in unit, a function card or the like. When implemented in software, the elements of the present application are programs or code segments that are used to perform the required tasks. The program or code segment can be stored in a machine-readable medium, or transmitted on a transmission medium or a communication link by a data signal carried in a carrier wave. "Machine-readable medium" can include any medium that can store or transmit information. Examples of machine-readable media include electronic circuits, semiconductor memory devices, ROMs, flash memories, erasable ROMs (EROMs), floppy disks, CD-ROMs, optical disks, hard disks, optical fiber media, radio frequency (RF) links, etc. The code segment can be downloaded via a computer network such as the Internet, an intranet, etc.
[0130] It should also be noted that the exemplary embodiments mentioned in this application describe some methods or systems based on a series of steps or devices. However, this application is not limited to the order of the above steps. In other words, the steps can be performed in the order mentioned in the embodiments, or in a different order, or several steps can be performed simultaneously.
[0131] The above describes various aspects of the present disclosure with reference to the flowcharts and / or block diagrams of the method, device, electronic device and storage medium for determining a brain-like application test set according to an embodiment of the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of boxes in the flowchart and / or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine so that these instructions executed by the processor of the computer or other programmable data processing device enable the implementation of the functions / actions specified in one or more boxes in the flowchart and / or block diagram. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor or a field programmable logic circuit. It can also be understood that each box in the block diagram and / or flowchart and the combination of boxes in the block diagram and / or flowchart can also be implemented by dedicated hardware that performs the specified function or action, or can be implemented by a combination of dedicated hardware and computer instructions.
[0132] The above description is only a specific embodiment of the present application. Those skilled in the art will clearly understand that for the convenience and brevity of description, the specific working processes of the systems, modules and units described above can refer to the corresponding processes in the aforementioned method embodiments, and will not be repeated here. It should be understood that the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the scope of protection of the present application.
Claims
1. A method for determining a brain-inspired application test set, including: Performing feature analysis on each brain-inspired application included in the initial application test set to obtain the data representation features corresponding to each brain-inspired application; Calculating the computational overhead generated when each brain-inspired application is executed based on the spiking neural network paradigm; Determining the data calculation features corresponding to each brain-inspired application according to the computational overhead corresponding to each brain-inspired application; Performing clustering processing on the brain-inspired applications in the initial application test set based on the data representation features and the data calculation features of each brain-inspired application to obtain at least one group; Constructing brain-inspired applications according to the feature vectors corresponding to each group to obtain the target application test set corresponding to the initial application test set, wherein there is orthogonality among the multiple brain-inspired applications in the target application test set.
2. The method according to claim 1, wherein, Performing feature analysis on each brain-inspired application included in the initial application test set to obtain the data representation features corresponding to each brain-inspired application, including: Splitting the neuron groups and synapse groups in each brain-inspired application to obtain a plurality of neurons and a plurality of synapses, wherein the plurality of neurons are independent of each other, and the plurality of synapses are independent of each other; Performing a merging operation on the plurality of synapses according to the synaptic parameters of the plurality of synapses, and performing a merging operation on the plurality of neurons according to the neuron parameters of the plurality of neurons to obtain the data stream representation information corresponding to each brain-inspired application; Performing feature analysis on the data stream representation information to obtain the data representation features corresponding to each brain-inspired application.
3. The method according to claim 2, wherein, Calculating the computational overhead generated when each brain-inspired application is executed based on the spiking neural network paradigm, including: Performing a chunking process on the plurality of neurons and the plurality of synapses corresponding to each brain-inspired application based on a chunking algorithm to obtain a plurality of chunks, wherein there is at least a connection relationship between the spiking operators included in each chunk; Calculating the computational overhead generated when the neurons and synapses included in each chunk perform calculations to obtain the first computational overhead corresponding to each chunk; Calculating the transmission overhead of data transmission between the plurality of chunks to obtain a second computational overhead; Determining the computational overhead corresponding to each brain-inspired application based on the first computational overhead corresponding to each chunk and the second computational overhead.
4. The method according to claim 3, wherein, After performing a chunking process on the plurality of neurons and the plurality of synapses corresponding to each brain-inspired application based on a chunking algorithm to obtain a plurality of chunks, the method further includes: Statistical chunk information of each chunk to obtain the data chunking features corresponding to each brain-inspired application, wherein the chunk information includes at least the connection information between the neurons and synapses included in each chunk, and the connection relationship between the neurons, synapses in each chunk and the neurons, synapses in other chunks.
5. The method according to claim 3, wherein, Calculating the computational overhead generated when calculating the neurons and synapses included in each block, and obtaining the first computational overhead corresponding to each block, includes: Obtaining a normalization result by performing normalization processing on the data to be processed corresponding to each block; Determining the neurons and synapses to be used according to the normalization result; Statistical computing costs generated by processing the data to be processed corresponding to each block through the neurons and synapses to be used, and obtaining the first computational overhead.
6. The method according to claim 4, wherein, Performing clustering processing on the brain-like applications in the initial application test set based on the data representation features and data calculation features of each brain-like application, to obtain at least one group, including: Extracting key features from the application features of each brain-like application, where the application features at least include: the data representation features, the data block features, and the data calculation features; Performing multiple regression processing on the key features of the multiple brain-like applications to obtain a mapping vector corresponding to each brain-like application; Performing hierarchical clustering analysis on the mapping vectors corresponding to the multiple brain-like applications to obtain at least one group.
7. The method according to claim 6, wherein, The key features of each brain-like application at least include a first key feature, a second key feature, and a third key feature. Extracting the key features from the application features of each brain-like application includes: Extracting the first key feature from the data representation features of the first brain-like application according to the influence degree of the data representation features of the first brain-like application on the output result of the first brain-like application, where the first brain-like application is any brain-like application in the initial application test set; Extracting the second key feature from the data block features of the first brain-like application according to the influence degree of the data block features of the first brain-like application on the output result of the first brain-like application; Extracting the third key feature from the data calculation features of the first brain-like application according to the influence degree of the data calculation features of the first brain-like application on the output result of the first brain-like application.
8. The method according to claim 7, wherein, Performing multiple regression processing on the key features of the multiple brain-like applications to obtain a mapping vector corresponding to each brain-like application, includes: Performing multiple regression processing on the first key feature, the second key feature, and the third key feature to obtain a mapping relationship between the first key feature, the second key feature, and the third key feature; Constructing vectors for the first key feature, the second key feature, and the third key feature based on the mapping relationship to obtain a mapping vector corresponding to each brain-like application.
9. The method according to claim 6, wherein, Performing hierarchical clustering analysis on the mapping vectors corresponding to the multiple brain-like applications to obtain at least one group, includes: Calculating the vector distance between the mapping vectors of any two brain-like applications in the initial application test set; Performing clustering analysis on multiple brain-like applications in the initial application test set according to the vector distance to obtain at least one initial group; Performing vector merging on the mapping vectors of the brain-like applications included in each initial group to obtain the feature vector corresponding to each initial group; When the number of the at least one initial group is multiple, calculating the vector distance between the feature vectors corresponding to any two of the multiple initial groups; Clustering the multiple initial groups based on the vector distance between any two initial groups to obtain the at least one group.
10. An apparatus for determining a brain-like application test set, comprising: A feature extraction module, configured to perform feature analysis on each brain-like application included in the initial application test set to obtain the data representation feature corresponding to each brain-like application; A calculation overhead analysis module, configured to calculate the calculation overhead generated when each brain-like application is executed based on the spiking neural network paradigm; A feature determination module, configured to determine the data calculation feature corresponding to each brain-like application according to the calculation overhead corresponding to each brain-like application; A clustering module, configured to perform clustering processing on the brain-like applications in the initial application test set based on the data representation feature of each brain-like application and the data calculation feature of each brain-like application to obtain at least one group; A set determination module, configured to construct brain-like applications according to the feature vectors corresponding to each group to obtain the target application test set corresponding to the initial application test set, wherein there is orthogonality between multiple brain-like applications in the target application test set.
11. An electronic device, comprising: A processor and a memory storing computer program instructions; When the processor executes the computer program instructions, the method for determining a brain-like application test set according to any one of claims 1-9 is implemented.
12. A computer-readable storage medium, on which computer program instructions are stored, and when the computer program instructions are executed by a processor, the method for determining a brain-like application test set according to any one of claims 1-9 is implemented.
13. A computer program product, when the instructions in the computer program product are executed by a processor of an electronic device, the electronic device is caused to execute the method for determining a brain-like application test set according to any one of claims 1-9.
Citation Information
Patent Citations
Method for generating test case of object-oriented software based on clustering
CN106294127A
Deep neural network test picture selection method and system based on multi-objective optimization
CN116403067A
Brain-like synapse learning method and neuromorphic hardware system of brain-like technology
CN116663623A