Data processing method and apparatus, electronic device, computer readable medium

By determining and transmitting the encoding sequence based on the firing frequency of neurons in many-core devices, the problem of large data transmission volume between many-core devices is solved, achieving more efficient data transmission.

CN116468086BActive Publication Date: 2026-04-21LYNXI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
LYNXI TECH CO LTD
Filing Date
2022-01-11
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

How to reduce the amount of data transmission between many core devices in order to improve the efficiency of cable data transmission between devices.

Method used

By acquiring neuron firing data from many-core devices, determining the coding sequence based on the firing frequency of neurons, and transmitting the coding sequence to other many-core devices, the transmission of original neuron identifiers is reduced.

Benefits of technology

It effectively reduces the amount of data transmitted across devices and improves the data transmission efficiency of cables.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116468086B_ABST
    Figure CN116468086B_ABST
Patent Text Reader

Abstract

This disclosure provides a data processing method based on a many-core device. The many-core device includes multiple processing cores, each processing core including multiple neurons. The data processing method includes: acquiring firing data of at least one first neuron in a first many-core device, the firing data including a neuron identifier of the first neuron; determining an encoding sequence corresponding to the neuron identifier of each first neuron based on the firing frequency of each first neuron; and transmitting a data packet containing the encoding sequence corresponding to each first neuron to a second many-core device. This disclosure also provides a data transmission device, an electronic device, and a computer-readable medium.
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 a data processing method and apparatus, electronic device, and computer-readable medium based on many-core devices. Background Technology

[0002] In related technologies, many-core devices typically include multiple processing cores. These devices are connected and exchange data via cables (such as network cables or fiber optic cables), but the bandwidth of the cables is limited.

[0003] Therefore, how to reduce the amount of data transmitted across devices in order to improve the data transmission efficiency of cables between devices has become an urgent technical problem to be solved. Summary of the Invention

[0004] This disclosure provides a data processing method and apparatus, electronic device, and computer-readable medium based on many-core devices.

[0005] According to a first aspect of this disclosure, an embodiment of this disclosure provides a data processing method based on a many-core device, the many-core device including multiple processing cores, each processing core including multiple neurons, the data processing method including: acquiring firing data of at least one first neuron in a first many-core device, the firing data including a neuron identifier of the first neuron; determining an encoding sequence corresponding to the neuron identifier of each first neuron according to the firing frequency of each first neuron; and transmitting a data packet containing the encoding sequence corresponding to each first neuron to a second many-core device.

[0006] In some embodiments, determining the encoding sequence corresponding to the neuron identifier of each first neuron based on the firing frequency of each first neuron includes: determining the firing frequency interval to which the firing frequency of each first neuron belongs; determining the information sequence corresponding to each first neuron based on a lookup table and the firing frequency interval corresponding to each first neuron, wherein different firing frequency intervals correspond to different information sequences; and for each information sequence corresponding to a first neuron, setting the element corresponding to the neuron identifier of the first neuron in the information sequence as a firing identifier code and setting the element corresponding to other neurons as a non-firing identifier code, so as to obtain the encoding sequence corresponding to the first neuron.

[0007] In some embodiments, in the lookup table, each firing frequency interval corresponds to an information sequence, and each information sequence corresponds to one or more neurons whose firing frequency is located in the corresponding firing frequency interval. Different elements in the information sequence correspond to different neurons.

[0008] In some embodiments, each of the transmission frequency intervals is determined by dividing the transmission frequency from high to low; the number of elements in the information sequence corresponding to the transmission frequency interval with a higher transmission frequency is configured to be less than the number of elements in the information sequence corresponding to the transmission frequency interval with a lower transmission frequency.

[0009] In some embodiments, the firing identifier is 1 and the non-firing identifier is 0. The firing identifier is used to identify that the corresponding neuron is currently firing, and the non-firing identifier is used to identify that the corresponding neuron is not currently firing.

[0010] In some embodiments, before determining the encoding sequence corresponding to the neuron identifier of each first neuron according to the firing frequency of each first neuron, the data processing method further includes: determining the firing frequency of the first neuron according to the neuron type of the first neuron.

[0011] In some embodiments, the data processing method further includes: determining the firing frequency interval to which the firing frequency of each neuron in the target time period belongs based on the firing frequency of each neuron in the first many-core device in the target time period; and configuring the neuron corresponding to the information sequence of each firing frequency interval in the lookup table based on the firing frequency interval corresponding to each neuron in the target time period.

