BigDL-Nano Features#

Feature Meaning
Intel-openmp Use Intel-openmp library to improve performance of multithread programs
Jemalloc Use jemalloc as allocator
Tcmalloc Use tcmalloc as allocator
Neural-Compressor Neural-Compressor int8 quantization
OpenVINO OpenVINO fp32/bf16/fp16/int8 acceleration on CPU/GPU/VPU
ONNXRuntime ONNXRuntime fp32/int8 acceleration
CUDA patch Run CUDA code even without GPU
JIT PyTorch JIT optimization
Channel last Channel last memory format
BF16 BFloat16 mixed precision training and inference
IPEX Intel-extension-for-pytorch optimization
Multi-instance Multi-process training and inference
ray Use ray as multi-process backend

Common Feature Support (Can be used in both PyTorch and TensorFlow)#

Feature Ubuntu (20.04/22.04) CentOS7 MacOS (Intel chip) MacOS (M-series chip) Windows
Intel-openmp ✅ ✅ ✅ ② ✅
Jemalloc ✅ ✅ ✅ ❌ ❌
Tcmalloc ✅ ❌ ❌ ❌ ❌
Neural-Compressor ✅ ✅ ❌ ❌ ?
OpenVINO ✅ ① ❌ ❌ ④
ONNXRuntime ✅ ① ✅ ❌ ✅
ray ✅ ? ? ? ④

PyTorch Feature Support#

Feature Ubuntu (20.04/22.04) CentOS7 MacOS (Intel chip) MacOS (M-series chip) Windows
CUDA patch ✅ ✅ ✅ ? ✅
JIT ✅ ✅ ✅ ? ✅
Channel last ✅ ✅ ✅ ? ✅
BF16 ✅ ✅ ⭕ ⭕ ✅
IPEX ✅ ✅ ❌ ❌ ❌
Multi-instance ✅ ✅ ② ② ②

TensorFlow Feature Support#

Feature Ubuntu (20.04/22.04) CentOS7 MacOS (Intel chip) MacOS (M-series chip) Windows
BF16 ✅ ✅ ⭕ ⭕ ✅
Multi-instance ③ ③ ②③ ②③ ❌

Symbol Meaning#

Symbol Meaning
✅ Supported
❌ Not supported
⭕ All Mac machines (Intel/M-series chip) do not support bf16 instruction set, so this feature is pointless
① This feature is only supported when used together with jemalloc
② This feature is supported but without any performance guarantee
③ Only Multi-instance training is supported for now
④ This feature is only supported when using PyTorch
? Not tested