#pragma once #pragma clang diagnostic ignored "-Wdeprecated-declarations" #include #include #include #include #include #include #include #include #include #include #include #include #include "selfdrive/modeld/runners/runmodel.h" struct SNPEModelInput : public ModelInput { std::unique_ptr snpe_buffer; SNPEModelInput(const std::string _name, float *_buffer, int _size, std::unique_ptr _snpe_buffer) : ModelInput(_name, _buffer, _size), snpe_buffer(std::move(_snpe_buffer)) {} void setBuffer(float *_buffer, int _size) { ModelInput::setBuffer(_buffer, _size); assert(snpe_buffer->setBufferAddress(_buffer) == true); } }; class SNPEModel : public RunModel { public: SNPEModel(const std::string path, float *_output, size_t _output_size, int runtime, bool use_tf8 = false, cl_context context = NULL); void addInput(const std::string name, float *buffer, int size); void execute(); private: std::string model_data; #ifdef QCOM2 zdl::DlSystem::Runtime_t snpe_runtime; #endif // snpe model stuff std::unique_ptr snpe; zdl::DlSystem::UserBufferMap input_map; zdl::DlSystem::UserBufferMap output_map; std::unique_ptr output_buffer; bool use_tf8; float *output; size_t output_size; };