MacOS 11.0 (BigSur) have updated support for various neural networks layers via improvements to Apple’s BNNS API’s (https://developer.apple.com/documentation/accelerate/bnns?language=objc). Specifically, 2D convolution+relu and max-pooling layers are now available from BNNS and as a result, OIDN u-Network could be easily implemented using BNNS API's.
The attached patch:
Allows OIDN to use BNNS API’s instead on MKL-DNN:
Convolution2D and max-pool layers are calling BNNS services directly
As BNNS uses NCHW data arrangement, new input, output and upscale services were added to support NCHW format
MKL-DNN is still used to manage memory
changes to cmake script to support new modeBNNS with all required versioning checks
Allows compilation for Apple silicon based Macs and iPhone/iPad
Removing all files and dependencies of MKL-DNN that are specific for x86_64 platforms from compilation process
target ISPC to generate ios-arm64 object files, which are compatible with Apple silicon Mac and iOS
By default, Intel based Mac system will continue to use MKL-DNN. When targeting the build for Apple silicon Mac targets (CMAKE_OSX_ARCHITECTURES=arm64), cmake will enable BNNS builds and APPLE_SILICON. x86_64 Mac targets can build the BNNS option by setting OIDN_BNNS cmake boolean.
MacOS 11.0 (BigSur) have updated support for various neural networks layers via improvements to Apple’s BNNS API’s (https://developer.apple.com/documentation/accelerate/bnns?language=objc). Specifically, 2D convolution+relu and max-pooling layers are now available from BNNS and as a result, OIDN u-Network could be easily implemented using BNNS API's. The attached patch:
Allows OIDN to use BNNS API’s instead on MKL-DNN:
Allows compilation for Apple silicon based Macs and iPhone/iPad
By default, Intel based Mac system will continue to use MKL-DNN. When targeting the build for Apple silicon Mac targets (CMAKE_OSX_ARCHITECTURES=arm64), cmake will enable BNNS builds and APPLE_SILICON. x86_64 Mac targets can build the BNNS option by setting OIDN_BNNS cmake boolean.