A processing device and control method

By introducing adders and multipliers with multiple interconnections into the processing device, and combining this with the scheduling of the control unit, the problem of efficient computation of communication algorithms and AI algorithms in the same device was solved, thereby improving computational efficiency and energy efficiency.

CN117675608BActive Publication Date: 2026-03-31HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-31
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

In existing technologies, the processing devices for communication algorithms and AI algorithms are designed and optimized independently, making it difficult to achieve efficient computing in a single processing device, resulting in low computational efficiency, area efficiency, and energy efficiency.

Method used

A processing device and control method are provided. By introducing multiple connections between adders and multipliers in the computing unit, the operation of real number streams and complex number streams is supported. Time-division multiplexing is achieved through the scheduling of the control unit, thereby improving resource utilization and computing efficiency.

Benefits of technology

It enables efficient support for the computation of communication algorithms and AI algorithms in a single processing device, improving computational efficiency, surface efficiency and energy efficiency, and supporting shared hardware resources for multiple types of operators.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117675608B_ABST
    Figure CN117675608B_ABST
Patent Text Reader

Abstract

A processing device and a control method are used to realize efficient calculation of communication algorithms and artificial intelligence algorithms in a processing device. The processing device can support the operation of communication algorithms and the operation of artificial intelligence algorithms, and specifically includes a calculation unit and a control unit; the calculation unit includes a calculation element, which supports: a first connection relationship and a second connection relationship of at least one adder and at least one multiplier; the first connection relationship is used to realize a communication algorithm or an artificial intelligence algorithm based on a real number stream, and the second connection relationship is used to realize a communication algorithm or an artificial intelligence algorithm based on a complex number stream. The control unit is used to control the connection relationship used by the calculation element, and the connection relationship includes the first connection relationship and the second connection relationship. The processing device can realize single hardware supporting communication algorithms and artificial intelligence algorithms, and the two types of algorithms can share hardware resources, thereby improving the calculation efficiency, surface efficiency, and energy efficiency of the processing device hardware, etc.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a processing device and control method. Background Technology

[0002] Artificial intelligence (AI) and machine learning (ML) algorithms have wide applications in various fields such as image processing, natural language processing, and autonomous driving. Currently, most AI algorithms are based on neural network designs using real-number streams. Deep learning frameworks widely used in the industry are all based on real-number models to construct their fundamental operators. Correspondingly, the hardware computing platforms and processing devices for AI algorithms are also designed based on real-number models, influencing their internal computation methods, data storage, data organization, and data transfer methods.

[0003] Communication algorithms are primarily built upon mathematical models of complex numbers. Correspondingly, the hardware computing platforms and processing devices for communication algorithms are also designed based on complex number models, influencing their internal computation methods, data storage, data organization, and data transfer mechanisms.

[0004] Therefore, the processing flows of communication algorithms and AI algorithms differ significantly, with their basic operations centered on complex numbers and real numbers, respectively. Currently, the design of processing devices for these two types of algorithms is optimized independently. How to effectively achieve efficient computation of both communication and AI algorithms within a single processing device, and improve the computational efficiency, area efficiency, and energy efficiency of the processing device, has become an urgent problem to be solved. Summary of the Invention

[0005] This application provides a processing device and control method for achieving efficient computation of communication algorithms and AI algorithms within a single processing device.

[0006] In a first aspect, a processing apparatus is provided, which can be applied to network devices, terminal devices, or other electronic devices. The processing apparatus can support the computation of communication algorithms and AI algorithms. The processing apparatus includes a computing unit and a control unit; wherein the computing unit includes computing elements that support: a first connection relationship between at least one adder and at least one multiplier, and a second connection relationship between the at least one adder and the at least one multiplier; the first connection relationship is used to implement a communication algorithm or AI algorithm based on a real number stream, and the second connection relationship is used to implement a communication algorithm or AI algorithm based on a complex number stream. The control unit is used to control the connection relationships used by the computing elements in the computing unit, including the first connection relationship and the second connection relationship.

[0007] Through the embodiments of this application, the processing device can support various types of operators, such as conventional complex number operators (e.g., complex number operators in communication algorithms), conventional real number operators (e.g., real number operators in communication algorithms), AI complex number operators (e.g., complex number operators in communication-related AI algorithms), and AI real number operators (e.g., real number operators in non-communication-related AI algorithms and real number operators in communication-related AI algorithms). This enables a single hardware component to efficiently support both communication and AI algorithms, allowing the two types of algorithms to share hardware resources, thus improving the computational efficiency, surface efficiency, and energy efficiency of the processing device hardware. Furthermore, in the embodiments of this application, when processing a data stream, the operation is performed once for each of the multiple data points constituting the data stream, which improves computational efficiency compared to performing an operation once for each data point.

[0008] In one possible design, the at least one adder and the at least one multiplier in the aforementioned computing element are fully connected. This allows the computing element to support multiple connection relationships, enabling it to support both the first and second connection relationships mentioned above. Consequently, the computing element can implement operations based on real number streams and operations based on complex number streams through different connection methods.

[0009] In one possible design, the control unit can use time-division multiplexing to schedule the computing units to implement communication algorithms and AI algorithms. This approach can improve the computing efficiency, area efficiency, and energy efficiency of the processing device hardware.

[0010] In one possible design, the computing unit includes a slot, wherein the slot includes one or more of the aforementioned computing elements.

[0011] In one possible design, the computing unit includes at least two interconnected slots, wherein each slot includes one or more of the aforementioned computing elements. In this approach, the interconnection between slots enables slot reusability, thereby improving resource utilization.

[0012] In one possible design, the aforementioned slot performs corresponding calculations based on the computing elements scheduled in the slot when implementing the function corresponding to the slot.

