//==============================================================================
//
// Copyright (c) 2019-2020 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
//
//==============================================================================
# ifndef PSNPE_RUNTIMECONFIGLIST_HPP
# define PSNPE_RUNTIMECONFIGLIST_HPP
# include <iostream>
# include "DlContainer/IDlContainer.hpp"
# include "DlSystem/DlEnums.hpp"
# include "DlSystem/RuntimeList.hpp"
# include "DlSystem/TensorShapeMap.hpp"
# include "DlSystem/ZdlExportDefine.hpp"
namespace zdl {
namespace PSNPE {
/** @addtogroup c_plus_plus_apis C++
@ { */
/**
* @ brief .
*
* The structure for configuring a BulkSNPE runtime
*
*/
struct ZDL_EXPORT RuntimeConfig final {
zdl : : DlSystem : : Runtime_t runtime ;
zdl : : DlSystem : : RuntimeList runtimeList ;
zdl : : DlSystem : : PerformanceProfile_t perfProfile ;
zdl : : DlSystem : : TensorShapeMap inputDimensionsMap ;
bool enableCPUFallback ;
RuntimeConfig ( )
: runtime { zdl : : DlSystem : : Runtime_t : : CPU_FLOAT32 } ,
perfProfile { zdl : : DlSystem : : PerformanceProfile_t : : HIGH_PERFORMANCE } ,
enableCPUFallback { false } { }
RuntimeConfig ( const RuntimeConfig & other ) {
runtime = other . runtime ;
runtimeList = other . runtimeList ;
perfProfile = other . perfProfile ;
enableCPUFallback = other . enableCPUFallback ;
inputDimensionsMap = other . inputDimensionsMap ;
}
RuntimeConfig & operator = ( const RuntimeConfig & other ) {
this - > runtimeList = other . runtimeList ;
this - > runtime = other . runtime ;
this - > perfProfile = other . perfProfile ;
this - > enableCPUFallback = other . enableCPUFallback ;
this - > inputDimensionsMap = other . inputDimensionsMap ;
return * this ;
}
~ RuntimeConfig ( ) { }
} ;
/**
* @ brief .
*
* The class for creating a RuntimeConfig container .
*
*/
class ZDL_EXPORT RuntimeConfigList final {
public :
RuntimeConfigList ( ) ;
RuntimeConfigList ( const size_t size ) ;
void push_back ( const RuntimeConfig & runtimeConfig ) ;
RuntimeConfig & operator [ ] ( const size_t index ) ;
RuntimeConfigList & operator = ( const RuntimeConfigList & other ) ;
size_t size ( ) const noexcept ;
size_t capacity ( ) const noexcept ;
void clear ( ) noexcept ;
~ RuntimeConfigList ( ) = default ;
private :
void swap ( const RuntimeConfigList & other ) ;
std : : vector < RuntimeConfig > m_runtimeConfigs ;
} ;
/** @} */ /* end_addtogroup c_plus_plus_apis C++ */
} // namespace PSNPE
} // namespace zdl
# endif // PSNPE_RUNTIMECONFIGLIST_HPP