[0012] According to a second aspect of this disclosure, embodiments of this disclosure provide a data processing method based on a many-core device. The many-core device includes multiple processing cores, each processing core including multiple neurons. The data processing method includes: receiving a data packet sent by a first many-core device, the data packet including at least one encoding sequence; determining a neuron identifier of at least one first neuron currently being sent in the first many-core device based on each encoding sequence, to determine a second neuron in a second many-core device corresponding to the neuron identifier of each first neuron, and synaptic information between the first neuron and the second neuron; and performing synaptic integration on each second neuron in the second many-core device.

[0013] In some embodiments, each element of the encoding sequence corresponds to a neuron in a first many-core device, and the encoding sequence includes at least one firing identifier code, which is used to identify the current firing of the corresponding neuron; determining the neuron identifier of the at least one first neuron currently firing in the first many-core device according to each of the encoding sequences includes: determining the neuron in the first many-core device corresponding to each of the encoding sequences according to a reverse lookup table; and determining the neuron identifier of the first neuron corresponding to each firing identifier code in each of the encoding sequences.

[0014] According to a third aspect of this disclosure, an embodiment of this disclosure provides a data processing apparatus applied to a many-core device, the many-core device including multiple processing cores, each processing core including multiple neurons, the data processing apparatus including: an acquisition module, configured to acquire firing data of at least one first neuron in a first many-core device, the firing data including a neuron identifier of the first neuron; a first data conversion module, configured to determine an encoding sequence corresponding to the neuron identifier of each first neuron according to the firing frequency of each first neuron; and a transmission module, configured to transmit a data packet containing the encoding sequence corresponding to each first neuron to a second many-core device.

[0015] According to a fourth aspect of this disclosure, an embodiment of this disclosure provides a data processing apparatus applied to a many-core device, the many-core device including multiple processing cores, each processing core including multiple neurons, the data processing apparatus including: a receiving module for receiving a data packet sent by a first many-core device, the data packet including at least one encoded sequence; a second data conversion module for determining, based on each encoded sequence, a neuron identifier of at least one first neuron currently being issued in the first many-core device, to determine a second neuron in a second many-core device corresponding to the neuron identifier of each first neuron, and synaptic information between the first neuron and the second neuron; and a calculation module for performing synaptic integration calculation on each second neuron in the second many-core device.

[0016] According to a fifth aspect of this disclosure, embodiments of this disclosure provide a many-core device, the many-core device including a data processing apparatus as described in the third aspect, and / or a data processing apparatus as described in the fourth aspect.

[0017] According to a sixth aspect of this disclosure, an embodiment of this disclosure provides an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores one or more computer programs executable by the at least one processor, the one or more computer programs being executed by the at least one processor to enable the at least one processor to perform the data processing method provided in any of the preceding aspects.

[0018] According to a seventh aspect of this disclosure, embodiments of this disclosure provide a computer-readable medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the data processing method provided in any of the above aspects.

[0019] 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

[0020] 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:

[0021] Figure 1 A flowchart illustrating a data processing method provided in an embodiment of this disclosure;

[0022] Figure 2 for Figure 1 A flowchart illustrating a specific implementation of step S12;

[0023] Figure 3 A flowchart illustrating another data processing method provided in an embodiment of this disclosure;

[0024] Figure 4 A block diagram of a data processing apparatus provided in an embodiment of this disclosure;

[0025] Figure 5 A block diagram of another data processing apparatus provided in an embodiment of this disclosure;

[0026] Figure 6 This is a block diagram of an electronic device provided in an embodiment of the present disclosure. Detailed Implementation

[0027] 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.

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

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

[0030] 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.

[0031] 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.

[0032] Figure 1 A flowchart of a data processing method provided in this disclosure embodiment is shown below. Figure 1 This disclosure provides a data processing method based on a many-core device. The many-core device includes multiple processing cores, and each processing core includes multiple neurons. The data processing method can be implemented based on a data processing device, which can be integrated into a first many-core device. The data processing method includes steps S11 to S13.

[0033] Step S11: Obtain firing data of at least one first neuron in the first many-core device, the firing data including the neuron identifier of the first neuron.

[0034] Here, the first neuron is the neuron in the first many-core device that is currently transmitting pulse data and needs to transmit pulse data to the second many-core device outside the first many-core device. The first neuron can be any neuron in any processing core of the first many-core device. Here, "currently transmitting pulse data" can refer to the pulse data transmitted at the current time step.