[0013] The computing elements scheduled in a slot can be related to the computational load. For example, if the computational task is large, the control unit can schedule more computing elements in the slot to perform the computation; if the computational task is small, the control unit can schedule fewer computing elements in the slot to perform the computation. Through this design, the computing elements in the slot can be scheduled according to the computational load, thereby improving resource utilization.

[0014] In one possible design, the control unit is also used to schedule all or some of the slots from the aforementioned at least two slots to perform calculations. This design can improve computational efficiency and resource utilization.

[0015] In one possible design, the AI ​​algorithm includes communication-related AI algorithms and / or non-communication-related AI algorithms.

[0016] Secondly, a control method is provided. The execution entity of this method can be a control unit in a processing device. This method can be implemented through the following steps: the control unit determines the computation task; if the computation task is a real number stream-based operation, the control unit schedules a first connection between at least one adder and at least one multiplier of the computing element in the computing unit for computation; if the computation task is a complex number stream-based operation, the control unit schedules a second connection between the at least one adder and at least one multiplier of the computing element for computation. The first connection is used to implement a real number stream-based communication algorithm or an AI algorithm, and the second connection is used to implement a complex number stream-based communication algorithm or an AI algorithm.

[0017] Through the embodiments of this application, the control unit can schedule the operators of the computing unit according to the computing task, thereby improving the utilization rate and energy efficiency of the processing device hardware.

[0018] In one possible design, the method further includes: a control unit scheduling at least one slot in the computing unit according to the computing task, wherein the scheduled at least one slot is used to perform operations on the computing task. This design can improve computing efficiency and resource utilization.

[0019] In one possible design, the method further includes: when the control unit schedules the first slot in the computing unit, it can schedule the computing element in the first slot according to the computing task, wherein the scheduled computing element is used to perform the computing task.

[0020] The computing elements scheduled in a slot can be related to the computational load. For example, if the computational task is large, the control unit can schedule more computing elements in the slot to perform the computation; if the computational task is small, the control unit can schedule fewer computing elements in the slot to perform the computation. Through this design, the computing elements in the slot can be scheduled according to the computational load, thereby improving resource utilization.

[0021] Thirdly, a control unit is provided, comprising a determining module and a scheduling module. The determining module is used to determine the computation task. The scheduling module is used to schedule a first connection relationship between at least one adder and at least one multiplier of the computational elements in the computational unit for computation when the computation task is based on a real number stream; and to schedule a second connection relationship between at least one adder and at least one multiplier of the computational elements for computation when the computation task is based on a complex number stream. The first connection relationship is used to implement a communication algorithm or AI algorithm based on a real number stream, and the second connection relationship is used to implement a communication algorithm or AI algorithm based on a complex number stream.

[0022] In one possible design, the scheduling module is further configured to: schedule at least one slot in the computing unit according to the computing task, wherein the scheduled at least one slot is used to perform the computing task.

[0023] In one possible design, the scheduling module is also used to: when scheduling the first slot in the computing unit, specifically to schedule the computing element in the first slot according to the computing task, wherein the scheduled computing element is used to perform the computing task.

[0024] Fourthly, a computer-readable storage medium is provided that stores a computer program or instructions that, when executed by a processing device, implement the methods described in the second aspect and any possible design.

[0025] Fifthly, a computer program product storing instructions is provided, which, when executed by a processing device, implements the methods described in the second aspect and any possible design.

[0026] In a sixth aspect, a chip system is provided, comprising the first aspect and processing means in any possible design, and may also include memory. The chip system may be composed of chips, or may include chips and other discrete devices.

[0027] The technical effects that can be achieved by any of the technical solutions in the third to sixth aspects mentioned above can be described with reference to the technical effects that can be achieved by the technical solutions in the first or second aspects mentioned above, and the repeated parts will not be repeated. Attached Figure Description

[0028] Figure 1 A schematic diagram of a communication algorithm processing device and an AI algorithm processing device provided in the embodiments of this application;

[0029] Figure 2A A schematic diagram of a communication-related AI algorithm provided in an embodiment of this application;

[0030] Figure 2B A schematic diagram of another communication-type AI algorithm provided in an embodiment of this application;

[0031] Figure 2C A schematic diagram of another communication-type AI algorithm provided in an embodiment of this application;

[0032] Figure 3 This is a schematic diagram of the structure of a processing device provided in an embodiment of this application;

[0033] Figure 4 This is a schematic diagram of the structure of a processing device provided in an embodiment of this application;

[0034] Figure 5 This is a schematic diagram of a computing element structure provided in an embodiment of this application;

[0035] Figure 6A A schematic diagram illustrating the scheduling of a communication algorithm and an AI algorithm provided in an embodiment of this application;

[0036] Figure 6B A schematic diagram illustrating a slot connection relationship provided in an embodiment of this application;

[0037] Figure 7 This is a schematic diagram of the structure of a computing unit provided in an embodiment of this application;

[0038] Figure 8 This is a schematic diagram of a control unit provided in an embodiment of this application. Detailed Implementation

[0039] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the embodiments of this application will be further described in detail below with reference to the accompanying drawings.

[0040] The embodiments of this application can be applied to the field of communications, which may include, but is not limited to, 5G communication systems, future communication systems (such as 6G communication systems), satellite communication systems, underwater communication systems, device-to-device (D2D) communication systems, machine-to-machine (M2M) communication systems, Internet of Things (IoT), drone communication systems, narrowband Internet of Things (NB-IoT) systems, long term evolution (LTE) systems, and the three major application scenarios of 5G mobile communication systems: enhanced mobile broadband (eMBB), ultra-reliable low latency communication (URLLC), and massive machine-type communications (mMTC).

