[IE CLDNN] Improving prepare quantization pass (#5679)

This commit is contained in:
Andrei Molotkov
2021-06-23 10:00:18 +03:00
committed by GitHub
parent 2f432980a0
commit f72e2481ff
3 changed files with 636 additions and 723 deletions

View File

@@ -17,9 +17,7 @@ using namespace cldnn;
the processing order was valid).
*/
void reverse_optional_nodes_outputs::run(program_impl& p) {
auto node_itr = p.get_processing_order().begin();
while (node_itr != p.get_processing_order().end()) {
auto& node = (*node_itr++);
for (auto& node : p.get_processing_order()) {
if (node->is_type<lstm_dynamic_timeloop>()) {
auto& typed_node = node->as<lstm_dynamic_timeloop>();
typed_node.reverse_optional_outputs_connections();

View File

@@ -9,12 +9,16 @@
#include "split_inst.h"
#include "lstm_inst.h"
#include "lstm_dynamic_inst.h"
#include "quantize_inst.h"
#include "eltwise_inst.h"
#include "convolution_inst.h"
#include <string>
#include <vector>
#include <memory>
#include <list>
#include <utility>
#include <set>
#include <functional>
#include <fstream>
@@ -149,11 +153,12 @@ public:
private:
void run(program_impl& p) override;
void prepare_packed_quantize(program_impl& p);
void prepare_scale_shift_opt(program_impl& p);
void prepare_dequantize_merge(program_impl& p);
void remove_fake_reorders(program_impl& p);
void prepare_asymmetric_quantization(program_impl& p);
void handle_quantize_node(program_impl& p, quantize_node& quantize_node);
void prepare_packed_quantize(program_impl& p, quantize_node& quantize_node);
void prepare_dequantize_merge(program_impl& p, eltwise_node& eltwise_node);
void remove_fake_reorders(program_impl& p, reorder_node& reorder_node);
void prepare_asymmetric_quantization(program_impl& p, convolution_node& convolution_node);
void prepare_scale_shift_opt(program_impl &p, quantize_node& quantize_node);
};
class prepare_conv_eltw_fusing : public base_pass {