Improved Scheduler diagnosis
Improved Scheduler
diagnostic, without requiring to display the large and complicated debug log. There are 2 levels of diagnostic and the second level is only displayed if the first one is empty, in order for the user to focus on the root cause of the Remaining consumers
warning.
Examples:
- Case of a missing connection (level 1):
Remaining consumers: ["convolution (PaddedConv2D#0)", "convolution1 (PaddedConv2D#1)", "convolution2 (PaddedConv2D#2)", "convolution3 (PaddedConv2D#3)", "convolution4 (PaddedConv2D#4)", "convolution5 (PaddedConv2D#5)", "convolution6 (PaddedConv2D#6)", "convolution7 (PaddedConv2D#7)", "convolution8 (Conv2D#0)"].
Reasons:
- No data available for node convolution (PaddedConv2D#0) input #0. The input is not connected in the current GraphView.
This kind of error is normally also catched by forwardDims()
, but forwardDims()
is not mandatory to generate a scheduling. In this case, the generated scheduling may be token-based, if not all dimensions are known.
- Case of missing data (level 2):
Remaining consumers: [" (Identity#0)", " (FC#4)", " (FC#5)", " (FC#6)", " (FC#7)"].
Reasons:
- No data available for node (Identity#0) input #0. The input is an upper node input and is connected to a Node.
↳ Available data is 64:1, but 64:1 was already consummed and 64:1 more is required.
- No data available for node (FC#4) input #1. The input is an upper node input and is connected to a Node.
↳ Available data is 4096:1, but 4096:1 was already consummed and 4096:1 more is required.
- No data available for node (FC#5) input #1. The input is an upper node input and is connected to a Node.
↳ Available data is 4096:1, but 4096:1 was already consummed and 4096:1 more is required.
- No data available for node (FC#6) input #1. The input is an upper node input and is connected to a Node.
↳ Available data is 4096:1, but 4096:1 was already consummed and 4096:1 more is required.
- No data available for node (FC#7) input #1. The input is an upper node input and is connected to a Node.
↳ Available data is 4096:1, but 4096:1 was already consummed and 4096:1 more is required.
Edited by Olivier BICHLER