[0041] It can also be applied to other fields, such as image processing, speech processing, deep learning, machine learning, natural language processing, big data processing, and other fields that apply AI technology.

[0042] For example, if this processing device is applied to the field of communications, it can be applied to network devices or terminal devices. The network device can be a device with wireless transceiver capabilities or a chip that can be configured in the network device. This network device includes, but is not limited to: a generation node B (gNB), a radio network controller (RNC), a node B (NB), a base station controller (BSC), a base transceiver station (BTS), a home base station (e.g., a home evolved node B or a home node B, HNB), a baseband unit (BBU), an access point (AP) in a Wi-Fi system, a wireless relay node, a wireless backhaul node, a satellite, a drone, a transmission and reception point (TRP or transmission point, TP), etc. It can also be a network node constituting a gNB or transmission point, such as a baseband unit (BBU) or a distributed unit (DU), etc.

[0043] Terminal equipment can also be referred to as user equipment (UE), access terminal, user unit, user station, mobile station, mobile station, remote station, remote terminal, mobile device, user terminal, terminal, wireless communication equipment, user agent, or user device. In the embodiments of this application, the terminal equipment can be a mobile phone, tablet computer, computer with wireless transceiver capabilities, virtual reality (VR) terminal device, augmented reality (AR) terminal device, wireless terminal in industrial control, wireless terminal in self-driving, wireless terminal in remote medical care, drone, wireless terminal in smart grid, wireless terminal in transportation safety, wireless terminal in smart city, wireless terminal in smart wearable devices (smart glasses, smartwatches, smart headphones, etc.), wireless terminal in smart home, etc., or it can be a chip or chip module (or chip system) that can be installed in the above devices.

[0044] To facilitate understanding by those skilled in the art, some terms used in the embodiments of this application are explained below.

[0045] 1) Real Number Stream: Under a certain configuration (such as instruction configuration), the hardware receives a continuous string of real number data and performs the same calculations on this string of real number data according to the same instruction configuration. When the processing of the data volume specified by the corresponding instruction is completed, the processing of one instruction (or operator) is considered complete.

[0046] 2) Complex number stream: Under a certain configuration (such as instruction configuration), the hardware receives a continuous series of complex number data and performs the same calculations on this series of complex number data according to the same instruction configuration. When the amount of data specified by the corresponding instruction is completed, an instruction (or operator) is considered to be completed.

[0047] 3) Slot: A functional unit composed of a group of processing elements (PEs).

[0048] 4) Operator: In mathematics, an operator can be understood as a mapping that maps a function to another function, or a function to an element of a vector space. In computer science, it can be understood as a function that performs a specific mathematical operation. When using operators, there are often inputs and outputs; the operator performs the corresponding function operation or data transformation from input to output.

[0049] 5) AI Algorithms: Artificial intelligence algorithms are algorithms that enable computers or computer-controlled software and hardware to learn, make decisions, and solve problems intelligently, similar to human intelligent cognition and thinking. AI algorithms include various types, such as machine learning (ML) algorithms, deep learning algorithms, and Bayesian statistical algorithms. AI algorithms can accurately abstract and model complex, high-dimensional problems, make accurate predictions of dynamic systems, and quickly and effectively solve multi-objective optimal decisions for complex problems. Currently, AI algorithms are applied in many fields, including image recognition, speech processing, natural language processing, recommendation systems, medical diagnosis, financial analysis, wireless communication networks, wired communication networks, and intelligent manufacturing. In wireless communication systems, wireless AI algorithms can significantly improve the performance of communication systems and reduce transmission overhead and maintenance costs.

[0050] In the embodiments of this application, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0051] Furthermore, unless otherwise stated, the ordinal numbers such as "first" and "second" mentioned in the embodiments of this application are used to distinguish multiple objects and are not used to limit the size, content, order, timing, priority, or importance of multiple objects. For example, the first connection relationship and the second connection relationship are only used to distinguish different connection relationships, and do not indicate that the two connection relationships are different in complexity, priority, or importance.

[0052] The preceding text introduced some terms and concepts involved in the embodiments of this application. The following text introduces the technical features involved in the embodiments of this application.

[0053] Conventional AI algorithms (such as AL / ML algorithms applied in image recognition, speech processing, natural language processing, and recommendation systems) primarily build their basic operators based on real-number models. Correspondingly, the hardware computing platforms and processing devices for conventional AL algorithms are also designed with real-number models in mind, encompassing their internal computation methods, data storage, data organization, and data transfer mechanisms. Similarly, algorithms in the conventional communications field (hereinafter referred to as conventional communication algorithms, such as those used in 5G NR wireless communication systems, satellite communication systems, and Wi-Fi communication systems) primarily build their basic operators based on complex-number models. Correspondingly, the hardware computing platforms and processing devices in the conventional communications field are also designed with complex-number models in mind, encompassing their internal computation methods, data storage, data organization, and data transfer mechanisms.

[0054] Because the mathematical models of conventional communication algorithms and conventional AI algorithms differ significantly, conventional communication algorithms are typically implemented using general-purpose communication processing devices, while conventional AI algorithms are typically implemented using general-purpose AI processing devices, such as... Figure 1As shown, both types of processing devices include their own control units and computing units. The control units of both types of processing devices are used for scheduling and controlling the corresponding operators. The computing unit of the general-purpose communication processing device mainly constructs complex operators and uses these operators to complete the functions of conventional communication algorithms. The computing unit of the general-purpose AI processing device mainly constructs real number operators and uses these operators to complete the functions of conventional AI algorithms. The existing design methods described above limit the application objects and scenarios of these two types of processing devices. Configuring multiple sets of different types of processing devices is not conducive to achieving better implementation costs, energy efficiency, area efficiency, and computational efficiency.

