CPU-FPGA Heterogeneous Architecture for CNN Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Convolutional neural networks (CNNs) are memory-intensive and require specialized hardware for efficient implementation, but such hardware is limited in flexibility and often struggles with complex operations.

Innovation Solution

A deep processing unit (DPU) is designed, combining a general CPU with a special neural network processing unit, utilizing a programmable logic module and direct memory access (DMA) for efficient data and instruction transmission, and incorporating a computing complex with processing elements for convolutional operations, adder trees, and non-linear modules to enhance flexibility and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If special designed hardware is used for CNN implementation, then computation speed is improved, but flexibility deteriorates

Engineering Contradiction:
Improvecomputation speedVSAvoidflexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system is divided into two distinct parts: a CPU for control and flexibility, and a programmable logic module for accelerated computation. This segmentation allows each component to specialize in its strengths while working together as a unified system, resolving the contradiction between speed and flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The programmable logic module can be dynamically reconfigured through FPGA technology, allowing the hardware architecture to adapt to different CNN models and operations. This dynamic reconfigurability provides both the speed of specialized hardware and the flexibility to handle various computational tasks.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If CPU is used for CNN processing, then flexibility is maintained, but computation speed deteriorates

Engineering Contradiction:
ImproveflexibilityVSAvoidcomputation speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system merges the CPU's flexibility with the programmable logic module's computational power through a unified architecture. The CPU handles control flow and memory management while the programmable logic module performs intensive computations, achieving both flexibility and high speed simultaneously.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

A buffer and DMA controller serve as intermediaries between the CPU and programmable logic module, enabling efficient data transfer and coordination. This intermediary layer allows the CPU to maintain flexibility while the programmable logic module achieves high-speed processing without direct CPU intervention for every operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If memory-intensive operations are performed, then CNN accuracy is maintained, but memory access time deteriorates

Engineering Contradiction:
ImproveCNN accuracyVSAvoidmemory access time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

Data is pre-loaded into on-chip buffers before processing begins. This preliminary action reduces the need for frequent external memory accesses during computation, maintaining accuracy by keeping necessary data readily available while significantly reducing memory access time delays.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous data flow between external memory, buffers, and processing elements through DMA controllers. This continuity ensures that memory-intensive operations can proceed without interruption, maintaining CNN accuracy while minimizing idle time and optimizing memory access efficiency.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10802992B2Combining CPU and special accelerator for implementing an artificial neural network
Publication Date: 2020.10.13 XILINX TECH BEIJING LTD
  • US10802992B2 patent drawing
  • US10802992B2 patent drawing
  • US10802992B2 patent drawing

AI summary

The present invention relates to artificial neural network (ANN), for example, convolutional neural network (CNN). In particular, the present invention relates to how to implement and optimize a convolutional neural network based on an embedded FPGA. Specifically, it proposes a CPU+FPGA heterogeneous architecture to accelerate ANNs.