Data processing unit
A data processing unit (DPU) is a channel controller, a programmable specialized electronic circuit with hardware acceleration of data processing for data-centric computing. The data is transmitted to and from the component as multiplexed packets of information. A DPU generally contains a CPU, NIC and programmable data acceleration engines. This allows DPUs to have the generality and the programmability of central processing units while being specialized to operate efficiently on networking packets, storage requests or analytics requests. The data acceleration engines differentiates itself from a CPU by a larger degree of parallelism (required to process many  requests) and from a GPU by a MIMD architecture rather than an SIMD architecture (required as each request needs to make different decisions and follow a different path through the chip). DPUs can be either ASIC-based, FPGA-based or SoC-based. DPUs have been increasingly used in data centers and supercomputers since their introduction in the 2010s due to the rise in use of data-centric computing, big data, security, and artificial intelligence/machine learning/deep learning. DPUs are designed to be independent infrastructure endpoints. DPU vendors & product lines include: Software vendors utilizing DPUs include: Data processing unit A