[0055] Furthermore, with the intelligent development of communication systems, the application of communication-related AI algorithms is increasing. These algorithms, depending on the specific application, include both complex-based and real-based models. If existing processing device design methods are used, multiple different types of processing devices need to be configured, which is detrimental in terms of cost, area efficiency, energy efficiency, and processing efficiency.

[0056] Based on this, embodiments of this application provide a processing device and a control method. This processing device supports efficient computation of communication algorithms and efficient computation of AI algorithms. Through the processing device provided by this application, communication algorithms and AI algorithms can be efficiently run on a single processing device, achieving optimal implementation cost, area efficiency, energy efficiency, and computational efficiency. For example, the AI ​​algorithm may include communication-related AI algorithms and / or non-communication-related AI algorithms. For example, the communication algorithms described below can be understood as the conventional communication algorithms mentioned above; as an example, the communication algorithms described below may be communication-related non-AI algorithms.

[0057] It should be noted that the communication algorithms in the embodiments of this application may include communication algorithms based on real numbers or communication algorithms based on complex numbers. Communication-related AI algorithms may include communication-related AI algorithms based on real numbers or communication-related AI algorithms based on complex numbers. Non-communication-related AI algorithms may include non-communication-related AI algorithms based on real numbers or non-communication-related AI algorithms based on complex numbers.

[0058] AI algorithms for communication can be implemented using, but are not limited to, one or more of the following structures: complex neural network models (or complex decision trees, or complex support vector machines (SVM), or complex k-nearest neighbor (k-NN) methods, etc.), complex cost functions, and complex training algorithms, such as... Figure 2A As shown.

[0059] Alternatively, communication-related AI algorithms can also be implemented using one or more of the following structures: real-number neural network models (or real-number SVM, or real-number k-NN, etc.), real-number cost functions, and real-number training algorithms, such as... Figure 2B As shown.

[0060] Alternatively, communication-related AI algorithms can be implemented using, but are not limited to, one or more of the following structures: complex number-based communication AI algorithms and / or real number-based communication AI algorithms, connected via a conversion module. Figure 2A The structure shown and the above Figure 2B The structure shown illustrates that this conversion module is used to implement conversions from real numbers to complex numbers and vice versa, such as... Figure 2C As shown.

[0061] For example, complex neural network models can include, but are not limited to, one or more of the following: complex-based multilayer perceptron (MLP) models, complex-based convolutional neural network (CNN) models, complex-based residual network (ResNet) models, complex-based recurrent neural network (RNN) models, complex-based transformer models, complex-based autoencoder models, complex-based generative adversarial network (GAN) models; complex-based activation functions, complex-based normalization function models (BatchNormalization), complex-based pooling functions, etc.

[0062] Complex cost functions are used to define the optimization objective of AI / ML algorithms. Complex cost function models can include, but are not limited to, one or more of the following: minimum mean squared error (MMSE), minimum cosine similarity (CS), minimum squared generalized cosine similarity (SGCS), maximum cross entropy (CE), etc.

[0063] Complex number training algorithms are used to train AI / ML algorithm models so that the output of their cost function converges to the optimal value. Complex number training algorithms can include, but are not limited to, one or more of the following: complex number-based stochastic gradient descent (SGD), complex number-based adaptive moment estimation (Adam), and extensions of the Adam algorithm such as AdaMax and AMSGrad.

[0064] For example, real-number neural network models can include, but are not limited to, one or more of the following: real-number-based multilayer perceptron (MLP) models, real-number-based convolutional neural network (CNN) models, real-number-based residual network (ResNet) models, real-number-based recurrent neural network (RNN) models, real-number-based transformer models, real-number-based autoencoder models, real-number-based generative adversarial network (GAN) models; real-number-based activation functions, real-number-based normalization function models (BatchNormalization), real-number-based pooling functions, etc.

[0065] Real-valued cost functions are used to define the optimization objective of AI / ML algorithms. Real-valued cost function models can include, but are not limited to, one or more of the following: minimum mean squared error (MMSE), minimum cosine similarity (CS), minimum squared generalized cosine similarity (SGCS), maximum cross entropy (CE), etc.

[0066] Real-number training algorithms are used to train AI / ML algorithm models so that the output of their cost function converges to the optimal value. Real-number training algorithms can include, but are not limited to, one or more of the following: real-number-based stochastic gradient descent (SGD), real-number-based adaptive moment estimation (Adam), and extensions of the Adam algorithm such as AdaMax and AMSGrad.

[0067] AI algorithms in the field of communication can be applied to various applications in communication systems. For example, they can be applied to the access network and core network of 5G NR wireless networks, including the physical layer, link layer, and network layer of the access network. Here are some examples of AI algorithm applications in the physical layer and link layer of wireless networks:

[0068] When the physical layer receiver receives uplink DMRS, uplink SRS, or downlink CSI-RS channels, the AI ​​channel estimation algorithm can effectively reduce the negative impact of channel noise and interference, improve the accuracy of channel estimation, and obtain uplink or downlink transmission throughput gain.

[0069] The physical layer receiver uses the results of multiple historical channel estimations and AI algorithms to perform channel time-domain prediction for unknown channels at one or more future moments. This improves the ability to track dynamic changes in wireless communication channels, obtains accurate predictions of future channel information, ensures that transmission performance is not affected in scenarios where end users are constantly moving, and enhances the user experience.

[0070] The physical layer transmitter uses AI neural network algorithms to modulate constellation symbols, which can construct regular or irregular constellations at the transmitting end. On the receiver side, AI neural network algorithms demodulate the transmitted constellation symbols to accurately recover the transmitted bit information, thereby improving the system's transmission capacity.

