48 #ifndef __LAYER_FORWARD_CONTAINER_BASE_H__ 49 #define __LAYER_FORWARD_CONTAINER_BASE_H__ 51 #include "algorithms/algorithm.h" 52 #include "data_management/data/tensor.h" 53 #include "services/daal_defines.h" 54 #include "algorithms/neural_networks/layers/layer_forward_types.h" 63 namespace neural_networks
86 class DAAL_EXPORT LayerContainerIfaceImpl :
public AnalysisContainerIface<batch>
89 LayerContainerIfaceImpl(daal::services::Environment::env *daalEnv = 0) : AnalysisContainerIface<batch>(daalEnv) {}
94 virtual services::Status setupCompute()
96 return services::Status();
99 virtual services::Status resetCompute()
101 return services::Status();
107 virtual services::Status allocateInput();
112 virtual services::Status initializeInput();
115 virtual services::Status completeInput();
132 template<ComputeMode mode,
133 typename sse2Container
134 DAAL_KERNEL_SSSE3_ONLY(
typename ssse3Container)
135 DAAL_KERNEL_SSE42_ONLY(
typename sse42Container)
136 DAAL_KERNEL_AVX_ONLY(
typename avxContainer)
137 DAAL_KERNEL_AVX2_ONLY(
typename avx2Container)
138 DAAL_KERNEL_AVX512_mic_ONLY(
typename avx512_micContainer)
139 DAAL_KERNEL_AVX512_ONLY(
typename avx512Container)
141 class DAAL_EXPORT AlgorithmDispatchLayerContainer :
public LayerContainerIfaceImpl
145 AlgorithmDispatchLayerContainer(daal::services::Environment::env *daalEnv);
146 virtual ~AlgorithmDispatchLayerContainer() {
delete _cntr; }
148 virtual services::Status compute() DAAL_C11_OVERRIDE
150 _cntr->setArguments(this->_in, this->_res, this->_par);
151 return _cntr->compute();
154 virtual services::Status setupCompute() DAAL_C11_OVERRIDE
156 _cntr->setArguments(this->_in, this->_res, this->_par);
157 return _cntr->setupCompute();
160 virtual services::Status resetCompute() DAAL_C11_OVERRIDE
162 return _cntr->resetCompute();
165 virtual services::Status allocateInput() DAAL_C11_OVERRIDE
167 _cntr->setArguments(this->_in, this->_res, this->_par);
168 return _cntr->allocateInput();
171 virtual services::Status initializeInput() DAAL_C11_OVERRIDE
173 _cntr->setArguments(this->_in, this->_res, this->_par);
174 return _cntr->initializeInput();
177 LayerContainerIfaceImpl *_cntr;
180 #define __DAAL_ALGORITHM_LAYER_CONTAINER(ContainerTemplate, ...) \ 181 layers::forward::AlgorithmDispatchLayerContainer<batch, \ 182 ContainerTemplate<__VA_ARGS__, sse2> \ 183 DAAL_KERNEL_SSSE3_CONTAINER(ContainerTemplate, __VA_ARGS__) \ 184 DAAL_KERNEL_SSE42_CONTAINER(ContainerTemplate, __VA_ARGS__) \ 185 DAAL_KERNEL_AVX_CONTAINER(ContainerTemplate, __VA_ARGS__) \ 186 DAAL_KERNEL_AVX2_CONTAINER(ContainerTemplate, __VA_ARGS__) \ 187 DAAL_KERNEL_AVX512_mic_CONTAINER(ContainerTemplate, __VA_ARGS__) \ 188 DAAL_KERNEL_AVX512_CONTAINER(ContainerTemplate, __VA_ARGS__)> 194 using interface1::AlgorithmDispatchLayerContainer;
195 using interface1::LayerContainerIfaceImpl;
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::resetCompute
virtual services::Status resetCompute() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:160
daal::services::interface1::Environment::_envStruct
The environment structure.
Definition: env_detect.h:95
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::AnalysisContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the analy...
Definition: analysis.h:79
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::allocateInput
virtual services::Status allocateInput() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:165
daal::algorithms::neural_networks::layers::forward::interface1::LayerContainerIfaceImpl::resetCompute
virtual services::Status resetCompute()
Definition: layer_forward_container_base.h:99
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::setupCompute
virtual services::Status setupCompute() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:154
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer
Implements a container to dispatch forward layers to cpu-specific implementations.
Definition: layer_forward_container_base.h:141
daal::algorithms::neural_networks::layers::forward::interface1::LayerContainerIfaceImpl::setupCompute
virtual services::Status setupCompute()
Definition: layer_forward_container_base.h:94
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::initializeInput
virtual services::Status initializeInput() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:171
daal::algorithms::neural_networks::layers::forward::interface1::LayerContainerIfaceImpl
Provides methods of base container for forward layers. This class is associated with the daal::algori...
Definition: layer_forward_container_base.h:86
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::compute
virtual services::Status compute() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:148
daal::ComputeMode
ComputeMode
Definition: daal_defines.h:130