[0035] The second many-core device is a many-core device other than the first many-core device that is connected to the first many-core device via a neural cable (such as a network cable or optical fiber) and interacts with it for data exchange. The second many-core device is the target many-core device for the pulse data emitted by the first neuron in the first many-core device, and the second neuron in the second many-core device is the target (object) for the pulse data emitted by the first neuron in the first many-core device. The number of first neurons currently emitting pulse data in the first many-core device can be at least one, and each first neuron can correspond to at least one second neuron in the second many-core device. This embodiment does not limit the number of first neurons, the number of second neurons, or their correspondence; these can be determined according to actual circumstances.

[0036] In some embodiments, when the first neuron of the first many-core device needs to transmit emitted pulse data to an external second many-core device, the neuron identifier of the currently emitted first neuron can be determined to obtain the emitted data of the first neuron. In the many-core device, the neuron identifier is used to uniquely identify a neuron, and different neurons have different neuron identifiers.

[0037] In some embodiments, the firing data of the first neuron may further include the kernel identifier of the processing kernel in which the first neuron is located. The kernel identifier is used to uniquely identify the processing kernel, and different processing kernels have different kernel identifiers.

[0038] Step S12: Determine the coding sequence corresponding to the neuron identifier of each first neuron based on the firing frequency of each first neuron.

[0039] In step S12, the encoding sequence corresponding to the neuron identifier of each first neuron is determined, thereby converting the neuron identifier of each first neuron into the corresponding encoding sequence for transmission, without transmitting the neuron identifier in the original output data.

[0040] Step S13: Transmit the data packet containing the encoding sequence corresponding to each first neuron to the second many-core device.

[0041] In step S13, the data packet containing the encoding sequence corresponding to each first neuron is transmitted to the second many-core device via a neural cable (e.g., network cable or optical fiber).

[0042] After receiving the data packet from the first many-core device, the second many-core device can identify the neuron identifier of at least one first neuron currently being issued in the first many-core device according to the encoding sequence. It can then find at least one synaptic information corresponding to the first neuron locally through the neuron identifier of the first neuron. The synaptic information records the neuron identifier of the second neuron corresponding to the first neuron in the second many-core device and the corresponding synaptic weight, etc. Thus, the second neuron in the second many-core device corresponding to each first neuron can be determined, as well as the synaptic weight between the first neuron and the corresponding second neuron, thereby enabling the synaptic integral calculation of the second neuron.

[0043] According to the technical solution of the data processing method provided in this disclosure, when a first many-core device needs to transmit data emitted by a first neuron to a second many-core device, the neuron identifier of the first neuron that needs to transmit the emitted data in the first many-core device is compressed and converted into a corresponding encoding sequence. Only the corresponding encoding sequence needs to be transmitted to the second many-core device, without transmitting data such as the neuron identifier of the first neuron. This effectively reduces the amount of data transmitted across devices, saves data transmission bandwidth between many-core devices, and effectively improves the data transmission efficiency of cables between devices. Furthermore, in this disclosure, the neuron corresponding to the encoding sequence can be determined based on the neuron's firing frequency. When a neuron fires, the encoding sequence corresponding to that neuron can be determined. This allows only the encoding sequence corresponding to the emitted first neuron to be transmitted each time, without transmitting sequences that do not contain information about the emitted first neuron, thereby further reducing the amount of data transmitted and lowering the data transmission cost.

[0044] In practical applications, the many-core device in this embodiment can be used to run a brain simulation system, and running a brain simulation system can correspond to multiple many-core devices. The first many-core device can be any many-core device, and the second many-core device can be any many-core device other than the first many-core device. When the neurons of any many-core device need to transmit data to other many-core devices outside of it, that many-core device acts as the first many-core device, and the other many-core device acts as the second many-core device.

[0045] Figure 2 for Figure 1 A flowchart illustrating a specific implementation of step S12 is shown below. Figure 2 As shown, in some embodiments, the coding sequence corresponding to the neuron identifier of each first neuron is determined according to the firing frequency of each first neuron, i.e., step S12, which may further include steps S121 to S123.

[0046] Step S121: Determine the firing frequency range to which the firing frequency of each first neuron belongs.

[0047] In some embodiments, the method may further include step S120, which involves acquiring the firing frequency of each first neuron, prior to step S121. In some embodiments, the firing frequency of a neuron can be determined by real-time monitoring of its firing behavior. The firing frequency refers to the frequency at which a neuron fires pulse data over a period of time.

[0048] In other embodiments, the firing frequency of a neuron can be determined based on its neuron type. In this case, the firing frequency of each neuron is fixed and predetermined. The neuron type can be determined based on its encoding method, and the firing frequency can be set according to different encoding methods. For example, neurons using burst coding can be set to have a higher firing frequency.

