generate_scheduling: pad operator is not managed after metaops manipulation
What commit version of aidge do you use
-
aidge_core
: branch dev: commit 2edd547d -
aidge_backend_cpu
: branch dev: commit d111493246ae4835681c47510cb08031950b3790
Problem description
Executing aidge_onnx.load_onnx creates metaops named PaddedConv & PaddedConvDepthWise. After quantization, I want to fuse metaops with nodes:
- Pad+Conv+Scaling+ReLU=PadConvReLU
- Pad+ConvDepthWise+Scaling+ReLU=PadConvDepthWiseReLU
After these changes, I get an error about Pad node at scheduler.generate_scheduling() execution. Is there a specific implementation for PaddedConv & PaddedConvDepthWise metaops in the scheduler.generate_scheduling() function which is not called with the new custom metaops?
Reproducible example code
A patch which is not merge yet must be added in aidge_backend_cpu: File location: aidge_backend_cpu/include/aidge/backend/cpu/operator/PadImpl_forward_kernels.hpp Patched file: PadImpl_forward_kernels.hpp
Python script to reproduce the issue:issue.py onnx: issue.onnx
Extract from the logs
Replaced 13 (out of 13) matching sub-graph with meta operators
Context: Producer node (of type PadConvDepthWiseReLU) output #0
Context: Producer node (of type PadConvReLU) output #0
Assertion failed: mImpl != nullptr in /local2/is157416/rm254443/git_repo/aidge/aidge_core/src/operator/Operator.cpp:35
Context: Producer node (of type PadConvDepthWiseReLU) output #0
Context: Producer node (of type PadConvReLU) output #0
getNbRequiredData(): an implementation is required for Pad!
scheduler.generate_scheduling()
RuntimeError: getNbRequiredData(): an implementation is required for Pad!