[0071] The physical layer transmitter uses an AI neural network algorithm to compress and feed back the estimated channel state information (CSI). The receiver uses the same AI neural network algorithm to recover the CSI and reconstruct the channel from the received feedback bits. Using AI algorithms for CSI compression and reconstruction effectively improves the compression ratio and accuracy of CSI reconstruction, thereby increasing system transmission capacity.

[0072] The physical layer transmitter uses AI algorithms to beamform the transmitted signal, improving interference suppression capabilities for multi-user transmissions. On the receiver side, accurate signal detection using AI algorithms can increase the number of user multiplexing streams in a multiple-input multiple-out (MIMO) system, thereby increasing system transmission capacity.

[0073] In the receiver, the link layer uses AI algorithms to predict link quality based on measurements such as channel quality indicator (CQI) and reference signal received power (RSRP) fed back from the terminal. It then determines the optimal transmission mode (MCS) and transmits the corresponding signal. High-accuracy MCS selection can significantly improve link transmission quality and achieve higher transmission throughput. Furthermore, communication AI algorithms can also perform high-frequency beam management, nonlinear device compensation, and wireless air interface resource scheduling in MIMO systems. These will not be listed in detail here.

[0074] Non-communication AI algorithms can include one or more of the following: AI algorithms for image processing, AI algorithms for speech processing, AI algorithms for recommendation systems, AI algorithms for medical diagnosis, AI algorithms for natural language processing, AI algorithms for financial analysis, etc., and will not be listed here.

[0075] See Figure 3 As shown in the figure, this application embodiment provides a structure for a processing device. The processing device includes a computing unit and a control unit. The computing unit is used to execute algorithmic operations. The control unit is used to control the computing unit to execute operations, specifically by controlling the computing unit to execute communication algorithms or AI algorithms through software scheduling, for example, by sending instructions to the computing unit to schedule the computing unit. The specific functions of the computing unit and the control unit will be described in detail below.

[0076] For example, the control unit may also be called a micro-controller unit (MCU), and the computing unit may include a hybrid tensor array and a vector unit.

