This project is a fork of the original DLPrimitives that aims to port it to use Vulkan instead of OpenCL. The reason for this is that Vulkan supports a much wider range of hardware than OpenCL does.
- Create an open source, cross platform deep learning primitives library similar to cuDNN or MIOpen that supports multiple GPU architectures.
- Create minimalistic deep-learning framework as POC of capabilities and performance.
- Integrate to existing large scale deep learning projects like PyTorch, TF, MXNet such that vendor independent open-source Vulkan API will be first class citizen for deep learning.
Please note this is only work in progress - first and preliminary stages.
Integration with existing frameworks:
-
Pytorch, (almost) out-of-tree Vulkan backend project:
None yet, sorry!
| Operator | Features | Comment |
|---|---|---|
| Softmax | Softmax, LogSoftmax | |
| NLLLoss | ||
| MSELoss | ||
| SoftmaxWithLoss | ||
| Elementwise | ax+by, max(ax,by), ax*y, broadcasting | |
| Concat | ||
| Slice | ||
| Pooling2D | max, average | |
| GlobalPooling | max, average | 2D only |
| GlobalAvgPool2d | ||
| InnerProduct | ||
| BatchNorm | ||
| Reshape | ||
| Squeeze | ||
| Flatten | ||
| Threshold | ||
| Hardtanh | ||
| Abs | ||
| Parameter | ֹUtility | |
| Reduction | Sum, Mean, Sum Squares, L1 | |
| Convolution2D | GEMM, Winograd, Depthwise Separable | |
| TransposedConvolution2D | GEMM, Winograd, Depthwise Separable | |
| Activation | relu, sigmoid, tanh, relu6 |
Solvers: SGD, Adam