24 #ifndef __LAYER_FORWARD_CONTAINER_BASE_H__
25 #define __LAYER_FORWARD_CONTAINER_BASE_H__
27 #include "algorithms/algorithm.h"
28 #include "data_management/data/tensor.h"
29 #include "services/daal_defines.h"
30 #include "algorithms/neural_networks/layers/layer_forward_types.h"
39 namespace neural_networks
63 class DAAL_EXPORT LayerContainerIfaceImpl :
public AnalysisContainerIface<batch>
69 DAAL_DEPRECATED LayerContainerIfaceImpl(daal::services::Environment::env *daalEnv = 0) : AnalysisContainerIface<batch>(daalEnv) {}
75 DAAL_DEPRECATED_VIRTUAL
virtual services::Status setupCompute()
77 return services::Status();
83 DAAL_DEPRECATED_VIRTUAL
virtual services::Status resetCompute()
85 return services::Status();
92 DAAL_DEPRECATED_VIRTUAL
virtual services::Status allocateInput();
98 DAAL_DEPRECATED_VIRTUAL
virtual services::Status initializeInput();
104 DAAL_DEPRECATED_VIRTUAL
virtual services::Status completeInput();
122 template<ComputeMode mode,
123 typename sse2Container
124 DAAL_KERNEL_SSSE3_ONLY(
typename ssse3Container)
125 DAAL_KERNEL_SSE42_ONLY(typename sse42Container)
126 DAAL_KERNEL_AVX_ONLY(typename avxContainer)
127 DAAL_KERNEL_AVX2_ONLY(typename avx2Container)
128 DAAL_KERNEL_AVX512_MIC_ONLY(typename avx512_micContainer)
129 DAAL_KERNEL_AVX512_ONLY(typename avx512Container)
131 class DAAL_EXPORT AlgorithmDispatchLayerContainer : public LayerContainerIfaceImpl
138 AlgorithmDispatchLayerContainer(daal::services::Environment::env *daalEnv);
143 virtual ~AlgorithmDispatchLayerContainer() {
delete _cntr; }
148 DAAL_DEPRECATED_VIRTUAL
virtual services::Status compute() DAAL_C11_OVERRIDE
150 _cntr->setArguments(this->_in, this->_res, this->_par);
151 return _cntr->compute();
157 DAAL_DEPRECATED_VIRTUAL
virtual services::Status setupCompute() DAAL_C11_OVERRIDE
159 _cntr->setArguments(this->_in, this->_res, this->_par);
160 return _cntr->setupCompute();
166 DAAL_DEPRECATED_VIRTUAL
virtual services::Status resetCompute() DAAL_C11_OVERRIDE
168 return _cntr->resetCompute();
174 DAAL_DEPRECATED_VIRTUAL
virtual services::Status allocateInput() DAAL_C11_OVERRIDE
176 _cntr->setArguments(this->_in, this->_res, this->_par);
177 return _cntr->allocateInput();
183 DAAL_DEPRECATED_VIRTUAL
virtual services::Status initializeInput() DAAL_C11_OVERRIDE
185 _cntr->setArguments(this->_in, this->_res, this->_par);
186 return _cntr->initializeInput();
189 LayerContainerIfaceImpl *_cntr;
192 #define __DAAL_ALGORITHM_LAYER_CONTAINER(ContainerTemplate, ...) \
193 layers::forward::AlgorithmDispatchLayerContainer<batch, \
194 ContainerTemplate<__VA_ARGS__, sse2> \
195 DAAL_KERNEL_SSSE3_CONTAINER(ContainerTemplate, __VA_ARGS__) \
196 DAAL_KERNEL_SSE42_CONTAINER(ContainerTemplate, __VA_ARGS__) \
197 DAAL_KERNEL_AVX_CONTAINER(ContainerTemplate, __VA_ARGS__) \
198 DAAL_KERNEL_AVX2_CONTAINER(ContainerTemplate, __VA_ARGS__) \
199 DAAL_KERNEL_AVX512_MIC_CONTAINER(ContainerTemplate, __VA_ARGS__) \
200 DAAL_KERNEL_AVX512_CONTAINER(ContainerTemplate, __VA_ARGS__)>
206 using interface1::AlgorithmDispatchLayerContainer;
207 using interface1::LayerContainerIfaceImpl;
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:131
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:63
daal::algorithms::AnalysisContainerIface
Abstract interface class that provides virtual methods to access and run implementations of the analy...
Definition: analysis.h:55
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::setupCompute
virtual DAAL_DEPRECATED_VIRTUAL services::Status setupCompute() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:157
daal::ComputeMode
ComputeMode
Definition: daal_defines.h:110
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::allocateInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status allocateInput() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:174
daal::algorithms::neural_networks::layers::forward::interface1::LayerContainerIfaceImpl::setupCompute
virtual DAAL_DEPRECATED_VIRTUAL services::Status setupCompute()
Definition: layer_forward_container_base.h:75
daal::algorithms::neural_networks::layers::forward::interface1::AlgorithmDispatchLayerContainer::initializeInput
virtual DAAL_DEPRECATED_VIRTUAL services::Status initializeInput() DAAL_C11_OVERRIDE
Definition: layer_forward_container_base.h:183