[0077] The hybrid tensor processing unit can include, but is not limited to, matrix computation and tensor computation. For example, the computations performed by the hybrid tensor processing unit include matrix multiplication, matrix addition, matrix decomposition (such as singular value decomposition (SVD), Cholesky decomposition, matrix inversion, matrix dot product, one-dimensional, two-dimensional, or high-dimensional (greater than two-dimensional) convolution, one-dimensional, two-dimensional, or high-dimensional (greater than two-dimensional) sparse convolution, tensor multiplication, tensor addition, tensor dot product, tensor data extraction, tensor data transpose, and tensor dimension transformation.

[0078] The vector processing unit can include, but is not limited to, vector calculations and nonlinear calculations. For example, calculations performed by the vector processing unit include vector multiplication, vector addition, vector dot product, vector transpose, vector reciprocal, vector square root, vector trigonometric functions, vector exponential functions, and vector activation functions. Activation function types can include, but are not limited to, sigmoid, tanh, ReLU, ELU, LeakyReLU, softmax, softplus, and swish functions.

[0079] Optionally, the processing device also includes a storage unit, which is typically used to temporarily cache data needed for the current program's calculations. In this embodiment, the storage unit acts as a shared memory, storing the data required by the computation unit and providing it for reading and writing by the computation unit, namely the hybrid tensor processing unit and the vector processing unit. Figure 4 As shown.

[0080] Optionally, the direct memory access unit (DMA) serves as an access device between the processing device and the external environment. It is mainly used to move external data into the internal shared memory unit, or to move data that has been calculated in the shared memory unit to the external storage space.

[0081] The structure of the computing unit will be explained first below.

[0082] The computing unit includes multiple PEs, each PE including at least one multiplier and at least one adder. The number of multipliers and / or adders included in each PE may be the same or different, and this application does not make a specific limitation.

[0083] The aforementioned PE supports adding and multiplying units being connected through at least two connection relationships, including a first connection relationship and a second connection relationship. Specifically, connecting at least one adder and at least one multiplying unit through the first connection relationship is used to implement algorithms based on real number streams, while connecting at least one adder and at least one multiplying unit through the second connection relationship is used to implement algorithms based on complex number streams. It should be noted that the multiplying units connected in the first connection relationship and the multiplying units connected in the second connection relationship can be the same or different. Similarly, the adders connected in the first connection relationship and the adders connected in the second connection relationship can be the same or different.

[0084] For example, the first connection relationship can be used to implement communication algorithms based on real numbers and AI algorithms based on real number streams (such as AI algorithms for communication based on real numbers and AI algorithms for non-communication based on real numbers), and the second connection relationship can be used to implement communication algorithms based on complex numbers and AI algorithms based on complex number streams (such as AI algorithms for communication based on complex numbers and AI algorithms for non-communication based on complex numbers).

[0085] In one exemplary embodiment, the adders and multipliers in the PE are fully connected, meaning that there is a connection between any two devices (adders and / or multipliers) in the PE, thereby enabling the PE to support the connection of adders and multipliers in multiple ways.

[0086] The control unit can determine the connection relationships used by the PE in the control calculation unit.

[0087] In one possible implementation, the control unit can control the connection relationships used by the PE in the computing unit according to the computing task.

[0088] Optionally, if the input data for the computation task is a real number stream, the control device can determine that the computation task is a computation based on a real number stream. If the input data for the computation task is a complex number stream, the control device can determine that the computation task is a computation based on a complex number stream.

[0089] Specifically, the control unit can control the connection relationships used by the PE in the computing unit based on the input data of the computing task. For example, if the input data is a real number stream, the PE in the computing unit can be controlled to use the first connection relationship; if the input data is a complex number stream, the PE in the computing unit can be controlled to use the second connection relationship.

[0090] In one possible implementation, the control unit can determine the computation task in the following way: the control unit can determine the computation task when it detects a preset event that triggers a certain computation task.

[0091] For example, when the control unit detects a preset event that triggers image recognition, it determines that the computational task is to perform image recognition. For instance, the preset event could be a face recognition command triggered by the user, or a command to recognize an object triggered by the user, and so on.

[0092] For example, when the control unit detects a preset event that triggers voice processing, it determines that the computational task is to perform voice processing. For instance, the preset event could be a call command triggered by the user, or a recording command triggered by the user, and so on.

[0093] For example, when the control unit detects a preset event that triggers channel estimation, it determines that the computational task is to perform channel estimation. For instance, the preset event could be that the device where the processing unit is located receives an uplink DMRS channel, an uplink SRS channel, or a downlink CSI-RS channel, etc.

[0094] For example, when the control unit detects a preset event that triggers channel time-domain prediction, it determines that the computational task is to perform channel time-domain prediction. For instance, the preset event could be that the device where the processing unit is located receives an instruction message sent by the peer communication device, or that the device where the processing unit is located determines that channel time-domain prediction should be performed, and so on.

[0095] For example, when the control unit detects a preset event that triggers constellation symbol modulation, it determines that the computational task is to perform constellation symbol modulation. For instance, the preset event could be that the device where the processing unit is located determines to construct a regular or irregular constellation for the transmitter, or that the device where the processing unit is located needs to send a signal to the receiver, and so on.

[0096] For example, when the control unit detects a preset event that triggers constellation symbol demodulation, it determines that the operation task is to perform constellation symbol demodulation. For instance, the preset event could be that the processing device receives a signal sent by the peer device, etc.

[0097] For example, when the control unit detects a preset event that triggers Compressed Feedback (CSI), it determines that the computational task is to perform compressed feedback on the estimated CSI. For instance, the preset event could be that the device where the processing unit is located receives a pilot signal from the peer device, or that the device where the processing unit is located performs channel estimation, and so on.

[0098] For example, when the control unit detects a preset event that triggers channel reconstruction, it determines that the computational task is channel reconstruction. For instance, the preset event could be a CSI reported by the peer device to the device where the processing unit is located. Furthermore, if the CSI is a compressed CSI, the control unit can determine that the computational task also includes CSI recovery.

[0099] For example, when the control unit detects a preset event that triggers beamforming of the transmitted signal, it determines that the computational task is to beamform the transmitted signal. For instance, the preset event could be that the device where the processing unit is located is sending a signal to the other end device, and so on.

[0100] For example, when the control unit detects a preset event that triggers signal detection, it determines that the computational task is signal detection. For instance, the preset event could be that the device where the processing unit is located receives a signal sent by the peer device, and so on.

[0101] For example, when the control unit detects a preset event that triggers link quality prediction, it determines that the computational task is link quality prediction. For instance, the preset event could be CQI, RSRP, or other measurements received by the device where the processing unit is located from the terminal device.

[0102] like Figure 5 As shown, taking a single physical device (PE) as an example, this PE includes three switch modules, a multiplier module, and an adder module. Each switch module includes at least one switch, the multiplier module includes four multipliers, and the adder module includes two adders. Switch module 1 controls the multipliers input to the data stream through the on / off state of its switches. Switch module 2 controls the adders input to the data stream through the on / off state of its switches. Switch module 3 controls the output of the data stream through the on / off state of its switches.

[0103] Specifically, if the PE performs operations based on real number streams, a first connection relationship can be used. For example, switch module 1 can control the data stream input to the multiplier section of the multiplier module (e.g., four multipliers) through the on / off state of the switch, and switch module 2 can control the data stream processed by the multiplier module to be directly output to the PE output terminal (e.g., bypassing the adder) through the on / off state of the switch. If the PE performs operations based on complex number streams, a second connection relationship can be used. For example, switch module 1 can control the data stream input to the multiplier section of the multiplier module (e.g., four multipliers) through the on / off state of the switch, and switch module 2 can control the data stream processed by the multiplier module to be input to the adder section of the adder module (e.g., two adders) through the on / off state of the switch, and then output from the adder.

[0104] It should be understood that the above Figure 5 This is merely an illustrative example. This application does not limit the number or connection relationship of the switch module, multiplier module, and adder module, nor does it limit the number of multipliers in the multiplier module or the number of adders in the adder module.

[0105] Compared to algorithms based on real number streams and complex number streams, which require separate implementations by two different types of processing devices, the above method, by adding a small amount of hardware interconnects, allows multipliers and adders to be reused within a single processing device to implement different algorithms. This method enables the processing device to support flexible hardware processing and configuration, improving resource utilization. Furthermore, since the processing device provided in this application can implement both real number stream-based and complex number stream-based algorithms, efficient computation of communication algorithms and AI algorithms can be achieved through a single processing device.

[0106] Based on the architecture of the PE described above, the control unit can control the connection relationships used by the PEs in the computing unit when controlling the computing unit to perform operations. For example, the control unit can schedule the connection relationships used by the PEs in the computing unit according to the operation task to be performed. For instance, when performing real number operations, the control unit can schedule the PEs in the computing unit to use the first connection relationship described above, and when performing complex number operations, the control unit can schedule the PEs in the computing unit to use the second connection relationship described above.

[0107] Optionally, the control unit can use time-division multiplexing to schedule the computing units to implement communication algorithms and AI algorithms. For example, Figure 6A As shown. This method can improve the utilization rate and energy efficiency of the processing device hardware.

[0108] In one possible implementation, the computing unit may include one or more slots, each slot including one or more PEs. If the computing unit includes multiple slots, these multiple slots are interconnected, meaning that any two slots are connected. For example, ... Figure 6B As shown, the computing unit includes slot 1, slot 2, slot 3, and slot 4, where any one of these four slots is connected to the other slots. Any two slots may perform the same or different functions, each independently completing a functional processing step in the operator calculation. The functions of the PEs in the aforementioned slots can be the same or different; no specific limitation is made here.

[0109] For example, the computing unit includes a first slot, a second slot, and a third slot, which are interconnected. The first slot includes multiple physical objects (PEs) implementing multiplication; the second slot includes multiple PEs implementing an addition tree; and the third slot includes multiple PEs implementing an accumulator. It should be understood that this explanation only assumes that the PEs in a slot have the same functionality, and does not limit the functional types of the PEs in a slot.

[0110] As an example, if a slot is used to implement operations based on real number streams, all PEs in that slot will be used to implement operations based on real number streams; for example, all PEs in that slot will use a first connection relationship. If a slot is used to implement operations based on complex number streams, all PEs in that slot will be used to implement operations based on complex number streams; for example, all PEs in that slot will use a second connection relationship.

[0111] like Figure 7 As shown, the computing unit includes three switch modules: a first slot, a second slot, and a third slot. Each switch module includes at least one switch. Switch module A controls the data flow input to the first slot through the on / off state of the switch. Switch module B controls the data flow input to the second slot through the on / off state of the switch. Switch module C controls the data flow input to the third slot through the on / off state of the switch.

[0112] It should be understood that the above Figure 7 This is merely an illustrative example and does not limit the number or function of the switch modules or slots.

[0113] It should be noted that this application does not limit the location of the switch module in the processing device; the switch module may be included in a slot. Alternatively, the switch module may be deployed outside the slot; no specific limitation is made here.

[0114] Based on the structure of the aforementioned computing unit, when the control unit controls the computing unit to perform operations, it can schedule all or some of the slots among the aforementioned multiple slots to perform the operations. For example, when performing the first operation task, it can schedule all the slots among the aforementioned multiple slots to perform the operations; when performing the second operation task, it can schedule a first portion of the slots among the aforementioned multiple slots to perform the operations; and when performing the third operation task, it can schedule a second portion of the slots among the aforementioned multiple slots to perform the operations.

[0115] Combination Figure 7 The following example illustrates the process of the control unit scheduling some slots. The control unit can schedule the first and third slots according to the computational task being executed. Specifically, the control unit can control switch module A to turn on, switch module B to turn off, and switch module C to turn on. Thus, the data stream is input to the first slot under the control of switch module A, processed in the first slot, and then input to the third slot under the control of switch module C. After passing through the third slot, the data is output. Here, "switch module on" means that at least one switch in the switch module is in the on state, and "switch module off" means that all switches in the switch module are in the off state.

[0116] In one possible implementation, when the control unit schedules a certain slot to perform a calculation, it can specifically schedule the computing elements in that slot to perform the corresponding calculation based on the calculation task. For example, as described above... Figure 7 For example, the control unit can schedule the PE (Processing Equipment) in the first slot to perform the computation based on the computational task being executed. The control unit can also schedule the PE in the second slot to perform the computation based on the computational task being executed. The control unit can also schedule the PE in the third slot to perform the computation based on the computational task being executed, and so on.

[0117] It should be understood that the computing elements scheduled in a slot can be related to the computational load. For example, if the computational load of the task is large, the control unit can schedule more computing elements in the slot to perform the computation; if the computational load of the task is small, the control unit can schedule fewer computing elements in the slot to perform the computation.

[0118] In the above method, the interconnection between slots enables computing resources on different slots, such as multipliers, adders, accumulators, etc., to be reusable under different instruction configurations (operators), thereby improving the utilization of computing resources.

[0119] This application embodiment does not limit the specific connection medium between the control unit, computing unit, and storage unit described above. This application embodiment... Figure 1 , Figure 3 The control unit, computing unit, and storage unit are connected via a bus, and the bus is in... Figure 1 , Figure 3 The connections between other components are shown in bold lines only and are not intended to be limiting. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, Figure 1 , Figure 3 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0120] Through the embodiments of this application, the processing device can support various types of operators, such as conventional complex number operators (e.g., complex number operators in communication algorithms), conventional real number operators (e.g., real number operators in communication algorithms), AI complex number operators (e.g., complex number operators in communication-related AI algorithms), and AI real number operators (e.g., real number operators in non-communication-related AI algorithms and real number operators in communication-related AI algorithms). This enables a single hardware component to efficiently support both communication and AI algorithms. The two types of algorithms can share hardware resources in a time-division multiplexing manner, improving the utilization rate and energy efficiency of the processing device hardware. Furthermore, in the embodiments of this application, when processing the data stream, the control information required for execution is determined for each of the multiple data components of the data stream. Compared to determining the control information for each data component individually, this application can improve computational efficiency.

