Selective GPU Function Loading API

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Running applications on a GPU involves loading large numbers of functions, leading to full loading of all functions into memory even if only a few are used, which results in performance slowdowns and resource inefficiencies due to unnecessary memory usage.

Innovation Solution

Implementing an API to selectively load libraries and GPU functions by performing partial loading at application startup and full loading only when specific functions are used, based on state information generated during partial loading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all functions are fully loaded into GPU memory at application startup, then function availability and reliability are ensured, but memory usage increases and application performance deteriorates

Engineering Contradiction:
Improvefunction availabilityVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the loading process into two phases: partial loading at startup (loading only necessary functions) and full loading on demand (loading additional functions when needed). This resolves the contradiction by ensuring function availability through selective loading while improving performance by avoiding unnecessary memory usage at startup.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary partial loading of functions at application startup based on state information, rather than waiting for functions to be needed. This preliminary action ensures that critical functions are available immediately while avoiding the need to load all functions upfront, thus resolving the reliability-performance contradiction.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If all functions are loaded into GPU memory, then all functions are available for use, but memory footprint increases unnecessarily

Engineering Contradiction:
Improvefunction availabilityVSAvoidmemory usage
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent extracts and loads only the necessary functions into GPU memory at startup, separating the loading of essential functions from optional functions. This extraction approach ensures adaptability by loading functions on demand while reducing memory footprint by excluding unnecessary functions from initial loading.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements dynamic loading where the set of loaded functions changes based on application needs. Functions are loaded dynamically when required rather than being statically loaded all at once, enabling the system to adapt memory usage to actual requirements and resolve the contradiction between versatility and memory quantity.

Inventive Principle:
Principle #15Dynamics

3Reliability

If full loading of functions is performed, then complete function set is available, but resource allocation becomes inefficient

Engineering Contradiction:
Improvefunction completenessVSAvoidresource allocation efficiency
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent applies partial action by loading only the necessary functions at startup rather than all functions. This partial loading improves resource allocation efficiency by avoiding excessive memory allocation while maintaining reliability through on-demand loading of additional functions when needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20230305883A1Application programming interface to perform selective loading
Publication Date: 2023.09.28 NVIDIA CORP
  • US20230305883A1 patent drawing
  • US20230305883A1 patent drawing
  • US20230305883A1 patent drawing

AI summary

Apparatuses, systems, and techniques to selectively load data required to use one or more functions. In at least one embodiment, selective load for one or more functions to be used is performed by one or more application programming interface for efficient use of memory on a system comprising a processor and a graphics processor.