MCPcopy Create free account
hub / github.com/ARM-software/ComputeLibrary / run

Method run

src/runtime/NEON/functions/NELSTMLayer.cpp:774–881  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

772}
773
774void NELSTMLayer::run()
775{
776 ARM_COMPUTE_TRACE_EVENT(ARM_COMPUTE_PROF_CAT_CPU, ARM_COMPUTE_PROF_LVL_CPU, "NELSTMLayer::run");
777 prepare();
778
779 MemoryGroupResourceScope scope_mg(_memory_group);
780
781 _concat_inputs_forget_gate.run();
782 _fully_connected_forget_gate.run();
783
784 if (_run_peephole_opt)
785 {
786 _pixelwise_mul_forget_gate.run();
787 _accum_forget_gate1.run();
788 }
789 if (_is_layer_norm_lstm)
790 {
791 _mean_std_norm_forget_gate.run();
792 _pixelwise_mul_forget_gate_coeff.run();
793 _accum_forget_gate_bias.run();
794 }
795 _activation_forget_gate.run();
796
797 if (_run_cifg_opt)
798 {
799 if (_ones.info()->data_type() == DataType::F16)
800 {
801 std::fill_n(reinterpret_cast<half *>(_ones.buffer()),
802 _ones.info()->total_size() / _ones.info()->element_size(), 1);
803 }
804 else
805 {
806 std::fill_n(reinterpret_cast<float *>(_ones.buffer()),
807 _ones.info()->total_size() / _ones.info()->element_size(), 1);
808 }
809 _subtract_input_gate.run();
810 }
811 else
812 {
813 _fully_connected_input_gate.run();
814
815 if (_run_peephole_opt)
816 {
817 _pixelwise_mul_input_gate.run();
818 _accum_input_gate1.run();
819 }
820
821 if (_is_layer_norm_lstm)
822 {
823 _mean_std_norm_input_gate.run();
824 _pixelwise_mul_input_gate_coeff.run();
825 _accum_input_gate_bias.run();
826 }
827 _activation_input_gate.run();
828 }
829
830 _fully_connected_cell_state.run();
831 _transpose_cell_state.run();

Callers 1

prepareMethod · 0.45

Calls 5

data_typeMethod · 0.45
infoMethod · 0.45
bufferMethod · 0.45
total_sizeMethod · 0.45
element_sizeMethod · 0.45

Tested by

no test coverage detected