[0049] In some embodiments, the distribution frequency can be pre-divided into multiple distribution frequency intervals according to the distribution frequency from high to low. For example, it can be divided into four levels of distribution frequency intervals: higher distribution frequency interval, high distribution frequency interval, medium distribution frequency interval, and low distribution frequency interval. Each distribution frequency interval corresponds to a distribution frequency range. For example, the distribution frequency range corresponding to the higher distribution frequency interval is 90% to 100%, the distribution frequency range corresponding to the high distribution frequency interval is 70% to 90%, the distribution frequency range corresponding to the medium distribution frequency interval is 40% to 70%, and the distribution frequency range corresponding to the low distribution frequency interval is 0% to 40%.

[0050] In step S121, the corresponding firing frequency range can be determined based on the firing frequency range to which the firing frequency of the first neuron belongs.

[0051] Step S122: Based on the lookup table, determine the information sequence corresponding to each first neuron according to the firing frequency interval corresponding to each first neuron. Different firing frequency intervals correspond to different information sequences.

[0052] In some embodiments, the lookup table is a pre-set lookup table, which may include the information sequence corresponding to each pre-divided firing frequency interval, and the neuron identifier of the neuron in the first many-core device corresponding to each information sequence.

[0053] In the lookup table, each firing frequency interval corresponds to an information sequence. Different firing frequency intervals correspond to different information sequences. Each information sequence corresponds to one or more neurons whose firing frequency falls within the corresponding firing frequency interval. Each element in the information sequence corresponds to a neuron identifier. Different elements correspond to different neurons. The value of each element is used to identify whether the corresponding neuron is currently firing. The value of each element can be a firing identifier or a non-firing identifier. The firing identifier is used to indicate that the neuron corresponding to the element is currently firing, and the non-firing identifier is used to indicate that the neuron corresponding to the element is not currently firing. In some embodiments, the firing identifier can be set to 1, and the non-firing identifier can be set to 0.

[0054] In some embodiments, in the lookup table, each information sequence may correspond to a sequence number, which is used to uniquely identify the corresponding information sequence.

[0055] In some embodiments, in order to effectively reduce the amount of data and data transmission cost of data emitted by neurons with high firing frequency, the number of elements in the information sequence corresponding to the high firing frequency interval can be configured to be less than the number of elements in the information sequence corresponding to the low firing frequency interval. With this setting, for frequently firing neurons (i.e., neurons with high firing frequency), since the number of elements in the corresponding information sequence is smaller, the amount of data transmitted each time is lower, thereby effectively reducing the data transmission cost of frequently firing neurons.

[0056] For example, in some embodiments, each element of the information sequence can correspond to one bit of data. Assuming the data transmission cost per bit is B, and the number of elements in an information sequence is N (i.e., the number of bits is N), the additional transmission cost of the information sequence is C. o The additional transmission cost is the transmission cost required to transmit additional information of the information sequence (such as the packet encoding of the data packet containing the information sequence). Therefore, the total transmission cost corresponding to the information sequence is C = C o +N*B, where the data transmission cost for each neuron corresponding to this information sequence is C. B =(C o / N)+B.

[0057] When any one or more neurons corresponding to the information sequence fire, the information sequence must be transmitted. The transmission probability of the information sequence can be determined based on the firing frequency of each neuron corresponding to the information sequence.

[0058] For example, the transmission probability of this information sequence can be expressed as Where r iThis represents the firing frequency (firing probability) of the i-th neuron corresponding to the information sequence, (1r i ) represents the probability that the i-th neuron does not fire. The probability that all neurons corresponding to the information sequence do not fire, i.e., the probability that the information sequence is not transmitted, is denoted by P, which represents the transmission probability of the information sequence. For example, since the information sequence is determined based on the firing frequency of each neuron, the transmission probability of the information sequence can be expressed as P = 1 - (1 - r). N Where r represents the average firing frequency of each neuron corresponding to the information sequence, i.e.

[0059] According to the formula for the transmission probability P of the information sequence, the larger the number of neurons (i.e., the number of elements N) corresponding to the information sequence, the higher the transmission probability of the information sequence. Therefore, in order to reduce the data transmission cost of each neuron corresponding to the information sequence, the number of neurons N corresponding to the information sequence can be appropriately selected.

