Event transmission method, processing device, computer readable medium

By grouping neurons and using Huffman coding, the problem of low event transmission efficiency in neuromorphic models is solved, achieving more efficient data transmission.

CN116415636BActive Publication Date: 2026-01-23LYNXI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111628763.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-28
Publication Date
2026-01-23
Estimated Expiration
2041-12-28

AI Technical Summary

Technical Problem

Existing sparse and dense event transmission methods suffer from high bit consumption and low transmission efficiency in neuromorphic models.

Method used

By grouping neurons, determining the pulse sequence based on the pulse firing results, and using Huffman coding to generate event information, the amount of data transmitted is reduced and the transmission efficiency is improved.

Benefits of technology

This reduces the transmission cost of each event message, achieving higher event transmission efficiency and reducing the length of data packets and the decoding computation load of the receiving node.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116415636B_ABST
    Figure CN116415636B_ABST
Patent Text Reader

Abstract

The present disclosure provides an event transmission method, a processing device and a computer readable medium. The method is applied to a first processing component in the processing device, and a plurality of neurons are arranged in the processing components of the processing device to receive and / or send pulse information. The method comprises: determining a pulse firing result of the neurons of the first processing component when the processing device completes processing in any processing cycle; determining a first pulse sequence for a second processing component according to the pulse firing result and sending packet information of the first processing component to the second processing component; generating first event information for the second processing component according to the first pulse sequence, wherein the first event information comprises encoded data and a timestamp of the first pulse sequence; and sending the first event information to the second processing component. According to the embodiments of the present disclosure, the consumption of each event information transmission can be reduced, and a higher event transmission efficiency can be achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computer technology, and in particular to an event transmission method, processing device, and computer-readable medium. Background Technology

[0002] Neuromorphic technology refers to a technique that uses electronic technology to simulate the structure of the nervous system in biological organisms for data processing, which can significantly improve data processing and machine learning capabilities. In related technologies, neuromorphic models (also known as spiking neural networks) can be implemented through hardware circuits (such as neuromorphic chips) or software systems.

[0003] Neuromorphic models contain numerous neuronal modules, which are driven by events. This event-driven mechanism is prodromal; a neuron receives many inputs, and when these inputs receive information, the neuron initiates computation. Whether a neuron performs a computation depends on the availability of input events, which significantly reduces the dynamic power consumption of large-scale chips or systems.

[0004] In related technologies, event transmission can be performed using sparse or dense transmission methods. Sparse transmission uses the global index of the neuron that emits a pulse and its timestamp as the transmission content. Since large-scale networks have many neurons, the neuron number requires a large number of bits (e.g., 64 bits) to represent, resulting in high bit consumption per event and significant transmission overhead. Dense transmission, on the other hand, represents all neurons that may emit pulses as a bit sequence, regardless of whether an event has been emitted. Most of the bits are transmitted inefficiently, leading to lower transmission efficiency. Summary of the Invention

[0005] This disclosure provides an event transmission method, a processing device, and a computer-readable medium.

[0006] In a first aspect, this disclosure provides an event transmission method applied to a first processing component in a processing device, the processing device including multiple processing components, each processing component having multiple neurons configured to receive and / or transmit pulse information, the first processing component being any processing component in the processing device, the event transmission method comprising:

[0007] When the processing device completes any processing cycle, the pulse firing result of the neurons of the first processing component is determined; based on the pulse firing result and the transmission grouping information of the neurons of the first processing component to the neurons of the second processing component, a first pulse sequence is determined for the second processing component, the second processing component being a processing component in the processing device used to receive event information from the first processing component; based on the first pulse sequence, first event information for the second processing component is generated, the first event information including the encoded data and timestamp of the first pulse sequence; and the first event information is sent to the second processing component.

[0008] In some possible implementations, generating the first event information for the second processing component based on the first pulse sequence includes: encoding the first pulse sequence according to a preset encoding method to obtain encoded data of the first pulse sequence; and generating the first event information based on the encoded data of the first pulse sequence and a timestamp.

[0009] In some possible implementations, the method further includes: upon receiving second event information sent by a third processing component, decoding the encoded data in the second event information to determine a second pulse sequence, wherein the third processing component is a processing component in the processing device used to send event information to the first processing component; determining the target neuron in the first processing component to receive pulses based on the second pulse sequence and the receiving group information of the neurons of the first processing component to the neurons of the third processing component; and sending pulse information to the target neuron.

[0010] In some possible implementations, the second event information includes the number of encoded data or the length of encoded data. Decoding the encoded data in the second event information to determine the second pulse sequence includes: decoding the encoded data in the second event information according to the number of encoded data or the length of encoded data in the second event information and a preset encoding method to obtain the second pulse sequence.

[0011] In some possible implementations, the encoding method includes Huffman coding. The step of encoding the first pulse sequence according to the preset encoding method to obtain the encoded data of the first pulse sequence includes: splitting the first pulse sequence according to the occurrence position of the pulse in the first pulse sequence to obtain at least one subsequence of variable length; converting the subsequence into fixed-length sub-encoded data according to the preset conversion code table; and determining the encoded data of the first pulse sequence according to the sub-encoded data.

