FPGA-Based Accelerator for Neural Network Training Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current machine learning algorithms for web search ranking, such as RankNet and LambdaRank, face significant computational challenges when dealing with large-scale data sets, leading to slow processing times and high costs due to inefficiencies in parallelism and hardware utilization in traditional computers.

Innovation Solution

The use of Field-Programmable Gate Array (FPGA) technology to create an accelerator system that performs neural network training algorithms, enabling high-bandwidth computations and parallel processing through a hardware logic configured to handle streamed data directly from a host computing device, utilizing SIMD architecture and multiple arithmetic logic units for improved weight precision.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If traditional machine learning algorithms are used on general purpose computers, then flexibility and ease of implementation are maintained, but processing speed and parallelism are insufficient leading to slow training times

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces an FPGA-based accelerator as an intermediary device between the host computer and the training data. This accelerator handles the computationally intensive parallel operations of neural network training, while the host computer maintains control and flexibility. The FPGA acts as a specialized co-processor that offloads specific training tasks, achieving speedup without requiring complete hardware replacement.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The training system is segmented into multiple components: the host computer for data preparation and control, the FPGA accelerator for parallel computation, and separate memory units. The FPGA itself is divided into multiple processing elements that can handle different parts of the training data simultaneously, enabling fine-grained parallelism across multiple cores and pipelines.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If distributed implementations with process level parallelism are used, then processing time is reduced, but hardware resources are heavily occupied and communication costs increase

Engineering Contradiction:
Improvetraining timeVSAvoidhardware resource consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The patent transitions from process-level parallelism (software dimension) to hardware-level parallelism (physical dimension) by implementing multiple processing elements and pipelines directly in the FPGA. This allows simultaneous execution of multiple training operations at the circuit level, achieving greater parallelism without the communication overhead of distributed systems. The hardware architecture provides direct interconnections between processing elements, eliminating the need for complex inter-process communication.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If GPU-based accelerators are used, then computation speed is improved, but flexibility is limited due to hardware structure optimized for graphics applications and memory access bandwidth is constrained

Engineering Contradiction:
Improvecomputation speedVSAvoidalgorithm flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The FPGA-based accelerator provides dynamic reconfigurability, allowing the hardware logic to be programmed and reprogrammed for different neural network training algorithms and configurations. Unlike fixed GPU architectures, the FPGA can adapt its structure through logic programming to match specific algorithm requirements, providing both high-speed computation and algorithmic flexibility. The processing elements can be dynamically configured to handle different data formats, precision requirements, and network architectures.

Inventive Principle:
Principle #15Dynamics

4Speed

If ASICs are used for hardware neural network computing, then processing speed and efficiency are maximized, but development cost is prohibitively high

Engineering Contradiction:
Improveprocessing speedVSAvoiddevelopment cost
Core Design Contradiction:
SpeedVSEase of manufacture

Solution Approach 1:

The patent uses FPGAs as a cost-effective alternative to ASICs. While FPGAs are not as fast as custom ASICs, they provide sufficient speedup for training applications and can be reprogrammed for different algorithms. The lower development cost and reconfigurability make FPGAs suitable for research and development phases where algorithm flexibility is needed. Once an algorithm is finalized, the system can be optimized further with ASIC implementation if required.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Solution Approach 2:

The FPGA-based accelerator serves multiple functions: it can implement different neural network architectures (RankNet, LambdaRank, etc.), handle various data formats and precision requirements, and be reconfigured for different training scenarios. This universal capability replaces the need for multiple specialized hardware designs, providing both speed and flexibility at a reasonable cost.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8131659B2Field-programmable gate array based accelerator system
Publication Date: 2012.03.06 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8131659B2 patent drawing
  • US8131659B2 patent drawing
  • US8131659B2 patent drawing

AI summary

Accelerator systems and methods are disclosed that utilize FPGA technology to achieve better parallelism and processing speed. A Field Programmable Gate Array (FPGA) is configured to have a hardware logic performing computations associated with a neural network training algorithm, especially a Web relevance ranking algorithm such as LambaRank. The training data is first processed and organized by a host computing device, and then streamed to the FPGA for direct access by the FPGA to perform high-bandwidth computation with increased training speed. Thus, large data sets such as that related to Web relevance ranking can be processed. The FPGA may include a processing element performing computations of a hidden layer of the neural network training algorithm. Parallel computing may be realized using a single instruction multiple data streams (SIMD) architecture with multiple arithmetic logic units in the FPGA.