[0060] In some embodiments, the neurons corresponding to each information sequence in the lookup table can be periodically changed according to the firing frequency of each neuron to update the lookup table. Specifically, the data processing method may further include: determining the firing frequency interval to which the firing frequency of each neuron in the target time period belongs based on the firing frequency of each neuron in the first many-core device in the target time period; and configuring the neurons corresponding to the information sequences corresponding to each firing frequency interval in the lookup table according to the firing frequency interval corresponding to each neuron in the target time period.

[0061] For example, when the neuron type changes, its firing frequency also changes accordingly. Therefore, it is necessary to redetermine the firing frequency range to which the neuron's firing frequency belongs, and then redetermine its corresponding information sequence.

[0062] Step S123: For the information sequence corresponding to each first neuron, set the neuron identifier of the corresponding first neuron in the information sequence as the issuing identifier code, and set the elements corresponding to other neurons as the non-issuing identifier code, so as to obtain the encoding sequence corresponding to the first neuron.

[0063] In some embodiments, in the lookup table, each element of each information sequence can be initialized as a non-issuing identifier. In step S123, for the information sequence corresponding to the first neuron that is issued, the element of the neuron identifier of the first neuron corresponding to the information sequence can be set as the issuing identifier, while the elements corresponding to other neurons remain as non-issuing identifiers, thereby obtaining the encoding sequence corresponding to the first neuron.

[0064] It is understandable that when the firing frequencies of multiple first neurons correspond to the same firing frequency range, these multiple first neurons correspond to the same information sequence. Therefore, the elements in the information sequence that correspond to these multiple first neurons can be set as firing identifier codes to obtain the encoding sequence corresponding to these multiple first neurons, and these multiple first neurons correspond to the same encoding sequence.

[0065] It is understandable that the encoded sequence is obtained by setting issuance identification codes for elements in the information sequence. The encoded sequence conforms to the definition of the information sequence mentioned above, and the transmission cost of the encoded sequence can be calculated with reference to the transmission cost of the information sequence mentioned above. Each element of the encoded sequence corresponds to a neuron in the first many-core device. The encoded sequence includes at least one issuance identification code to identify the first neuron currently issuing among the neurons corresponding to the encoded sequence. When all neurons corresponding to the encoded sequence are currently issuing, all elements of the encoded sequence are issuance identification codes. When at least one neuron among all neurons corresponding to the encoded sequence is not currently issuing, the encoded sequence also includes at least one non-issuance identification code.

[0066] In some embodiments, for different distribution frequency ranges, the higher the distribution frequency of a range, the fewer data bits are in the corresponding information sequence. For example, the data bits of the information sequence corresponding to a higher distribution frequency range can be 16 bits, while the data bits of the information sequence corresponding to a very high distribution frequency range can be 32 bits, the data bits of the information sequence corresponding to a medium distribution frequency range can be 64 bits, and the data bits of the information sequence corresponding to a low distribution frequency range can be 128 bits. Each bit can correspond to the value of an element in the information sequence, such as a distribution identifier or a non-distribution identifier, thereby forming the corresponding encoded sequence.

[0067] As an example, suppose the first many-core device has 256 neurons, and the first neurons a1, a2, and a128 of the first many-core device are currently firing. Then, in step S11, the firing data of the first neurons a1, a2, and a128 are obtained.

[0068] The firing frequencies of the first neuron a1 and the first neuron a2 both belong to the higher firing frequency range, while the firing frequency of the first neuron a128 belongs to the lower firing frequency range. Therefore, in step S12, by looking up a table, it can be determined that the first neuron a1 and the first neuron a2 correspond to the same information sequence A, and the first neuron a128 corresponds to information sequence B. Information sequence A corresponds to the higher firing frequency range, and information sequence B corresponds to the lower firing frequency range. Therefore, information sequence A corresponds to a smaller number of neurons, while information sequence B corresponds to a larger number of neurons. For example, if information sequence A has 16 data bits, it corresponds to 16 neurons; if information sequence B has 128 data bits, it corresponds to 128 neurons.

[0069] Assuming that the neurons in the first many-core device corresponding to information sequence A include neurons a1 to a16, and the neurons in the first many-core device corresponding to information sequence B include neurons a128 to a256, and assuming that the issuing identifier is represented by 1 and the non-issuing identifier is represented by 0, then when the first neuron a1 and the first neuron a2 are issuing, the information sequence A corresponding to the first neuron a1 and the first neuron a2 is found by looking up the table, and the elements in information sequence A corresponding to the first neuron a1 and the first neuron a2 are all set to 1, while the elements corresponding to other neurons are kept set to 0. The resulting encoding sequence A corresponding to the first neuron a1 and the first neuron a2 can be represented as "1100000000000000", which indicates that the first neuron a1 corresponding to the first element and the first neuron a2 corresponding to the second element are currently issuing.

