API for Generating Linear Algebra Software Programs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing APIs for pre-programmed libraries like BLAS lack user-defined linear algebra computation parameters, limiting their functionality to strict library management and basic interactions.
Innovation Solution
The development of a software generation system that uses APIs to select implementations of functions and generate software for executing linear algebra operations, allowing for user-defined parameters such as matrix data layouts, input data types, and algorithm implementations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If strict library management is used for BLAS APIs, then library control and stability are improved, but user-defined computation parameters and flexibility are lost
Solution Approach 1:
The patent segments the BLAS API into two distinct parts: a stable library management interface for controlling library aspects, and a separate user-defined parameter interface for specifying computation characteristics. This segmentation allows each part to serve its specific purpose independently, maintaining library stability while enabling user flexibility.
Solution Approach 2:
The patent introduces an intermediary layer between the user and the BLAS library implementation. This intermediary accepts user-defined parameters and translates them into appropriate library calls, acting as a mediator that preserves both library control and user customization capabilities.
2Device complexity
If basic interactions are limited for BLAS APIs, then API simplicity is maintained, but computational flexibility and performance optimization are reduced
Solution Approach 1:
The patent makes the API dynamic by allowing users to define parameters such as data layouts, precision levels, and algorithm preferences at runtime. The API evolves from a static, fixed interface to a dynamic one that adapts to user computational needs while maintaining a relatively simple base structure.
Solution Approach 2:
The patent enables parameter changes in the API by accepting user-defined parameters that can modify computational behavior. Users can change parameters like data types, matrix layouts, and precision without altering the core API structure, achieving flexibility through parameter variation rather than interface complexity.
3Extent of automation
If pre-programmed libraries manage all BLAS aspects, then implementation control is centralized, but user optimization capability is limited
Solution Approach 1:
The patent applies partial automation where the library manages only the essential BLAS implementation aspects, while leaving optimization parameters open to user definition. This partial action approach allows the library to provide controlled implementation details while users retain the ability to optimize for their specific needs.
Solution Approach 2:
The patent performs preliminary action by providing a standardized API interface that prepares the groundwork for computation, while user-defined parameters are applied as additional configuration layers. The library handles the foundational setup, and users add their optimization preferences on top.
Data Source
AI summary
Apparatuses, systems, and techniques to determine a matrix multiplication algorithm for a matrix multiplication operation. In at least one embodiment, a matrix multiplication operation is analyzed to determine an appropriate matrix multiplication algorithm to perform the matrix multiplication algorithm.


