[CPU] Remove unused emitter parameters and API (#16117)
This commit is contained in:
@@ -20,9 +20,7 @@ public:
|
||||
size_t get_inputs_num() const override { return 1; }
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in_vec_idxs, const std::vector<size_t>& out_vec_idxs,
|
||||
const std::vector<size_t>& pool_vec_idxs, const std::vector<size_t>& pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override {
|
||||
void emit_impl(const std::vector<size_t>& in_vec_idxs, const std::vector<size_t>& out_vec_idxs) const override {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::avx512_core) {
|
||||
emit_isa<dnnl::impl::cpu::x64::avx512_core>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
|
||||
@@ -68,9 +68,7 @@ bool jit_convert_truncation_emitter::is_i8_and_u8_case() const {
|
||||
one_of(output_type, ov::element::i8, ov::element::u8);
|
||||
}
|
||||
|
||||
void jit_convert_truncation_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_convert_truncation_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
validate_types();
|
||||
if (host_isa_ == cpu::x64::sse41) {
|
||||
emit_isa<cpu::x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
@@ -185,9 +183,7 @@ jit_convert_saturation_emitter::jit_convert_saturation_emitter(jit_generator *ho
|
||||
: jit_convert_emitter(host, host_isa, node, exec_prc) {
|
||||
}
|
||||
|
||||
void jit_convert_saturation_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_convert_saturation_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
validate_types();
|
||||
if (host_isa_ == cpu::x64::sse41) {
|
||||
emit_isa<cpu::x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
|
||||
@@ -49,9 +49,7 @@ public:
|
||||
const std::shared_ptr<ngraph::Node>& n, InferenceEngine::Precision exec_prc = InferenceEngine::Precision::FP32);
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool, const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
|
||||
@@ -72,9 +70,7 @@ public:
|
||||
const std::shared_ptr<ngraph::Node>& n, InferenceEngine::Precision exec_prc = InferenceEngine::Precision::FP32);
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool, const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
|
||||
|
||||
@@ -18,9 +18,7 @@ public:
|
||||
|
||||
void emit_data() const override;
|
||||
|
||||
void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context = nullptr) const override {};
|
||||
void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs) const override {};
|
||||
|
||||
protected:
|
||||
jit_dnnl_emitter(dnnl::impl::cpu::x64::jit_generator *host, dnnl::impl::cpu::x64::cpu_isa_t host_isa,
|
||||
|
||||
@@ -24,9 +24,7 @@ jit_add_emitter::jit_add_emitter(x64::jit_generator *host, x64::cpu_isa_t host_i
|
||||
|
||||
size_t jit_add_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_add_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_add_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -73,9 +71,7 @@ jit_mul_add_emitter::jit_mul_add_emitter(x64::jit_generator *host, x64::cpu_isa_
|
||||
|
||||
size_t jit_mul_add_emitter::get_inputs_num() const { return 3; }
|
||||
|
||||
void jit_mul_add_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_mul_add_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -166,9 +162,7 @@ jit_subtract_emitter::jit_subtract_emitter(x64::jit_generator *host, x64::cpu_is
|
||||
|
||||
size_t jit_subtract_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_subtract_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_subtract_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -215,9 +209,7 @@ jit_multiply_emitter::jit_multiply_emitter(x64::jit_generator *host, x64::cpu_is
|
||||
|
||||
size_t jit_multiply_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_multiply_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_multiply_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -264,9 +256,7 @@ jit_divide_emitter::jit_divide_emitter(x64::jit_generator *host, x64::cpu_isa_t
|
||||
|
||||
size_t jit_divide_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_divide_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_divide_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -331,9 +321,7 @@ jit_floor_emitter::jit_floor_emitter(x64::jit_generator *host, x64::cpu_isa_t ho
|
||||
|
||||
size_t jit_floor_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_floor_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_floor_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -362,9 +350,7 @@ jit_ceiling_emitter::jit_ceiling_emitter(x64::jit_generator* host, x64::cpu_isa_
|
||||
size_t jit_ceiling_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_ceiling_emitter::emit_impl(const std::vector<size_t>& in_vec_idxs,
|
||||
const std::vector<size_t>& out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -392,9 +378,7 @@ jit_floor_mod_emitter::jit_floor_mod_emitter(x64::jit_generator *host, x64::cpu_
|
||||
|
||||
size_t jit_floor_mod_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_floor_mod_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_floor_mod_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -444,9 +428,7 @@ jit_mod_emitter::jit_mod_emitter(x64::jit_generator *host, x64::cpu_isa_t host_i
|
||||
|
||||
size_t jit_mod_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_mod_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_mod_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -496,9 +478,7 @@ jit_maximum_emitter::jit_maximum_emitter(x64::jit_generator *host, x64::cpu_isa_
|
||||
|
||||
size_t jit_maximum_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_maximum_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_maximum_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -546,9 +526,7 @@ jit_minimum_emitter::jit_minimum_emitter(x64::jit_generator *host, x64::cpu_isa_
|
||||
|
||||
size_t jit_minimum_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_minimum_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_minimum_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -597,9 +575,7 @@ jit_squared_difference_emitter::jit_squared_difference_emitter(x64::jit_generato
|
||||
|
||||
size_t jit_squared_difference_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_squared_difference_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_squared_difference_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -654,9 +630,7 @@ jit_power_dynamic_emitter::jit_power_dynamic_emitter(x64::jit_generator *host, x
|
||||
|
||||
size_t jit_power_dynamic_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_power_dynamic_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_power_dynamic_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -767,9 +741,7 @@ jit_equal_emitter::jit_equal_emitter(x64::jit_generator *host, x64::cpu_isa_t ho
|
||||
|
||||
size_t jit_equal_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -828,9 +800,7 @@ jit_not_equal_emitter::jit_not_equal_emitter(x64::jit_generator *host, x64::cpu_
|
||||
|
||||
size_t jit_not_equal_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_not_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_not_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -889,9 +859,7 @@ jit_greater_emitter::jit_greater_emitter(x64::jit_generator *host, x64::cpu_isa_
|
||||
|
||||
size_t jit_greater_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_greater_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_greater_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -951,9 +919,7 @@ jit_greater_equal_emitter::jit_greater_equal_emitter(x64::jit_generator *host, x
|
||||
|
||||
size_t jit_greater_equal_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_greater_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_greater_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1012,9 +978,7 @@ jit_less_emitter::jit_less_emitter(x64::jit_generator *host, x64::cpu_isa_t host
|
||||
|
||||
size_t jit_less_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_less_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_less_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1073,9 +1037,7 @@ jit_less_equal_emitter::jit_less_equal_emitter(x64::jit_generator *host, x64::cp
|
||||
|
||||
size_t jit_less_equal_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_less_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_less_equal_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1135,9 +1097,7 @@ jit_logical_and_emitter::jit_logical_and_emitter(x64::jit_generator *host, x64::
|
||||
|
||||
size_t jit_logical_and_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_logical_and_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_logical_and_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1217,9 +1177,7 @@ jit_logical_or_emitter::jit_logical_or_emitter(x64::jit_generator *host, x64::cp
|
||||
|
||||
size_t jit_logical_or_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_logical_or_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_logical_or_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1298,9 +1256,7 @@ jit_logical_xor_emitter::jit_logical_xor_emitter(x64::jit_generator *host, x64::
|
||||
|
||||
size_t jit_logical_xor_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_logical_xor_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_logical_xor_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1379,9 +1335,7 @@ jit_logical_not_emitter::jit_logical_not_emitter(x64::jit_generator *host, x64::
|
||||
|
||||
size_t jit_logical_not_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_logical_not_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_logical_not_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1451,9 +1405,7 @@ jit_power_static_emitter::jit_power_static_emitter(x64::jit_generator *host, x64
|
||||
|
||||
size_t jit_power_static_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_power_static_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_power_static_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1627,9 +1579,7 @@ jit_prelu_emitter::jit_prelu_emitter(x64::jit_generator *host, x64::cpu_isa_t ho
|
||||
}
|
||||
size_t jit_prelu_emitter::get_inputs_num() const { return 2; }
|
||||
|
||||
void jit_prelu_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_prelu_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1684,9 +1634,7 @@ jit_sqrt_emitter::jit_sqrt_emitter(x64::jit_generator *host, x64::cpu_isa_t host
|
||||
|
||||
size_t jit_sqrt_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_sqrt_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_sqrt_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1713,9 +1661,7 @@ jit_negative_emitter::jit_negative_emitter(x64::jit_generator *host, x64::cpu_is
|
||||
|
||||
size_t jit_negative_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_negative_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_negative_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1751,10 +1697,7 @@ size_t jit_erf_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_erf_emitter::emit_impl(
|
||||
const std::vector<size_t> &in_vec_idxs,
|
||||
const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs,
|
||||
const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1932,9 +1875,7 @@ jit_soft_sign_emitter::jit_soft_sign_emitter(x64::jit_generator *host, x64::cpu_
|
||||
|
||||
size_t jit_soft_sign_emitter::get_inputs_num() const { return 1; }
|
||||
|
||||
void jit_soft_sign_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_soft_sign_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -1996,9 +1937,7 @@ void jit_is_finite_emitter::emit_isa(const std::vector<size_t> &in_vec_idxs, con
|
||||
}
|
||||
}
|
||||
|
||||
void jit_is_finite_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_is_finite_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::avx512_core) {
|
||||
emit_isa<x64::avx512_core>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -2071,9 +2010,7 @@ void jit_is_inf_emitter::emit_isa(const std::vector<size_t> &in_vec_idxs, const
|
||||
}
|
||||
}
|
||||
|
||||
void jit_is_inf_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_is_inf_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::avx512_core) {
|
||||
emit_isa<x64::avx512_core>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -2123,9 +2060,7 @@ void jit_is_nan_emitter::emit_isa(const std::vector<size_t> &in_vec_idxs, const
|
||||
}
|
||||
}
|
||||
|
||||
void jit_is_nan_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_is_nan_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::avx512_core) {
|
||||
emit_isa<x64::avx512_core>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
@@ -2160,9 +2095,7 @@ size_t jit_select_emitter::aux_vecs_count() const {
|
||||
return 2;
|
||||
}
|
||||
|
||||
void jit_select_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_select_emitter::emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const {
|
||||
if (host_isa_ == x64::sse41) {
|
||||
emit_isa<x64::sse41>(in_vec_idxs, out_vec_idxs);
|
||||
} else if (host_isa_ == x64::avx2) {
|
||||
|
||||
@@ -20,9 +20,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -39,9 +37,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -61,9 +57,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -81,9 +75,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -101,9 +93,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -120,9 +110,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -138,9 +126,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -156,9 +142,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -176,9 +160,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -197,9 +179,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -217,9 +197,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -238,9 +216,7 @@ public:
|
||||
static std::set<InferenceEngine::Precision> get_supported_precisions();
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -257,9 +233,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -276,9 +250,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -298,9 +270,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -320,9 +290,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -342,9 +310,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -364,9 +330,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -387,9 +351,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -409,9 +371,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -431,9 +391,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -453,9 +411,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -474,9 +430,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -496,9 +450,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -521,9 +473,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -541,9 +491,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -557,9 +505,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool, const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -578,10 +524,7 @@ public:
|
||||
private:
|
||||
void emit_impl(
|
||||
const std::vector<size_t> &in_vec_idxs,
|
||||
const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs,
|
||||
const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -600,9 +543,7 @@ public:
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -628,9 +569,7 @@ protected:
|
||||
void register_table_entries() override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emitContext) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -655,9 +594,7 @@ protected:
|
||||
void register_table_entries() override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emitContext) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -684,9 +621,7 @@ protected:
|
||||
void register_table_entries() override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emitContext) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
@@ -703,9 +638,7 @@ public:
|
||||
size_t aux_vecs_count() const override;
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in_vec_idxs, const std::vector<size_t> &out_vec_idxs) const;
|
||||
|
||||
@@ -208,17 +208,7 @@ void jit_emitter::emit_code(const std::vector<size_t> &in_idxs, const std::vecto
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs) const {
|
||||
emitter_preamble(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs);
|
||||
|
||||
emit_impl(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs, nullptr);
|
||||
|
||||
emitter_postamble();
|
||||
}
|
||||
|
||||
void jit_emitter::emit_code(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::shared_ptr<const emitter_context> &emit_context,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs) {
|
||||
emitter_preamble(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs);
|
||||
|
||||
emit_impl(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs, emit_context.get());
|
||||
emit_impl(in_idxs, out_idxs);
|
||||
|
||||
emitter_postamble();
|
||||
}
|
||||
|
||||
@@ -28,10 +28,6 @@ struct emitter_params {
|
||||
virtual size_t hash() const = 0;
|
||||
};
|
||||
|
||||
struct emitter_context {
|
||||
virtual ~emitter_context() = default;
|
||||
};
|
||||
|
||||
class jit_emitter : public ngraph::snippets::Emitter {
|
||||
public:
|
||||
jit_emitter(dnnl::impl::cpu::x64::jit_generator* host, dnnl::impl::cpu::x64::cpu_isa_t host_isa,
|
||||
@@ -50,9 +46,6 @@ public:
|
||||
const std::vector<size_t> &pool_vec_idxs = {}, const std::vector<size_t> &pool_gpr_idxs = {}) const override;
|
||||
void emit_data() const override;
|
||||
|
||||
virtual void emit_code(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::shared_ptr<const emitter_context> &emit_context,
|
||||
const std::vector<size_t> &pool_vec_idxs = {}, const std::vector<size_t> &pool_gpr_idxs = {});
|
||||
virtual size_t get_inputs_num() const = 0;
|
||||
virtual size_t aux_vecs_count() const;
|
||||
emitter_in_out_map get_in_out_type() const;
|
||||
@@ -101,9 +94,7 @@ protected:
|
||||
_cmp_gt_os = dnnl::impl::cpu::x64::jit_generator::_cmp_nle_us,
|
||||
};
|
||||
|
||||
virtual void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const = 0;
|
||||
virtual void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs) const = 0;
|
||||
|
||||
virtual void emitter_preamble(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs) const;
|
||||
|
||||
@@ -77,9 +77,7 @@ size_t jit_load_emitter::aux_gprs_count() const {
|
||||
return count;
|
||||
}
|
||||
|
||||
void jit_load_emitter::emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_load_emitter::emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs) const {
|
||||
const int offset = in_idxs.size() == 2 ? in_idxs[1] : 0;
|
||||
if (host_isa_ == cpu::x64::sse41) {
|
||||
emit_isa<cpu::x64::sse41>(Reg64(in_idxs[0]), static_cast<int>(out_idxs[0]), offset);
|
||||
@@ -616,9 +614,7 @@ void jit_store_emitter::emit_data() const {
|
||||
uni_vcvtneps2bf16_->emit_data();
|
||||
}
|
||||
|
||||
void jit_store_emitter::emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const {
|
||||
void jit_store_emitter::emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs) const {
|
||||
const int offset = in_idxs.size() == 2 ? in_idxs[1] : 0;
|
||||
if (host_isa_ == cpu::x64::sse41) {
|
||||
emit_isa<cpu::x64::sse41>(static_cast<int>(in_idxs[0]), Reg64(out_idxs[0]), offset);
|
||||
|
||||
@@ -68,9 +68,7 @@ public:
|
||||
* \|/
|
||||
* dst_prc
|
||||
*/
|
||||
void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs) const override;
|
||||
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
@@ -125,9 +123,7 @@ public:
|
||||
* dst_prc
|
||||
* note: FP32/I32-->BF16(x*) is supported only on at least avx512-core plateform
|
||||
*/
|
||||
void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs,
|
||||
const std::vector<size_t> &pool_vec_idxs, const std::vector<size_t> &pool_gpr_idxs,
|
||||
const emitter_context *emit_context) const override;
|
||||
void emit_impl(const std::vector<size_t> &in_idxs, const std::vector<size_t> &out_idxs) const override;
|
||||
|
||||
size_t get_inputs_num() const override;
|
||||
|
||||
|
||||
@@ -191,17 +191,13 @@ KernelEmitter::KernelEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::impl:
|
||||
}
|
||||
|
||||
void KernelEmitter::emit_code(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const {
|
||||
validate_arguments(in, out, pool, gpr);
|
||||
emit_impl(in, out, pool, gpr, nullptr);
|
||||
const std::vector<size_t> &out) const {
|
||||
validate_arguments(in, out);
|
||||
emit_impl(in, out);
|
||||
}
|
||||
|
||||
void KernelEmitter::validate_arguments(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const {
|
||||
const std::vector<size_t> &out) const {
|
||||
if (!in.empty())
|
||||
IE_THROW() << "KernelEmitter got invalid number of inputs. Expected 0, got " << in.size();
|
||||
if (!out.empty())
|
||||
@@ -301,10 +297,7 @@ void KernelEmitter::init_data_pointers(size_t num_inputs, size_t num_params, boo
|
||||
}
|
||||
}
|
||||
void KernelEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& vec_pool,
|
||||
const std::vector<size_t>& gpr_pool,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
h->preamble();
|
||||
|
||||
Reg64 reg_indexes = Reg64(static_cast<int>(reg_indexes_idx));
|
||||
@@ -342,17 +335,13 @@ LoopBeginEmitter::LoopBeginEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl:
|
||||
}
|
||||
|
||||
void LoopBeginEmitter::emit_code(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const {
|
||||
validate_arguments(in, out, pool, gpr);
|
||||
emit_impl(in, out, pool, gpr, nullptr);
|
||||
const std::vector<size_t> &out) const {
|
||||
validate_arguments(in, out);
|
||||
emit_impl(in, out);
|
||||
}
|
||||
|
||||
void LoopBeginEmitter::validate_arguments(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const {
|
||||
const std::vector<size_t> &out) const {
|
||||
if (in.size() != num_inputs)
|
||||
IE_THROW() << "Invalid inputs size: expected " << num_inputs << " got " << in.size();
|
||||
if (out.size() != num_inputs + 1)
|
||||
@@ -360,10 +349,7 @@ void LoopBeginEmitter::validate_arguments(const std::vector<size_t> &in,
|
||||
}
|
||||
|
||||
void LoopBeginEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
// todo: In dynamic case we will also need to set broadcasting info here
|
||||
Reg64 reg_work_amount = Reg64(out.back());
|
||||
Label for_body;
|
||||
@@ -403,18 +389,14 @@ LoopEndEmitter::LoopEndEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::imp
|
||||
}
|
||||
|
||||
void LoopEndEmitter::emit_code(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const {
|
||||
validate_arguments(in, out, pool, gpr);
|
||||
emit_impl(in, out, pool, gpr, nullptr);
|
||||
const std::vector<size_t> &out) const {
|
||||
validate_arguments(in, out);
|
||||
emit_impl(in, out);
|
||||
}
|
||||
|
||||
|
||||
void LoopEndEmitter::validate_arguments(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const {
|
||||
const std::vector<size_t> &out) const {
|
||||
if (loop_begin->input_regs.size() != num_inputs)
|
||||
IE_THROW() << "Invalid loop_begin->input_regs size: expected " << num_inputs << " got " << loop_begin->input_regs.size();
|
||||
if (out.size() != num_outputs)
|
||||
@@ -429,10 +411,7 @@ void LoopEndEmitter::validate_arguments(const std::vector<size_t> &in,
|
||||
}
|
||||
|
||||
void LoopEndEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
std::vector<size_t> data_ptr_reg_idxs(loop_begin->input_regs);
|
||||
data_ptr_reg_idxs.reserve(num_inputs + num_outputs);
|
||||
std::copy(out.begin(), out.end(), std::back_inserter(data_ptr_reg_idxs));
|
||||
@@ -464,10 +443,7 @@ BroadcastMoveEmitter::BroadcastMoveEmitter(dnnl::impl::cpu::x64::jit_generator*
|
||||
}
|
||||
|
||||
void BroadcastMoveEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -502,10 +478,7 @@ ScalarEmitter::ScalarEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::impl:
|
||||
}
|
||||
|
||||
void ScalarEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -545,10 +518,7 @@ StoreEmitter::StoreEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::impl::c
|
||||
}
|
||||
|
||||
void StoreEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -587,10 +557,7 @@ LoadEmitter::LoadEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::impl::cpu
|
||||
}
|
||||
|
||||
void LoadEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -627,10 +594,7 @@ BroadcastLoadEmitter::BroadcastLoadEmitter(dnnl::impl::cpu::x64::jit_generator*
|
||||
}
|
||||
|
||||
void BroadcastLoadEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -669,10 +633,7 @@ LoadConvertEmitter::LoadConvertEmitter(dnnl::impl::cpu::x64::jit_generator* h, d
|
||||
}
|
||||
|
||||
void LoadConvertEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -710,10 +671,7 @@ StoreConvertEmitter::StoreConvertEmitter(dnnl::impl::cpu::x64::jit_generator* h,
|
||||
}
|
||||
|
||||
void StoreConvertEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -858,10 +816,7 @@ void BrgemmEmitter::initBrgemm(brgemmCtx& ctx, std::unique_ptr<brgemm_kernel_t>&
|
||||
}
|
||||
|
||||
void BrgemmEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == cpu::x64::sse41 || host_isa_ == cpu::x64::avx2) {
|
||||
IE_THROW() << "BrgemmEmitter requires at least avx512_core instruction set";
|
||||
} else if (host_isa_ == cpu::x64::avx512_core) {
|
||||
@@ -1024,10 +979,7 @@ HorizonMaxEmitter::HorizonMaxEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnn
|
||||
jit_emitter(h, isa, n, Precision::FP32, emitter_in_out_map::vec_to_vec) {}
|
||||
|
||||
void HorizonMaxEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -1069,10 +1021,7 @@ HorizonSumEmitter::HorizonSumEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnn
|
||||
jit_emitter(h, isa, n, Precision::FP32, emitter_in_out_map::vec_to_vec) {}
|
||||
|
||||
void HorizonSumEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -1112,10 +1061,7 @@ VectorBufferEmitter::VectorBufferEmitter(dnnl::impl::cpu::x64::jit_generator* h,
|
||||
jit_emitter(h, isa, n, Precision::FP32, emitter_in_out_map::vec_to_vec) {}
|
||||
|
||||
void VectorBufferEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
@@ -1154,10 +1100,7 @@ size_t FillEmitter::aux_gprs_count() const {
|
||||
}
|
||||
|
||||
void FillEmitter::emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const {
|
||||
const std::vector<size_t>& out) const {
|
||||
if (host_isa_ == dnnl::impl::cpu::x64::sse41) {
|
||||
emit_isa<dnnl::impl::cpu::x64::sse41>(in, out);
|
||||
} else if (host_isa_ == dnnl::impl::cpu::x64::avx2) {
|
||||
|
||||
@@ -80,20 +80,13 @@ public:
|
||||
|
||||
size_t get_inputs_num() const override {return 0;}
|
||||
void emit_code(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const override;
|
||||
const std::vector<size_t> &out) const;
|
||||
|
||||
private:
|
||||
void validate_arguments(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const override;
|
||||
const std::vector<size_t> &out) const;
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
void init_data_pointers(size_t, size_t, bool, const Reg64&, const Reg64&, const std::vector<Reg64>&) const;
|
||||
|
||||
jit_snippets_compile_args jcp;
|
||||
@@ -119,22 +112,15 @@ class LoopBeginEmitter : public jit_emitter {
|
||||
public:
|
||||
LoopBeginEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::impl::cpu::x64::cpu_isa_t isa, const std::shared_ptr<ov::Node>& n);
|
||||
void emit_code(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const override;
|
||||
const std::vector<size_t> &out) const;
|
||||
// todo: it is purely virtual in the base class, but do we need it?
|
||||
size_t get_inputs_num() const override {return 0;}
|
||||
|
||||
private:
|
||||
void validate_arguments(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const override;
|
||||
const std::vector<size_t> &out) const;
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
std::shared_ptr<ngraph::snippets::op::LoopBegin> loop_begin;
|
||||
size_t num_inputs = 0;
|
||||
@@ -146,23 +132,16 @@ class LoopEndEmitter : public jit_emitter {
|
||||
public:
|
||||
LoopEndEmitter(dnnl::impl::cpu::x64::jit_generator* h, dnnl::impl::cpu::x64::cpu_isa_t isa, const std::shared_ptr<ov::Node>& n);
|
||||
void emit_code(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const override;
|
||||
const std::vector<size_t> &out) const;
|
||||
// todo: it is purely virtual in the base class, but do we need it?
|
||||
size_t get_inputs_num() const override {return 0;}
|
||||
|
||||
private:
|
||||
void validate_arguments(const std::vector<size_t> &in,
|
||||
const std::vector<size_t> &out,
|
||||
const std::vector<size_t> &pool,
|
||||
const std::vector<size_t> &gpr) const override;
|
||||
const std::vector<size_t> &out) const;
|
||||
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
std::shared_ptr<ngraph::snippets::op::LoopBegin> loop_begin;
|
||||
std::shared_ptr<ngraph::snippets::op::LoopEnd> loop_end;
|
||||
@@ -189,10 +168,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override {
|
||||
const std::vector<size_t>& out) const override {
|
||||
}
|
||||
};
|
||||
|
||||
@@ -204,10 +180,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -227,10 +200,7 @@ protected:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -268,10 +238,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -289,10 +256,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -310,10 +274,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -327,10 +288,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -348,10 +306,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -369,10 +324,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -422,10 +374,7 @@ protected:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -443,10 +392,7 @@ protected:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -460,10 +406,7 @@ public:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
@@ -480,10 +423,7 @@ protected:
|
||||
|
||||
private:
|
||||
void emit_impl(const std::vector<size_t>& in,
|
||||
const std::vector<size_t>& out,
|
||||
const std::vector<size_t>& pool,
|
||||
const std::vector<size_t>& gpr,
|
||||
const ov::intel_cpu::emitter_context *emit_context) const override;
|
||||
const std::vector<size_t>& out) const override;
|
||||
|
||||
template <dnnl::impl::cpu::x64::cpu_isa_t isa>
|
||||
void emit_isa(const std::vector<size_t> &in, const std::vector<size_t> &out) const;
|
||||
|
||||
Reference in New Issue
Block a user