# plaidml/plaidml

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/plaidml-plaidml).**

4,573 stars · 399 forks · C++ · Apache-2.0 · archived

## Links

- GitHub: https://github.com/plaidml/plaidml
- Homepage: https://ai.intel.com/plaidml
- awesome-repositories: https://awesome-repositories.com/repository/plaidml-plaidml.md

## Description

PlaidML is a deep learning compiler framework and cross-platform runtime designed to execute machine learning models on a wide variety of hardware targets. It functions as a hardware agnostic tensor engine that translates tensor models into executable code, allowing deep learning networks to run across different compute devices without requiring specific driver dependencies.

The system enables the execution of models on custom or limited hardware by using JSON specifications to define device hardware. It employs a domain-specific language to describe tensor computations and provides a middle layer to integrate various machine learning frameworks with its hardware-targeting compiler.

The engine supports a range of tensor operations, including tensor contractions with index constraints, multi-dimensional convolutions with configurable strides and padding, and elementwise operations using broadcasting. It also includes a testing suite to benchmark execution speed and efficiency across different hardware components and environments.

## Tags

### Part of an Awesome List

- [Cross-Platform Model Execution](https://awesome-repositories.com/f/awesome-lists/ai/running-models/cross-platform-model-execution.md) — Runs machine learning models across different hardware targets and operating systems to verify correctness and measure performance.

### DevOps & Infrastructure

- [Cross-Platform Runtimes](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/code-execution-runtimes/cross-platform-runtimes.md) — Provides a software layer that enables consistent model execution across diverse hardware architectures using JSON specifications.

### Artificial Intelligence & ML

- [Backend-Agnostic Deep Learning](https://awesome-repositories.com/f/artificial-intelligence-ml/backend-agnostic-deep-learning.md) — Executes deep learning models across diverse hardware targets without requiring vendor-specific drivers or software.
- [Framework-Agnostic Backends](https://awesome-repositories.com/f/artificial-intelligence-ml/framework-agnostic-backends.md) — Acts as a framework-agnostic backend that connects various machine learning frameworks to a universal hardware-targeting compiler.
- [Model Compilers](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/frameworks/training-systems/model-performance-optimizations/model-compilers.md) — Transforms high-level neural network definitions into optimized, hardware-specific executable code. ([source](https://cdn.jsdelivr.net/gh/plaidml/plaidml@plaidml-v1/README.md))
- [Hardware Acceleration](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-optimization-and-inference/hardware-and-acceleration/hardware-acceleration.md) — Utilizes specialized hardware components and custom specifications to enhance computational throughput for machine learning tasks.
- [Backend-Agnostic Engines](https://awesome-repositories.com/f/artificial-intelligence-ml/neural-network-research/neural-network-toolkits/backend-agnostic-engines.md) — Decouples neural network operations from specific hardware backends to enable cross-platform execution without driver dependencies.
- [Configurable Convolutions](https://awesome-repositories.com/f/artificial-intelligence-ml/configurable-convolutions.md) — Constructs multi-dimensional convolutions using configurable strides, dilation rates, padding, and grouping. ([source](https://plaidml.github.io/plaidml/docs/edsl))
- [Neural Network Operations](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-training-and-tuning/architecture-and-operations/neural-network-operations.md) — Defines mathematical operations and transformations used within neural network layers. ([source](https://plaidml.github.io/plaidml/docs/edsl))
- [ML Framework Integrations](https://awesome-repositories.com/f/artificial-intelligence-ml/ml-framework-integrations.md) — Connects tensor compilers to various machine learning frameworks to enable execution across diverse hardware targets. ([source](https://plaidml.github.io/plaidml/docs/building))
- [Tensor Broadcasting](https://awesome-repositories.com/f/artificial-intelligence-ml/tensor-broadcasting.md) — Implements mechanisms for performing element-wise operations on tensors with different shapes through automatic broadcasting.

### Hardware & IoT

- [JSON Device Specifications](https://awesome-repositories.com/f/hardware-iot/device-support-configurations/json-device-specifications.md) — Defines hardware specifications in JSON files to allow model execution on devices without native software support.

### Operating Systems & Systems Programming

- [Device Support Specifications](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-acceleration/device-selection/audio-device-enumerators/hardware-configurations/device-support-specifications.md) — Defines device specifications in JSON files to run models on hardware with limited or custom software support. ([source](https://plaidml.github.io/plaidml/docs/building))

### Programming Languages & Runtimes

- [AOT Deep Learning Compilers](https://awesome-repositories.com/f/programming-languages-runtimes/aot-deep-learning-compilers.md) — Translates neural network graphs into standalone native code for efficient hardware-targeted inference.
- [Tensor Operation Definitions](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/domain-specific-languages/dsl-implementation-toolkits/tensor-operation-definitions.md) — Provides a domain-specific language to describe tensor computations that are subsequently converted into hardware-specific implementations.
- [Hardware-Targeted Compilation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/hardware-targeted-compilation.md) — Translates high-level tensor networks into executable code optimized for the specific constraints of chosen hardware targets.
- [Index Range Constraints](https://awesome-repositories.com/f/programming-languages-runtimes/multidimensional-arrays/advanced-array-indexing/index-boundary-validation/index-range-constraints.md) — Restricts the range of index variables during tensor contractions to implement pooling or cumulative sums. ([source](https://plaidml.github.io/plaidml/docs/edsl))

### Scientific & Mathematical Computing

- [Deep Learning Execution](https://awesome-repositories.com/f/scientific-mathematical-computing/data-modeling-processing/computational-graphs/graph-based-computational-execution/deep-learning-execution.md) — Executes tensor networks and deep learning models across diverse hardware targets to verify correctness and performance. ([source](https://plaidml.github.io/plaidml/))
- [Tensor Contractions](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/linear-algebra/sparse-linear-algebra-routines/block-sparse-engines/tensor-contractions.md) — Aggregates values across tensor indices using sum, max, min, or product operations to reduce dimensionality. ([source](https://plaidml.github.io/plaidml/docs/edsl))
- [Index-Constrained Contractions](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/linear-algebra/sparse-linear-algebra-routines/block-sparse-engines/tensor-contractions/index-constrained-contractions.md) — Reduces tensor dimensionality by aggregating values across indices while applying specific range constraints for pooling and sums.
- [Tensor Operations](https://awesome-repositories.com/f/scientific-mathematical-computing/tensor-operations.md) — Performs mathematical functions and binary operators on tensor elements using broadcasting for mismatched shapes. ([source](https://plaidml.github.io/plaidml/docs/edsl))
- [Tensor Network Executors](https://awesome-repositories.com/f/scientific-mathematical-computing/tensor-operations/tensor-network-executors.md) — Implements a tensor engine for performing contractions and elementwise operations on diverse hardware.

### Testing & Quality Assurance

- [Hardware Performance Benchmarking](https://awesome-repositories.com/f/testing-quality-assurance/hardware-performance-benchmarking.md) — Compares execution speed and efficiency across different hardware components and environments using a dedicated testing suite. ([source](https://cdn.jsdelivr.net/gh/plaidml/plaidml@plaidml-v1/README.md))
