27 const auto *node = loco::must_cast<const luci::CircleSVDF *>(circle_node);
28 assert(node->arity() == 5);
37 auto scratchpad_tensor = std::make_unique<Tensor>(input_activation_state->
element_type(),
40 scratchpad_tensor->set_data_buffer(
nullptr);
43 DataType data_type = input->element_type() == DataType::S8 ? DataType::S32 : DataType::FLOAT32;
46 scratchpad_tensor->set_observable(
false);
47 scratchpad_tensor->set_data_buffer(
nullptr);
50 if (data_type == DataType::FLOAT32 &&
57 scratchpad_tensor->set_observable(
false);
58 scratchpad_tensor->set_data_buffer(
nullptr);
61 data_type = DataType::FLOAT32;
65 scratchpad_tensor->set_data_buffer(
nullptr);
70 scratchpad_tensor->set_data_buffer(
nullptr);
75 scratchpad_tensor->set_data_buffer(
nullptr);
80 scratchpad_tensor->set_data_buffer(
nullptr);
84 params.
activation = node->fusedActivationFunction();
85 params.svdf_rank = node->svdf_rank();
86 params.asymmetric_quantize_inputs = node->asymmetric_quantize_inputs();
88 return std::make_unique<kernels::SVDF>(input, feature, time, bias, input_activation_state, output,
89 tmp, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, tmp_6, params);