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
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::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::ComputeMode
ComputeMode
Definition: daal_defines.h:129