[0121] Based on the same concept as the method embodiments, this application provides a control unit, the structure of which can be as follows: Figure 8 As shown, it includes a determination module 801 and a scheduling module 802. The control unit can be specifically used to implement... Figures 3-5 , Figure 6A , Figure 6B , Figure 7The method executed by the control unit in the embodiment includes a determination module 801 for determining the computation task. A scheduling module 802 is configured to schedule a first connection relationship between at least one adder and at least one multiplier of the computational elements in the computational unit for computation when the computation task is based on real numbers; and to schedule a second connection relationship between at least one adder and at least one multiplier of the computational elements for computation when the computation task is based on complex numbers; wherein the first connection relationship is used to implement a communication algorithm or an artificial intelligence (AI) algorithm based on real number streams, and the second connection relationship is used to implement a communication algorithm or an AI algorithm based on complex number streams.

[0122] Optionally, the scheduling module 802 is further configured to: schedule at least one slot in the computing unit according to the computing task, wherein the at least one slot is used to perform the computing task.

[0123] Optionally, the scheduling module 802 is further configured to: when scheduling the first slot in the computing unit, schedule the computing element in the first slot according to the computing task, wherein the scheduled computing element is used to perform the computing task.

[0124] The module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, other division methods are possible. Furthermore, the functional modules in the various embodiments of this application can be integrated into a single processing device, exist as separate physical entities, or two or more modules can be integrated into one module. The integrated modules can be implemented in hardware or as software functional modules. It is understood that the functions or implementations of the modules in the embodiments of this application can be further referenced. Figures 3-5 , Figure 6A , Figure 6B , Figure 7 The embodiments are described in detail below.