[0012] In some possible implementations, the method further includes: determining, based on the compilation results of each processing component in the processing device, the sending packet information of the neuron of the first processing component to the neuron of the second processing component, and the receiving packet information of the neuron of the first processing component to the neuron of the third processing component.

[0013] In some possible implementations, the processing device is used to perform any one of image processing tasks, speech processing tasks, text processing tasks, and video processing tasks.

[0014] Secondly, this disclosure provides a processing device, which includes: a plurality of processing components, each processing component having a plurality of neurons, the neurons being used to receive and / or transmit pulse information, wherein the first processing component in the processing device includes:

[0015] The result determination module is used to determine the pulse firing result of the neurons of the first processing component when the processing device completes any processing cycle; the sequence determination module is used to determine a first pulse sequence for the second processing component based on the pulse firing result and the transmission grouping information of the neurons of the first processing component to the neurons of the second processing component, wherein the second processing component is a processing component in the processing device used to receive event information from the first processing component; the event generation module is used to generate first event information for the second processing component based on the first pulse sequence, wherein the first event information includes the encoded data and timestamp of the first pulse sequence; and the event sending module is used to send the first event information to the second processing component, wherein the first processing component is any processing component in the processing device.

[0016] In some possible implementations, the event generation module is configured to: encode the first pulse sequence according to a preset encoding method to obtain encoded data of the first pulse sequence; and generate the first event information based on the encoded data of the first pulse sequence and a timestamp.

[0017] In some possible implementations, the first processing component further includes: a decoding module, configured to decode the encoded data in the second event information upon receiving the second event information sent by the third processing component, and determine the second pulse sequence, wherein the third processing component is a processing component in the processing device used to send event information to the first processing component; a neuron determination module, configured to determine the target neuron in the first processing component to receive pulses based on the second pulse sequence and the receiving group information of the neurons of the first processing component to the neurons of the third processing component; and a pulse transmission module, configured to send pulse information to the target neuron.

[0018] In some possible implementations, the second event information includes the number of encoded data or the length of encoded data. The decoding module is used to: decode the encoded data in the second event information according to the number of encoded data or the length of encoded data in the second event information and a preset encoding method to obtain the second pulse sequence.

[0019] In some possible implementations, the encoding method includes Huffman coding. The event generation module is configured to: split the first pulse sequence according to the occurrence position of the pulse in the first pulse sequence to obtain at least one subsequence of variable length; convert the subsequence into fixed-length sub-coded data according to a preset conversion code table; and determine the encoded data of the first pulse sequence according to the sub-coded data.

[0020] In some possible implementations, the first processing component further includes: a grouping information determination module, configured to determine, based on the compilation results of each processing component in the processing device, the sending grouping information of the neuron of the first processing component to the neuron of the second processing component, and the receiving grouping information of the neuron of the first processing component to the neuron of the third processing component.

[0021] In some possible implementations, the processing device is used to perform any one of image processing tasks, speech processing tasks, text processing tasks, and video processing tasks.

[0022] Thirdly, this disclosure provides a processing apparatus comprising: a plurality of processing components; and an on-chip network configured to interact with data and external data between the plurality of processing components; one or more of the processing components storing one or more instructions, the one or more of the instructions being executed by the one or more of the processing components to enable the one or more of the processing components to perform the event transmission method described above.

[0023] Fourthly, this disclosure provides a computer-readable medium having a computer program stored thereon, wherein the computer program implements the event transmission method described above when executed by a processing component.

[0024] The embodiments provided in this disclosure can determine the pulse firing results of neurons in the processing component; determine the pulse sequence of each group of neurons based on the pulse firing results and the transmission group information; generate corresponding event information based on the pulse sequence and send it to the corresponding processing component, thereby reducing the consumption of transmitting each event information and achieving higher event transmission efficiency.

[0025] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description

[0026] The accompanying drawings are provided to further illustrate the present disclosure and form part of the specification. They are used together with the embodiments of the present disclosure to explain the disclosure and do not constitute a limitation thereof. The above and other features and advantages will become more apparent to those skilled in the art from the detailed description of exemplary embodiments with reference to the accompanying drawings, in which:

[0027] Figure 1 A flowchart of an event transmission method provided in an embodiment of this disclosure;

[0028] Figure 2 A schematic diagram illustrating a grouping method for an event transmission method provided in an embodiment of this disclosure;

[0029] Figure 3 A block diagram of a first processing component of a processing apparatus provided in an embodiment of this disclosure;

[0030] Figure 4 This is a block diagram of a processing device provided in an embodiment of the present disclosure. Detailed Implementation

[0031] To enable those skilled in the art to better understand the technical solutions of this disclosure, exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments of this disclosure to aid understanding. These should be considered merely exemplary. Therefore, those skilled in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.