[0070] Similarly, when the first neuron a128 fires, the information sequence B corresponding to the first neuron a128 is found by looking up the table, and the elements in the information sequence B corresponding to the first neuron a128 are all set to 1, while the elements corresponding to other neurons are kept set to 0. The encoding sequence B corresponding to the first neuron a128 can be represented as "100.....00", which indicates that the first neuron a128 corresponding to the first element is currently firing.

[0071] After determining the encoding sequence A corresponding to the first neuron a1 and the first neuron a2, and the table encoding sequence B corresponding to the first neuron a128, in step S13, the data packet containing the encoding sequence A and the encoding sequence B is transmitted to the second many-core device.

[0072] In step S13, the transmitted data packet may further include additional information, which may be the packet number of the data packet. The packet number of the data packet may be generated based on the sequence number of each encoded sequence contained in the data packet. For example, the sequence number of each encoded sequence contained in the data packet may be combined to form the packet code of the data packet. For example, the packet number of the data packet containing encoded sequence A and encoded sequence B may be AB.

[0073] Figure 3 A flowchart illustrating another data processing method provided in this disclosure embodiment is shown below. Figure 3 As shown, this disclosure also provides a data processing method based on a many-core device. The many-core device includes multiple processing cores, and each processing core includes multiple neurons. The data processing method is implemented based on a data processing device, which can be integrated into a second many-core device. The data processing method includes steps S31 to S33.

[0074] Step S31: Receive a data packet sent by the first many-core device. The data packet includes at least one encoded sequence.

[0075] Each element of the encoding sequence corresponds to a neuron in the first many-core device. The encoding sequence includes at least one firing identifier, which is used to identify the current firing of the corresponding neuron. For a detailed description of this encoding sequence, please refer to the above description; it will not be repeated here.

[0076] Step S32: Determine the neuron identifier of at least one first neuron currently being issued in the first many-core device according to each coding sequence, so as to determine the second neuron in the second many-core device corresponding to the neuron identifier of each first neuron, and the synaptic information between the first neuron and the second neuron.

[0077] Step S33: Perform synaptic integral calculations on each second neuron in the second many-core device.

[0078] In some embodiments, step S32, determining the neuron identifier of at least one first neuron currently being issued in the first many-core device based on each coding sequence, may further include: determining the neuron in the first many-core device corresponding to each coding sequence based on a reverse lookup table; and determining the neuron identifier of the first neuron corresponding to each issuance identifier code in each coding sequence. The reverse lookup table is a pre-set reverse lookup table, which may include the correspondence between the sequence number of each coding sequence and the neuron identifier of the neuron in the first many-core device, as well as the correspondence between each element in each coding sequence and the neuron identifier of the neuron in the first many-core device; through the reverse lookup table, the neuron identifier of the currently issued first neuron can be determined based on the coding sequence.

[0079] It is understandable that when configuring and updating the neurons corresponding to the information sequences of each frequency interval in the lookup table, the corresponding relationships in the reverse lookup table also need to be configured and updated accordingly. That is, the correspondence between the sequence number of each encoded sequence in the reverse lookup table and the neuron identifier of the neuron of the first many-core device, as well as the correspondence between each element in each encoded sequence and the neuron identifier of the neuron of the first many-core device, needs to be configured and updated.

[0080] In some embodiments, the data packet may further include the core identifier of the processing core where each first neuron in the first many-core device is located. In step S32, after receiving the data packet from the first many-core device, the second many-core device determines the neuron identifier of the currently issued first neuron according to the encoding sequence therein, and finds at least one synaptic information corresponding to the first neuron locally through the neuron identifier of the first neuron. The synaptic information records the neuron identifier of the second neuron in the second many-core device corresponding to the first neuron and the corresponding synaptic weight, etc., thereby determining the second neuron in the second many-core device corresponding to each first neuron, as well as the synaptic weight between the first neuron and the corresponding second neuron, so that synaptic integration calculation and membrane potential update can be performed on each second neuron according to the synaptic information.

[0081] Figure 4 This is a block diagram of a data processing apparatus provided in an embodiment of the present disclosure. The data processing apparatus is applied to a many-core device, which includes multiple processing cores, each of which includes multiple neurons, such as... Figure 4 As shown, the data processing device 400 includes: an acquisition module 401, a first data conversion module 402, and a transmission module 403.

