GPU Point-to-Point Communication Primitives for Distributed ML

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems, particularly graphics processors, face limitations in efficiently handling parallel graphics data processing and machine learning operations due to bottlenecks in inter-node communication and data distribution across multiple compute nodes, which hampers the scalability and performance of distributed machine learning applications.

Innovation Solution

A graphics processing unit (GPU) is communicatively coupled to host processor cores to accelerate graphics and machine-learning operations, utilizing a unified memory architecture and high-speed interconnects like PCIe or NVLink, and an integrated machine learning scaling library (MLSL) abstracts communication details, enabling efficient data distribution and parallel processing across multiple nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If distributed machine learning operations are performed across multiple compute nodes, then processing capacity and scalability are improved, but inter-node communication overhead and data distribution complexity increase

Engineering Contradiction:
Improveprocessing capacityVSAvoidcommunication overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The MLSL library acts as an intermediary layer between the application and the underlying communication infrastructure, providing optimized point-to-point communication primitives that reduce communication overhead while enabling distributed processing across multiple nodes

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The communication system is segmented into specific point-to-point primitives (send, receive, send_ready, receive_ready) that can be independently optimized and composed to build complex communication patterns, reducing overall system complexity

Inventive Principle:
Principle #1Segmentation

2Productivity

If data is distributed across multiple compute nodes for parallel processing, then processing speed and throughput are improved, but communication bottlenecks and synchronization overhead increase

Engineering Contradiction:
Improveprocessing speedVSAvoidcommunication delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The send_ready and receive_ready primitives allow communication partners to prepare and synchronize their communication buffers in advance, ensuring that data transfer operations can proceed immediately without synchronization delays when the actual send/receive operations are initiated

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The communication primitives are designed to maintain continuous data flow between compute nodes by ensuring proper buffering and synchronization, eliminating idle time and keeping processing pipelines full throughout the distributed computation

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11488008B2Hardware implemented point to point communication primitives for machine learning
Publication Date: 2022.11.01 INTEL CORP
  • US11488008B2 patent drawing
  • US11488008B2 patent drawing
  • US11488008B2 patent drawing

AI summary

One embodiment provides for a system to compute and distribute data for distributed training of a neural network, the system including first memory to store a first set of instructions including a machine learning framework; a fabric interface to enable transmission and receipt of data associated with the set of trainable machine learning parameters; a first set of general-purpose processor cores to execute the first set of instructions, the first set of instructions to provide a training workflow for computation of gradients for the trainable machine learning parameters and to communicate with a second set of instructions, the second set of instructions facilitate transmission and receipt of the gradients via the fabric interface; and a graphics processor to perform compute operations associated with the training workflow to generate the gradients for the trainable machine learning parameters.