OneAPI backend in hls4ml
Created by: mswiniars
This PR includes infrastructure for oneAPI backend with:
- oneAPI template in
hls4ml/templates/oneAPI/*
- oneAPI writer in
hls4ml/writers/oneapi_writer.py
- Data Parallel C++ definitions(
dcpp
) inhls4ml/model/hls_layers.py
- small changes in
hls4ml/converters/__init__.py
,hls4ml/utils/config.py
,hls4ml/utils/example_models.py
,hls4ml/model/hls_model.py
that enables possibility to add another backend to the project, set hardware device and batch size
OneAPI backend supports several primitives (in oneDNN syntax: layers, activation functions, operations):
- Dense layers (Inner product primitive)
- Convolutional layers (convolutional primitive)
- Pooling (MaxPooling, AveragePooling primitives)
- Eltwise functions (relu, exp, log, tanh, linear and many others)
- Softmax primitive
OneAPI backend was benchmarked and tested using Intel® DevCloud.