[0082] The acquisition module 401 is used to acquire firing data of at least one first neuron in the first many-core device, the firing data including the neuron identifier of the first neuron; the first data conversion module 402 is used to determine the encoding sequence corresponding to the neuron identifier of each first neuron according to the firing frequency of each first neuron; and the transmission module 403 is used to transmit the data packet containing the encoding sequence corresponding to each first neuron to the second many-core device.

[0083] In the data processing apparatus provided in this embodiment, each module is used to implement the above-mentioned... Figure 1 The data processing method provided in the illustrated embodiment can be found in the above description for details. Figure 1 The description of the illustrated embodiment will not be repeated here.

[0084] Figure 5 This is a block diagram of another data processing apparatus provided in an embodiment of the present disclosure. This data processing apparatus is applied to a many-core device, which includes multiple processing cores, each processing core including multiple neurons, such as... Figure 5 As shown, the data processing device 500 includes: a receiving module 501, a second data conversion module 502, and a calculation module 503.

[0085] The receiving module 501 is used to receive data packets sent by the first many-core device, the data packets including at least one encoded sequence; the second data conversion module 502 is used to determine the neuron identifier of at least one first neuron currently issued in the first many-core device according to each encoded sequence, so as to determine the second neuron in the second many-core device corresponding to the neuron identifier of each first neuron, that is, the synaptic information between the first neuron and the second neuron; the calculation module 503 is used to perform synaptic integration calculation on each second neuron in the second many-core device.

[0086] In the data processing apparatus provided in this embodiment, each module is used to implement the above-mentioned... Figure 3 The data processing method provided in the illustrated embodiment can be found in the above description for details. Figure 3 The description of the illustrated embodiment will not be repeated here.

[0087] Furthermore, this disclosure also provides a many-core device, which includes the above-described... Figure 4 The data processing apparatus provided in the illustrated embodiments and / or the above-described embodiments Figure 5 The data processing apparatus provided in the illustrated embodiment.

[0088] Figure 6 This is a block diagram of an electronic device provided in an embodiment of the present disclosure.

[0089] Reference Figure 6 This disclosure provides an electronic device 600, which includes: at least one processor 601; and a memory 602 communicatively connected to the at least one processor 601; wherein the memory 602 stores one or more computer programs that can be executed by the at least one processor 601, and the one or more computer programs are executed by the at least one processor 601 to enable the at least one processor 601 to perform the data processing method provided in any of the above embodiments.

[0090] Furthermore, this disclosure also provides a computer-readable medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the data processing method provided in any of the above embodiments.

[0091] This disclosure also provides a computer program product, which includes a computer program that, when executed by a processor, implements the data processing method provided in any of the above embodiments.

[0092] 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.

[0093] 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. A data processing method based on a many-core device, wherein the many-core device includes multiple processing cores, each processing core including multiple neurons, and the data processing method includes: Obtain firing data of at least one first neuron in a first many-core device, wherein the firing data includes the neuron identifier of the first neuron, and the first neuron is the neuron in the first many-core device that is currently firing pulse data and needs to transmit pulse data to a second many-core device outside the first many-core device; Based on the firing frequency of each first neuron, an encoding sequence corresponding to the neuron identifier of each first neuron is determined, wherein the encoding sequence is obtained based on the compression conversion of the neuron identifier of each first neuron; The data packet containing the encoded sequence corresponding to each of the first neurons is transmitted to the second many-core device.

2. The data processing method according to claim 1, wherein determining the encoding sequence corresponding to the neuron identifier of each first neuron based on the firing frequency of each first neuron includes: Determine the firing frequency interval to which the firing frequency of each of the first neurons belongs; Based on the lookup table, the information sequence corresponding to each first neuron is determined according to the firing frequency interval corresponding to each first neuron, and different firing frequency intervals correspond to different information sequences; For each information sequence corresponding to the first neuron, the element corresponding to the neuron identifier of the first neuron in the information sequence is set as the issuing identifier code, and the element corresponding to other neurons is set as the non-issuing identifier code, so as to obtain the encoding sequence corresponding to the first neuron.

3. The data processing method according to claim 2, wherein in the lookup table, each firing frequency interval corresponds to an information sequence, each information sequence corresponds to one or more neurons whose firing frequency is located in the corresponding firing frequency interval, and different elements in the information sequence correspond to different neurons.

4. The data processing method according to claim 3, wherein each of the distribution frequency intervals is determined by dividing the distribution frequency from high to low; The number of elements in the information sequence corresponding to the distribution frequency interval with a higher distribution frequency is configured to be less than the number of elements in the information sequence corresponding to the distribution frequency interval with a lower distribution frequency.