[0125] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0126] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0127] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0128] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0129] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.

Claims

1. A processing device, characterized by, The processing device supports operation of a communication algorithm and operation of an artificial intelligence (AI) algorithm. The processing device includes a computing unit and a control unit. The computing unit includes a computing element that supports a first connection relationship of at least one adder and at least one multiplier, and a second connection relationship of the at least one adder and the at least one multiplier; the computing unit further includes at least one switch module for controlling input and output of a data stream in the computing unit, a first state of the at least one switch module corresponds to the first connection relationship, and a second state of the at least one switch module corresponds to the second connection relationship. The first connection relationship is used to implement a communication algorithm or an AI algorithm based on a real number stream, and the second connection relationship is used to implement a communication algorithm or an AI algorithm based on a complex number stream. The control unit is configured to control a connection relationship used by the computing element in the computing unit; the connection relationship includes the first connection relationship and the second connection relationship.

2. The processing device of claim 1, wherein, The computing unit includes one slot, and the slot includes one or more computing elements.

3. The processing device of claim 1, wherein, The computing unit includes at least two slots connected to each other, and each slot includes one or more computing elements.

4. The processing device according to claim 2 or 3, characterized in that, The slot performs corresponding operation by the computing elements scheduled in the slot when the slot implements a function corresponding to the slot.

5. The processing device of claim 3, wherein, The control unit is further configured to schedule all or part of the slots in the at least two slots to perform operation.

6. The processing device of claim 1, wherein, The AI algorithm includes a communication-type AI algorithm and / or a non-communication-type AI algorithm.

7. A control method characterized by, The method includes: The control unit determines an operation task. If the operation task is a real number stream-based operation, the control unit schedules a first connection relationship of at least one adder and at least one multiplier of a computing element in a computing unit through at least one switch module in the computing unit to perform operation. If the operation task is a complex number stream-based operation, the control unit schedules a second connection relationship of the at least one adder and the at least one multiplier of the computing element through the at least one switch module in the computing unit to perform operation. The at least one switch module is used to control input and output of a data stream in the computing unit, a first state of the at least one switch module corresponds to the first connection relationship, and a second state of the at least one switch module corresponds to the second connection relationship, the first connection relationship is used to implement a communication algorithm or an artificial intelligence (AI) algorithm based on a real number stream, and the second connection relationship is used to implement a communication algorithm or an AI algorithm based on a complex number stream.

8. The method of claim 7, wherein, The method further includes: The control unit schedules at least one slot in the computing unit according to the operation task, and the at least one slot is used to perform operation on the operation task.

9. The method of claim 8, wherein, The method further includes: The control unit schedules a calculation element in a first slot in the calculation unit according to the operation task when scheduling the first slot in the calculation unit, wherein the scheduled calculation element is used to perform operation on the operation task.

10. A control unit, characterized by The control unit comprises: A determination module is configured to determine an operation task; A scheduling module is configured to, when the operation task is a real number stream-based operation, schedule a first connection relationship of at least one adder and at least one multiplier of a calculation element in a calculation unit through at least one switch module in the calculation unit to perform operation; And, when the operation task is a complex number stream-based operation, schedule a second connection relationship of the at least one adder and the at least one multiplier of the calculation element through the at least one switch module in the calculation unit to perform operation; The at least one switch module is used to control the input and output of the data stream in the calculation unit, the first state of the at least one switch module corresponds to the first connection relationship, the second state of the at least one switch module corresponds to the second connection relationship, the first connection relationship is used to realize a communication algorithm based on a real number stream or an artificial intelligence AI algorithm, and the second connection relationship is used to realize a communication algorithm based on a complex number stream or an AI algorithm.

11. The control unit of claim 10, wherein, The scheduling module is further configured to schedule at least one slot in the calculation unit according to the operation task, wherein the at least one slot is used to perform operation on the operation task.

12. The control unit of claim 11, wherein, The scheduling module is further configured to: When scheduling a first slot in the calculation unit, schedule a calculation element in the first slot according to the operation task, wherein the scheduled calculation element is used to perform operation on the operation task.

13. A computer-readable storage medium, characterized in that, The computer readable storage medium is used to store computer instructions, when the computer instructions run on a computer, make the computer execute the method as claimed in any one of claims 7-9.

14. A computer program product, characterised in that, The computer program product comprises instructions, when the instructions are run by a processing device, make the method as claimed in any one of claims 7-9 be realized.

Citation Information

Patent Citations

  • Reconfigurable digital signal processing (DSP) vector engine

    US20200225947A1