[0032] Where there is no conflict, the various embodiments of this disclosure and the features thereof in the embodiments may be combined with each other.

[0033] As used herein, the term “and / or” includes any and all combinations of one or more related enumerated entries.

[0034] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. As used herein, the singular forms “a” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that when the terms “comprising” and / or “made of” are used in this specification, the presence of the stated feature, integral, step, operation, element, and / or component is specified, but the presence or addition of one or more other features, integrals, steps, operations, elements, components, and / or groups thereof is not excluded. Words such as “connected” or “linked” are not limited to physical or mechanical connections but can include electrical connections, whether direct or indirect.

[0035] Unless otherwise specified, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and this disclosure, and will not be interpreted as having an idealized or overly formal meaning, unless expressly so defined herein.

[0036] As mentioned earlier, sparse transmission methods in related technologies use the global index of the neuron that emits the pulse and the timestamp as the transmission content. For example, event packet 1 (343, 20), event packet 2 (258, 20), and event packet 3 (222, 20) represent that neurons 343, 258, and 222 emitted a pulse at timestamp 20, respectively. However, large-scale networks have a large number of neurons, and the neuron numbering requires a lot of bits (e.g., 64 bits) to represent. The timestamp, for example, occupies 8 bits (resetting to 0 every 256 bits). Transmitting an event requires at least 72 bits. In addition, including the additional information in the event data packet, such as the target address and checksum information, each event requires a lot of bits.

[0037] Dense transmission in related technologies represents all neurons that may fire pulses as a bit sequence, regardless of whether an event has been fired. For example, with 8 neurons, the event information is represented as [(0,1,0,0,0,0,1,0), 20], where 0 represents no pulse fired, 1 represents a pulse fired, and 20 represents a timestamp. The advantage of this method is that each neuron occupies only 1 bit, and event data packets composed of a large number of neurons only need to include a shared additional information segment, averaging less than 2 bits per neuron. However, because it transmits regardless of whether an event has been fired, at low firing rates (e.g., one in a thousand), most bits are transmitted ineffectively, resulting in low transmission efficiency.

[0038] According to the event transmission method of this disclosure, neurons in a node can be grouped, the pulse sequence of each group of neurons can be determined based on the pulse firing results of the neurons, the pulse sequence can be encoded and timestamps and other information can be added to generate corresponding event information and send it to the corresponding node, thereby reducing the consumption of transmitting each event information and achieving higher event transmission efficiency.

[0039] According to embodiments of this disclosure, a processing device may be provided. The processing device may be, for example, an electronic device such as a terminal device or a server. The terminal device may be an in-vehicle device, a user equipment (UE), a mobile device, a user terminal, a terminal, a cellular phone, a cordless phone, a personal digital assistant (PDA), a handheld device, a computing device, an in-vehicle device, a wearable device, etc. This disclosure does not limit the specific type of processing device.