5. The data processing method according to claim 2, wherein the firing identifier code is 1, the non-firing identifier code is 0, the firing identifier code is used to identify that the corresponding neuron is currently firing, and the non-firing identifier code is used to identify that the corresponding neuron is currently not firing.

6. The data processing method according to claim 1, wherein before determining the encoding sequence corresponding to the neuron identifier of each first neuron based on the firing frequency of each first neuron, the data processing method further includes: The firing frequency of the first neuron is determined based on its neuron type.

7. The data processing method according to claim 2, wherein the data processing method further comprises: The firing frequency range of each neuron in the target time period is determined based on the firing frequency of each neuron in the first many-core device during the target time period. as well as Based on the firing frequency range of each neuron in the target time period, configure the neurons corresponding to the information sequences of each firing frequency range in the lookup table.

8. A data processing method based on a many-core device, wherein the many-core device includes multiple processing cores, each processing core including multiple neurons, and the data processing method includes: Receive a data packet sent by a first many-core device, the data packet including at least one encoded sequence, wherein the encoded sequence is obtained based on the neuron identifier compression conversion of at least one first neuron in the first many-core device, the first neuron being the neuron in the first many-core device currently issuing pulse data and needing to transmit pulse data to a second many-core device outside the first many-core device; Based on each of the encoding sequences, determine the neuron identifier of at least one first neuron currently being issued in the first many-core device, and determine the second neuron in the second many-core device corresponding to the neuron identifier of each first neuron, and the synaptic information between the first neuron and the second neuron; Synaptic integral operations are performed on each of the second neurons in the second many-core device.

9. The data processing method according to claim 8, wherein each element of the encoding sequence corresponds to a neuron in the first many-core device, and the encoding sequence includes at least one firing identifier code, the firing identifier code being used to identify the current firing of the corresponding neuron; The step of determining the neuron identifier of at least one first neuron currently being issued in the first many-core device based on each of the encoded sequences includes: Based on the inverse lookup table, determine the neurons in the first many-core device corresponding to each of the encoded sequences; as well as Determine the neuron identifier of the first neuron corresponding to each issued identifier code in each of the encoded sequences.

10. A data processing apparatus applied to a many-core device, the many-core device comprising a plurality of processing cores, each processing core comprising a plurality of neurons, the data processing apparatus comprising: The acquisition module is used to acquire firing data of at least one first neuron in the first many-core device. The firing data includes the neuron identifier of the first neuron. The first neuron is the neuron in the first many-core device that is currently firing pulse data and needs to transmit pulse data to a second many-core device outside the first many-core device. The first data conversion module is used to determine the encoding sequence corresponding to the neuron identifier of each first neuron according to the firing frequency of each first neuron, wherein the encoding sequence is obtained based on the compression conversion of the neuron identifier of each first neuron; A transmission module is used to transmit data packets containing the encoded sequences corresponding to each of the first neurons to the second many-core device.

11. A data processing apparatus applied to a many-core device, the many-core device comprising a plurality of processing cores, each processing core comprising a plurality of neurons, the data processing apparatus comprising: A receiving module is configured to receive a data packet sent by a first many-core device. The data packet includes at least one encoded sequence, wherein the encoded sequence is obtained based on the compression and conversion of the neuron identifier of at least one first neuron in the first many-core device. The first neuron is a neuron in the first many-core device that is currently issuing pulse data and needs to transmit pulse data to a second many-core device outside the first many-core device. The second data conversion module is used to determine the neuron identifier of at least one first neuron currently being issued in the first many-core device according to each of the encoding sequences, so as to determine the second neuron in the second many-core device corresponding to the neuron identifier of each first neuron, and the synaptic information between the first neuron and the second neuron; The computation module is used to perform synaptic integral operations on each of the second neurons in the second many-core device.

12. A many-core device, comprising the data processing apparatus of claim 10, and / or the data processing apparatus of claim 11.

13. An electronic device, comprising: At least one processor; as well as A memory communicatively connected to the at least one processor; wherein, The memory stores one or more computer programs that can be executed by the at least one processor, the one or more computer programs being executed by the at least one processor to enable the at least one processor to perform the data processing method according to any one of claims 1-9.

14. A computer-readable medium having a computer program stored thereon, wherein, When the computer program is executed by a processor, it implements the data processing method as described in any one of claims 1-9.

Citation Information

Patent Citations

  • Method for converting values into spikes

    CN105981054A