ai3#
The ai3 (Algorithmic Innovations for Accelerated Implementations of Artificial Intelligence) framework provides easy-to-use fine-grain algorithmic control over an existing DNN. ai3 contains built-in high performance implementations of common deep learning operations and methods by which users can implement their own algorithms in C++. ai3 incurs no additional performance overhead, meaning that performance depends solely on the algorithms chosen by the user.
Installation#
Default Implementations: pip install aithree
- Custom Implementations:
Download the source code
Create an implementation with the operations defined in custom
If needed, configure the build process with custom.cmake
pip install <path to source code>
Contents#
Supported Operations, their Algorithms, and Acceleration Platform Compatibility#
2D Convolution#
The guess algorithm uses the algorithm returned by cudnnGetConvolutionForwardAlgorithm_v7.
Algorithm |
direct |
smm |
gemm |
implicit precomp gemm |
implicit gemm |
winograd |
guess |
some |
---|---|---|---|---|---|---|---|---|
none |
✓ |
✓ |
✗ |
✗ |
✗ |
✗ |
✗ |
✓ |
sycl |
✓ |
✓ |
✗ |
✗ |
✗ |
✗ |
✗ |
✓ |
cudnn |
✗ |
✗ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
cublas |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
mps |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✓ |
metal |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✓ |
Linear#
Algorithm |
gemm |
---|---|
none |
✓ |
sycl |
✗ |
cudnn |
✗ |
cublas |
✓ |
mps |
✗ |
metal |
✗ |
2D MaxPool#
Algorithm |
direct |
---|---|
none |
✓ |
sycl |
✗ |
cudnn |
✗ |
cublas |
✗ |
mps |
✗ |
metal |
✗ |
2D AvgPool#
Algorithm |
direct |
---|---|
none |
✓ |
sycl |
✗ |
cudnn |
✗ |
cublas |
✗ |
mps |
✗ |
metal |
✗ |
2D AdaptiveAvgPool#
Algorithm |
direct |
---|---|
none |
✓ |
sycl |
✗ |
cudnn |
✗ |
cublas |
✗ |
mps |
✗ |
metal |
✗ |
ReLU#
Algorithm |
direct |
---|---|
none |
✓ |
sycl |
✗ |
cudnn |
✗ |
cublas |
✗ |
mps |
✗ |
metal |
✗ |
Flatten#
Algorithm |
direct |
---|---|
none |
✓ |
sycl |
✗ |
cudnn |
✗ |
cublas |
✗ |
mps |
✗ |
metal |
✗ |