Neural Coder collaborates with BigDL-Nano, a Python library that automatically applies modern CPU optimizations, to further democratize ease-of-use BigDL-Nano APIs as a no-code solution for PyTorch Deep Learning programmers.
For instance, to perform BF16 + Channels Last optimizations with BigDL-Nano API using Neural Coder on the example code and run this code with the enabled optimizations, users can simply execute this command:
python -m neural_coder -o nano_bf16_channels_last ../examples/nano/resnet18.py
The alias for each optimization set is documented in the below Support Matrix. Note that you need to pip install bigdl
first following BigDL-Nano documentation.
Optimization Set | API Alias |
---|---|
BF16 + Channels Last | nano_bf16_channels_last |
BF16 + IPEX + Channels Last | nano_bf16_ipex_channels_last |
BF16 + IPEX | nano_bf16_ipex |
BF16 | nano_bf16 |
Channels Last | nano_fp32_channels_last |
IPEX + Channels Last | nano_fp32_ipex_channels_last |
IPEX | nano_fp32_ipex |
Convert CUDA TO GPU | nano_gpu_to_cpu |
INT8 | nano_int8 |
JIT + BF16 + Channels Last | nano_jit_bf16_channels_last |
JIT + BF16 + IPEX + Channels Last | nano_jit_bf16_ipex_channels_last |
JIT + BF16 + IPEX | nano_jit_bf16_ipex |
JIT + BF16 | nano_jit_bf16 |
JIT + Channels Last | nano_jit_fp32_channels_last |
JIT + IPEX + Channels Last | nano_jit_fp32_ipex_channels_last |
JIT + IPEX | nano_jit_fp32_ipex |
JIT | nano_jit_fp32 |
ONNX Runtime | nano_onnxruntime_fp32 |
ONNX Runtime + INT8 | nano_onnxruntime_int8_qlinear |
OpenVINO | nano_openvino_fp32 |
OpenVINO + INT8 | nano_openvino_int8 |