[0040] In some possible implementations, the processing device includes multiple processing components, which may be, for example, chips (e.g., neuromorphic chips, graphics processing units (GPUs), hardware (e.g., boards), or machines (e.g., terminal devices), or modules within a software system. This disclosure does not limit the specific type of processing components.

[0041] In some possible implementations, the various processing components of the processing device can act as nodes in the processing process, and these nodes are interconnected. Each processing component contains multiple neurons, which are used to receive and / or send pulse information, thereby constructing a spiking neural network in the processing device, enabling the processing device to perform corresponding data processing tasks. These data processing tasks may include, for example, any one of image processing, speech processing, text processing, or video processing tasks; this disclosure does not limit the specific type of data processing task.

[0042] The event transmission method according to the embodiments of this disclosure can be applied to any processing component (referred to as the first processing component) in a processing device to realize event transmission between processing components.

[0043] Figure 1 A flowchart illustrating an event transmission method provided in an embodiment of this disclosure. (Refer to...) Figure 1 The method includes:

[0044] In step S11, when the processing device completes any processing cycle, the pulse firing result of the neuron of the first processing component is determined;

[0045] In step S12, based on the pulse emission result and the transmission grouping information of the neurons of the first processing component to the neurons of the second processing component, a first pulse sequence for the second processing component is determined. The second processing component is a processing component in the processing device used to receive event information from the first processing component.

[0046] In step S13, a first event information for the second processing component is generated based on the first pulse sequence, wherein the first event information includes the encoded data and timestamp of the first pulse sequence;

[0047] In step S14, the first event information is sent to the second processing component.

[0048] For example, in a processing procedure (such as a brain simulation process), the processing device can process data at a preset processing cycle (or time step) to complete the corresponding processing task step by step.

[0049] Regarding the first processing component, in step S11, upon completion of one processing cycle, the first processing component can determine the pulse firing result of the neurons, that is, determine whether each neuron in the first processing component has fired a pulse. This disclosure does not limit the specific determination method.

[0050] In some possible implementations, in step S12, a first pulse sequence for the second processing component is determined based on the pulse firing result and the transmission grouping information of the neurons of the first processing component to the neurons of the second processing component. The second processing component is any processing component in the processing device used to receive event information from the first processing component.

[0051] In some possible implementations, the transmission group information can be predetermined and stored in advance. That is, the processing component that acts as the sending node and the processing component that acts as the receiving node are grouped together, and the sequence number of the neuron in the sending node and the sequence number of the neuron in the receiving node are recorded.

[0052] Figure 2 This is a schematic diagram illustrating a grouping method for an event transmission method provided in an embodiment of this disclosure. (Refer to...) Figure 2 Processing component A is the sending node (first processing component), and processing components B and C are the receiving nodes (second processing components). A includes neurons 21, 22, 23, and 24; B includes neurons 25 and 26; and C includes neurons 27 and 28. Neuron 21 may send pulses to neurons 25 and 27, neuron 22 may send pulses to neurons 25 and 26, and neuron 23 may send pulses to neuron 27.

[0053] In the example, processing components A and B can be grouped together (A, B); and processing components A and C can be grouped together (A, C). Group (A, B) includes neuron sequences (globally numbered) (21, 22), and group (A, C) includes neuron sequences (21, 23).

[0054] In the example, if the pulse firing result of processing component A is {0,1,0,1}, that is, neurons 22 and 24 fire pulses while neurons 21 and 23 do not fire pulses, then the pulse sequence extracted from the pulse firing result for group (A, B) is {0,1}, and the pulse sequence extracted from group (A, C) is {0,0}. Thus, the first pulse sequence for the second processing component is obtained.

[0055] In some possible implementations, after obtaining the first pulse sequence, in step S13, first event information for the second processing component can be generated. For example, the first pulse sequence can be encoded using a preset encoding method to obtain encoded data; a timestamp (e.g., the sequence number of the processing cycle) and other possible data (e.g., the length or quantity of encoded data, the target address, checksum information, etc.) are then added to obtain the data packet to be transmitted, i.e., the first event information. This method reduces the amount of data transmitted and allows the first event information to be parsed by the second processing component.

[0056] In some possible implementations, in step S14, the first event information can be sent to the second processing component to complete the event transmission process.

[0057] According to embodiments of this disclosure, the pulse firing results of neurons in the processing component can be determined; based on the pulse firing results and the transmission group information, the pulse sequence of each group of neurons can be determined; corresponding event information can be generated based on the pulse sequence and sent to the corresponding processing component, thereby reducing the consumption of each event information transmission and achieving higher event transmission efficiency.

[0058] The event transmission method according to embodiments of this disclosure will now be described in detail.

[0059] Before executing the event transmission method according to an embodiment of the present disclosure, the processing components may be grouped according to (sending node, receiving node) pairs.

[0060] In some possible implementations, the event transmission method according to embodiments of this disclosure may further include: determining, based on the compilation results of each processing component in the processing device, the sending packet information of the neuron of the first processing component to the neuron of the second processing component, and the receiving packet information of the neuron of the first processing component to the neuron of the third processing component.

[0061] In other words, the grouping information of each processing component can be determined during the compilation of the processing device. The compilation result includes the sending and receiving relationships between each processing component. Based on these relationships, processing components acting as sending nodes can be grouped together with processing components acting as receiving nodes. For example, refer to... Figure 2 This yields groups (A, B) and (A, C).

[0062] In some possible implementations, when the first processing component acts as the sending node, i.e. Figure 2 Processing component A can determine the transmission group information of neurons in the first processing component (A) in relation to neurons in the second processing components (B, C). This transmission group information includes at least a sequence of neurons that may transmit pulses; for example, group (A, B) includes neuron sequences (21, 22), so that a pulse sequence can be extracted based on the transmission group information. It should be understood that the transmission group information may also include other information, and this disclosure does not limit this.

[0063] In some possible implementations, when the first processing component acts as the receiving node, i.e. Figure 2 The processing components B and C can determine the received packet information of the neurons of the first processing component (B and C) for the neurons of the third processing component (A).

[0064] The received packet information includes at least a sequence of neurons that may send pulses, for example, group (A, B) includes neuron sequences (21, 22), so that upon receiving event information, decoding can be performed to determine the neuron that sent the pulse. The received packet information may also include corresponding information about the neurons that received the pulse; for example, neuron 25 in processing component B receives pulses from neurons 21 and 22, and neuron 26 receives pulses from neuron 22. It should be understood that the received packet information may also include other information, and this disclosure does not limit this.

[0065] In some possible implementations, each processing component can simultaneously store both transmit and receive packet information, so as to generate and send events based on the transmit packet information; decode the received events based on the receive packet information, and send pulses to the corresponding neurons, thereby realizing the pulse transmission and reception process of neurons.

[0066] In this way, neurons can be grouped according to the pulse transmission and reception relationship of neurons in the processing component, so that events can be transmitted in groups, thereby improving the efficiency of event transmission.

[0067] In some possible implementations, during the processing of the processing device, upon completion of any processing cycle, the first processing component may determine the neuron's pulse firing result in step S11, for example... Figure 2The pulse emission result of the processing component A is {0,1,0,1}.

[0068] In some possible implementations, in step S12, based on the pulse firing result and the transmission grouping information of the neurons of the first processing component to the neurons of the second processing component, a first pulse sequence for the second processing component can be extracted. The second processing component is any processing component in the processing device used to receive event information from the first processing component.

[0069] In this way, by extracting data from each of the second processing components separately, the first pulse sequence for each second processing component can be determined. For example... Figure 2 The pulse sequence {0,1} of group (A,B) and the pulse sequence {0,0} of group (A,C) are extracted from the pulse emission results.

[0070] In some possible implementations, in step S13, first event information for the second processing component may be generated. Step S13 may include:

[0071] The first pulse sequence is encoded according to a preset encoding method to obtain the encoded data of the first pulse sequence; the first event information is generated based on the encoded data of the first pulse sequence and the timestamp.

[0072] For example, the first pulse sequence can be encoded to reduce the amount of data transmitted.

[0073] In some possible implementations, when the pulse firing rate is low, most of the bits in the first pulse sequence are 0 to indicate no pulses fired, and only a small number of bits are 1 to indicate fired pulses. Therefore, the Huffman coding approach can be used for encoding.

[0074] In some possible implementations, the preset encoding method includes Huffman coding, wherein the step of encoding the first pulse sequence according to the preset encoding method to obtain the encoded data of the first pulse sequence includes:

[0075] Based on the position of the pulses in the first pulse sequence, the first pulse sequence is split to obtain at least one subsequence of variable length; according to a preset conversion code table, the subsequences are converted into sub-encoded data of fixed length; based on the sub-encoded data, the encoded data of the first pulse sequence is determined.

[0076] In other words, the first pulse sequence can be split into subsequences of variable length based on the position of pulse 1 in the first pulse sequence. Each subsequence contains a 1 or all 0s. Then, according to a preset conversion code table, each subsequence of variable length is converted into sub-encoded data of fixed length. Finally, the sub-encoded data is concatenated to obtain the encoded data.

[0077] For example, the following conversion code table can be used to convert a subsequence with a maximum length of 32 bits into a 5-bit code. However, this disclosure does not impose any restrictions on the maximum length of the subsequence or the fixed length of the sub-coded data.

[0078] Table 1 Conversion Code Table

[0079] Subsequences of variable length Fixed-length encoding All zeros (at least one zero) 00000(0) 1 00001(1) 01 00010(2) 001 00011(3) 0001 00100(4) 00001 00101(5) 000001 00110(6) 0000001 00111(7) …… …… 0000000000000000000000000000001 (31 zeros) 11111(31)

[0080] For example, if the first pulse sequence is {0000,0000,0000,0100}, then the first pulse sequence can be split into two subsequences {0000,0000,0000,01} and {00}. According to Table 1, these subsequences are converted to obtain the sub-coded data {01101}(14) and {00000}. In this case, the coded data of the first pulse sequence can be represented as {0110100000}; or the trailing zeros can be omitted, and the coded data can be represented as {01101}.

[0081] It can be seen that when the pulse firing rate is low, after encoding the first pulse sequence, the number of bits is reduced from 16 bits to 5 bits (or 10 bits), which greatly reduces the amount of data.

[0082] It should be understood that the above is only an exemplary implementation of encoding conversion. Those skilled in the art can set other arbitrary encoding conversion methods according to the actual situation, as long as they can achieve the purpose of reducing the amount of data. This disclosure does not impose any restrictions on this.

[0083] In this way, the length of the encoded data can be reduced, thereby reducing the cost of transmitting each event message.

[0084] In some possible implementations, a timestamp (e.g., the sequence number of the processing cycle) and other possible data (e.g., the length or quantity of the encoded data, the target address, check information, etc.) can be added to the encoded data of the first pulse sequence to obtain the data packet to be transmitted, i.e., the first event information.

[0085] For example, if the encoded data is {01101}, which includes a sub-data and a timestamp of 62, then the information of the first event can be represented as shown in Table 2:

[0086] Table 2 Event Information

[0087] 01101 0001 0111110

[0088] The number of encoded data items is represented by 4 bits. 0001 indicates that there is one sub-data item, each with 5 bits. If the additional information of the data packet contains the length of the encoded data, the number of sub-data items does not need to be added. 0111110 represents the timestamp 62. This disclosure does not limit the specific representation of the first event information.

[0089] In some possible implementations, after obtaining the first event information, the first event information can be sent to the corresponding second processing component in step S14.

[0090] In this way, based on the sent group information, the processing steps S12-S14 are executed on each of the second processing components in the group containing the first processing component, thereby realizing the event sending of each second processing component and completing the event sending process of this cycle.

[0091] In this way, the cost of transmitting each event message can be reduced, achieving higher event transmission efficiency.

[0092] It should be understood that the processing components may not group the neurons. The processing component acting as the sending node directly encodes the entire pulse output result and broadcasts the encoded data to the processing components on the receiving side. After the processing component acting as the receiving node decodes the encoded data, it extracts the pulse information of the required part of the neurons from the decoded data. Those skilled in the art can set this according to the actual situation, and this disclosure does not limit it.

[0093] In some possible implementations, the spikes in the first spike sequence may include analog values, such as 0.5, 0.8, 1.2, 1.5, etc., to represent different information. In this case, the first spike sequence can still be encoded in the manner described above, and after encoding, the numerical field of the spike is added to each sub-encoded data, and they are transmitted together in a data packet.

[0094] For example, if the sequence to be compressed is {0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0}, then the pulse portion is {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, and the compressed result is {00100, 01010}, with the analog numerical portion being [0.5, 1.5]. The analog numerical portion can be placed after the compressed result (i.e., the encoded data). After adding the number of encoded data items and the timestamp, the data packet to be transmitted, i.e., the first event information, can be obtained.

[0095] In some possible implementations, the second processing component, acting as the receiving node, can decode the position and value of the pulse upon receiving the event information, using them together as the decoding result. This result can be represented, for example, as a pair of (idx, value) or a sequence of 0s and analog values ​​(e.g., non-zero membrane potentials). Here, idx represents the number (i.e., position) of pulse 1, and value represents the value of pulse 1. For example, the decoding result of the event information described above can be represented as (4, 0.5), (14, 1.5), or directly as {0, 0, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 1.5, 0, 0}.

[0096] This approach can enhance the richness of the content transmitted by the event information and further improve the efficiency of event transmission.

[0097] In some possible implementations, the first processing component can act as a sending node, generating and sending event information to the next-level node (the second processing component); at the same time, the first processing component can also act as a receiving node, receiving event information sent by the previous-level node (referred to as the third processing component).

[0098] In some possible implementations, the event transmission method of this disclosure embodiment may further include:

[0099] Upon receiving the second event information sent by the third processing component, the encoded data in the second event information is decoded to determine the second pulse sequence. The third processing component is the processing component in the processing device used to send event information to the first processing component.

[0100] Based on the second pulse sequence and the reception grouping information of the neurons of the first processing component to the neurons of the third processing component, the target neuron to receive pulses in the first processing component is determined; pulse information is sent to the target neuron.

[0101] For example, when the processing device completes any processing cycle, the third processing component generates and sends event information (referred to as second event information) to the first processing component. Upon receiving the second event information, the first processing component can decode it.

[0102] In some possible implementations, similar to the first event information, the second event information may include encoded data and a timestamp, and may also include additional information such as the number of encoded data items, the quantity of encoded data, the target address, and verification information. This disclosure does not impose any limitations on this.

[0103] In some possible implementations, the second event information can be decoded based on the number of encoded data items or the quantity of encoded data. Specifically, the step of decoding the encoded data in the second event information to determine the second pulse sequence may include:

[0104] Based on the number or length of encoded data in the second event information and the preset encoding method, the encoded data in the second event information is decoded to obtain the second pulse sequence.

[0105] In other words, the encoded data can be determined from the second event information based on the number or length of the encoded data. For example, for the event information in Table 2, the encoded data in the event information can be determined to be 1 piece, i.e., {01101}, based on the number of encoded data 0001.

[0106] Then, the encoded data is decoded according to the preset encoding method. For example, when using Huffman coding, according to the conversion code table shown in Table 1, the encoded data {01101} can be decoded into the pulse sequence {0000,0000,0000,01}.

[0107] In some possible implementations, if the pulse sequence has the same length as the preset sequence, it is directly used as the second pulse sequence; if the pulse sequence has a different length than the preset sequence, zeros are added to the end of the pulse sequence until it has the same length as the preset sequence. For example, zeros are added to {0000,0000,0000,01} to get {0000,0000,0000,0100}, thus obtaining the second pulse sequence.

[0108] In this way, the pulse sequence can be decoded from the event information in a simple manner, reducing the computational complexity.

[0109] In some possible implementations, after obtaining the second pulse sequence, the target neuron to receive the pulse in the first processing component can be determined based on the pre-stored reception grouping information of the neurons in the third processing component stored in the first processing component.

[0110] In the example, refer to Figure 1 When the first processing component is processing component B in group (A, B), the decoded second pulse sequence is {0,1}. According to the neuron sequence (21, 22), the neuron that sends the pulse is 22, and therefore the target neurons to receive the pulse are neurons 25 and 26.

[0111] In some possible implementations, pulse information can be sent to the target neurons, for example, pulses can be sent to target neurons 25 and 26, thereby completing the event transmission process.

[0112] In this way, for each received second event information, the first processing component can execute the above-described event reception and processing process in parallel, thereby realizing parallel decoding and subsequent processing between groups and completing the event reception process of this cycle. Similarly, each processing component, as a receiving node, can also decode and process its respective received event information in parallel, and this disclosure does not impose any limitations on this.

[0113] In this way, events can be received, thus completing the entire event transmission process. Using packet transmission significantly reduces the length of transmitted data packets, decreases the computational load on the receiving node when decoding each packet, and improves the efficiency of parallel decoding.

[0114] According to the event transmission method of this disclosure, neurons in a processing component can be grouped based on the send-receive relationship between nodes. For a processing component acting as a sending node, the pulse sequence of each group of neurons can be determined based on the pulse firing results of the neurons. The pulse sequence is encoded and timestamps and other information are added to generate corresponding event information, which is then sent to the corresponding processing component. For a processing component acting as a receiving node, the received event information can be decoded to determine the target neuron to which the pulse is to be received, and the pulse is fired to the target neuron. In this way, the cost of transmitting each event information can be reduced, and higher event transmission efficiency can be achieved.

[0115] According to the event transmission method of this disclosure, Huffman coding is used to encode and decode the pulse sequence, which further reduces the amount of data transmitted.

[0116] The event transmission method according to the embodiments of this disclosure can be applied to various application scenarios in various application fields such as brain simulation, computer vision, and target detection, thereby reducing the event transmission overhead between various components (such as chips, machines, hardware, and modules) in the device and improving computational efficiency.

[0117] According to embodiments of this disclosure, a processing device is also provided, which includes a plurality of processing components, each processing component having a plurality of neurons configured to receive and / or transmit pulse information.

[0118] Figure 3 This is a block diagram of a first processing component of a processing apparatus provided in an embodiment of the present disclosure.

[0119] Reference Figure 3 The first processing component in the processing device includes:

[0120] The result determination module 31 is used to determine the pulse firing result of the neurons of the first processing component when the processing device completes any processing cycle.

[0121] The sequence determination module 32 is used to determine a first pulse sequence for the second processing component based on the pulse firing result and the transmission grouping information of the neurons of the first processing component to the neurons of the second processing component. The second processing component is a processing component in the processing device used to receive event information from the first processing component.

[0122] The event generation module 33 is used to generate first event information for the second processing component based on the first pulse sequence, wherein the first event information includes the encoded data and timestamp of the first pulse sequence;

[0123] The event sending module 34 is used to send the first event information to the second processing component, wherein the first processing component is any processing component in the processing device.

[0124] In some possible implementations, the event generation module is configured to: encode the first pulse sequence according to a preset encoding method to obtain encoded data of the first pulse sequence; and generate the first event information based on the encoded data of the first pulse sequence and a timestamp.

[0125] In some possible implementations, the first processing component further includes: a decoding module, configured to decode the encoded data in the second event information upon receiving the second event information sent by the third processing component, and determine the second pulse sequence, wherein the third processing component is a processing component in the processing device used to send event information to the first processing component; a neuron determination module, configured to determine the target neuron in the first processing component to receive pulses based on the second pulse sequence and the receiving group information of the neurons of the first processing component to the neurons of the third processing component; and a pulse transmission module, configured to send pulse information to the target neuron.

[0126] In some possible implementations, the second event information includes the number of encoded data or the length of encoded data. The decoding module is used to: decode the encoded data in the second event information according to the number of encoded data or the length of encoded data in the second event information and a preset encoding method to obtain the second pulse sequence.

[0127] In some possible implementations, the encoding method includes Huffman coding. The event generation module is configured to: split the first pulse sequence according to the occurrence position of the pulse in the first pulse sequence to obtain at least one subsequence of variable length; convert the subsequence into fixed-length sub-coded data according to a preset conversion code table; and determine the encoded data of the first pulse sequence according to the sub-coded data.

[0128] In some possible implementations, the first processing component further includes: a grouping information determination module, configured to determine, based on the compilation results of each processing component in the processing device, the sending grouping information of the neuron of the first processing component to the neuron of the second processing component, and the receiving grouping information of the neuron of the first processing component to the neuron of the third processing component.

[0129] In some possible implementations, the processing device is used to perform any one of image processing tasks, speech processing tasks, text processing tasks, and video processing tasks.

[0130] Figure 4 This is a block diagram of a processing device provided in an embodiment of the present disclosure.

[0131] Reference Figure 4 This disclosure provides a processing device comprising: a plurality of processing components 1001; and an on-chip network 1002 configured to interact with data between the plurality of processing components 1001 and external data; one or more of the processing components 1001 storing one or more instructions, the one or more instructions being executed by the one or more processing components 1001 to enable the one or more processing components 1001 to perform the event transmission method described above.

[0132] Furthermore, embodiments of this disclosure also provide a computer-readable medium having a computer program stored thereon, wherein the computer program implements the event transmission method described above when executed by a processing component.

[0133] It will be understood by those skilled in the art that all or some of the steps, systems, or apparatuses disclosed above, and their functional modules / units, can be implemented as software, firmware, hardware, or suitable combinations thereof. In hardware implementations, the division between functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed collaboratively by several physical components. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application-specific integrated circuit (ASIC). Such software may be distributed on a computer-readable medium, which may include computer storage media (or non-transitory media) and communication media (or transient media). As is known to those skilled in the art, the term computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, magnetic cartridges, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by a computer. Furthermore, it is well known to those skilled in the art that communication media typically contain computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves or other transmission mechanisms, and may include any information delivery medium.

[0134] Example embodiments have been disclosed herein, and while specific terminology has been used, it is for illustrative purposes only and should be construed as such, and is not intended to be limiting. In some instances, it will be apparent to those skilled in the art that features, characteristics, and / or elements described in connection with particular embodiments may be used alone, or in combination with features, characteristics, and / or elements described in connection with other embodiments, unless otherwise expressly indicated. Therefore, those skilled in the art will understand that various changes in form and detail may be made without departing from the scope of this disclosure as set forth by the appended claims.

Claims

1. An event transmission method, characterized in that, A first processing component is applied in a processing device, the processing device including multiple processing components, each processing component having multiple neurons, the neurons being used to receive and / or transmit pulse information, the first processing component being any one of the processing components in the processing device, the method comprising: When the processing device completes any processing cycle, the pulse firing result of the neuron of the first processing component is determined; Based on the pulse emission result and the transmission group information of the neurons of the first processing component to the neurons of the second processing component, a first pulse sequence is determined for the second processing component. The second processing component is a processing component in the processing device used to receive event information from the first processing component. The transmission group information is used to characterize the group information of the first processing component as a sending node and the second processing component as a receiving node. Based on the first pulse sequence, first event information is generated for the second processing component, the first event information including the encoded data and timestamp of the first pulse sequence; The first event information is sent to the second processing component.

2. The method according to claim 1, characterized in that, The step of generating first event information for the second processing component based on the first pulse sequence includes: The first pulse sequence is encoded according to a preset encoding method to obtain the encoded data of the first pulse sequence; The first event information is generated based on the encoded data and timestamp of the first pulse sequence.

3. The method according to claim 1 or 2, characterized in that, The method further includes: Upon receiving the second event information sent by the third processing component, the encoded data in the second event information is decoded to determine the second pulse sequence. The third processing component is the processing component in the processing device used to send event information to the first processing component. Based on the second pulse sequence and the reception grouping information of the neurons of the first processing component to the neurons of the third processing component, the target neuron to receive the pulse in the first processing component is determined. Pulse information is sent to the target neuron.

4. The method according to claim 3, characterized in that, The second event information includes the quantity or length of encoded data. Decoding the encoded data in the second event information to determine the second pulse sequence includes: Based on the number or length of encoded data in the second event information and the preset encoding method, the encoded data in the second event information is decoded to obtain the second pulse sequence.

5. The method according to claim 2, characterized in that, The encoding method includes Huffman coding. The step of encoding the first pulse sequence according to a preset encoding method to obtain the encoded data of the first pulse sequence includes: Based on the position of the pulse in the first pulse sequence, the first pulse sequence is split to obtain at least one subsequence of variable length; According to the preset conversion code table, the sub-sequences are converted into sub-encoded data of fixed length respectively; Based on the sub-encoded data, the encoded data of the first pulse sequence is determined.

6. The method according to claim 3, characterized in that, The method further includes: Based on the compilation results of each processing component in the processing device, the transmission packet information of the neuron of the first processing component to the neuron of the second processing component, and the reception packet information of the neuron of the first processing component to the neuron of the third processing component are determined.

7. The method according to claim 1 or 2, characterized in that, The processing device is used to perform any one of image processing tasks, voice processing tasks, text processing tasks, and video processing tasks.

8. A processing apparatus, characterized in that, The processing device includes: multiple processing components, each processing component having multiple neurons, the neurons being used to receive and / or transmit pulse information, the first processing component in the processing device including: The result determination module is used to determine the pulse firing result of the neurons of the first processing component when the processing device completes any processing cycle. The sequence determination module is used to determine a first pulse sequence for the second processing component based on the pulse emission result and the transmission group information of the neurons of the first processing component to the neurons of the second processing component. The second processing component is a processing component in the processing device used to receive event information from the first processing component. The transmission group information is used to characterize the group information of the first processing component as a sending node and the second processing component as a receiving node. An event generation module is used to generate first event information for the second processing component based on the first pulse sequence, wherein the first event information includes encoded data and a timestamp of the first pulse sequence; The event sending module is used to send the first event information to the second processing component. The first processing component can be any processing component in the processing device.

9. A processing device, characterized in that, include: Multiple processing components; as well as The on-chip network is configured to interact with data between the multiple processing components and with external data; One or more of the processing components store one or more instructions, which are executed by one or more of the processing components to enable the one or more processing components to perform the event transmission method of any one of claims 1-7.

10. A computer-readable medium having a computer program stored thereon, characterized in that, The computer program implements the event transmission method as described in any one of claims 1-7 when executed by the processing component.

Citation Information

Patent Citations

  • Data processing method based on pulse neural network, computing nuclear circuit and chip

    CN113537449A