blob: f775c0f3d4a680e9241756e364d8aed3fa5b5610 [file] [log] [blame]
// Do not directl include this file. Include caffe2/mkl/mkl_utils.h instead.
#ifndef CAFFE2_UTILS_MKL_MKL_DNN_CPPWRAPPER_H
#define CAFFE2_UTILS_MKL_MKL_DNN_CPPWRAPPER_H
#include <stdarg.h>
#include <stddef.h>
#include <mkl.h>
#define C2_MKL_TEMPLATE_PREFIX \
template <typename T> \
inline
#define C2_MKL_SPEC_PREFIX \
template <> \
inline
namespace caffe2 {
namespace mkl {
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLayoutCreate(
dnnLayout_t* pLayout,
size_t dimension,
const size_t size[],
const size_t strides[]);
C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreate<float>(
dnnLayout_t* pLayout,
size_t dimension,
const size_t size[],
const size_t strides[]) {
return dnnLayoutCreate_F32(pLayout, dimension, size, strides);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreate<double>(
dnnLayout_t* pLayout,
size_t dimension,
const size_t size[],
const size_t strides[]) {
return dnnLayoutCreate_F64(pLayout, dimension, size, strides);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLayoutCreateFromPrimitive(
dnnLayout_t* pLayout,
const dnnPrimitive_t primitive,
dnnResourceType_t type);
C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreateFromPrimitive<float>(
dnnLayout_t* pLayout,
const dnnPrimitive_t primitive,
dnnResourceType_t type) {
return dnnLayoutCreateFromPrimitive_F32(pLayout, primitive, type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreateFromPrimitive<double>(
dnnLayout_t* pLayout,
const dnnPrimitive_t primitive,
dnnResourceType_t type) {
return dnnLayoutCreateFromPrimitive_F64(pLayout, primitive, type);
}
C2_MKL_TEMPLATE_PREFIX size_t dnnLayoutGetMemorySize(const dnnLayout_t layout);
C2_MKL_SPEC_PREFIX size_t
dnnLayoutGetMemorySize<float>(const dnnLayout_t layout) {
return dnnLayoutGetMemorySize_F32(layout);
}
C2_MKL_SPEC_PREFIX size_t
dnnLayoutGetMemorySize<double>(const dnnLayout_t layout) {
return dnnLayoutGetMemorySize_F64(layout);
}
C2_MKL_TEMPLATE_PREFIX int dnnLayoutCompare(
const dnnLayout_t l1,
const dnnLayout_t l2);
C2_MKL_SPEC_PREFIX int dnnLayoutCompare<float>(
const dnnLayout_t l1,
const dnnLayout_t l2) {
return dnnLayoutCompare_F32(l1, l2);
}
C2_MKL_SPEC_PREFIX int dnnLayoutCompare<double>(
const dnnLayout_t l1,
const dnnLayout_t l2) {
return dnnLayoutCompare_F64(l1, l2);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t
dnnAllocateBuffer(void** pPtr, dnnLayout_t layout);
C2_MKL_SPEC_PREFIX dnnError_t
dnnAllocateBuffer<float>(void** pPtr, dnnLayout_t layout) {
return dnnAllocateBuffer_F32(pPtr, layout);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnAllocateBuffer<double>(void** pPtr, dnnLayout_t layout) {
return dnnAllocateBuffer_F64(pPtr, layout);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnReleaseBuffer(void* ptr);
C2_MKL_SPEC_PREFIX dnnError_t dnnReleaseBuffer<float>(void* ptr) {
return dnnReleaseBuffer_F32(ptr);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnReleaseBuffer<double>(void* ptr) {
return dnnReleaseBuffer_F64(ptr);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLayoutDelete(dnnLayout_t layout);
C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutDelete<float>(dnnLayout_t layout) {
return dnnLayoutDelete_F32(layout);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutDelete<double>(dnnLayout_t layout) {
return dnnLayoutDelete_F64(layout);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t
dnnPrimitiveAttributesCreate(dnnPrimitiveAttributes_t* attributes);
C2_MKL_SPEC_PREFIX dnnError_t
dnnPrimitiveAttributesCreate<float>(dnnPrimitiveAttributes_t* attributes) {
return dnnPrimitiveAttributesCreate_F32(attributes);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnPrimitiveAttributesCreate<double>(dnnPrimitiveAttributes_t* attributes) {
return dnnPrimitiveAttributesCreate_F64(attributes);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t
dnnPrimitiveAttributesDestroy(dnnPrimitiveAttributes_t attributes);
C2_MKL_SPEC_PREFIX dnnError_t
dnnPrimitiveAttributesDestroy<float>(dnnPrimitiveAttributes_t attributes) {
return dnnPrimitiveAttributesDestroy_F32(attributes);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnPrimitiveAttributesDestroy<double>(dnnPrimitiveAttributes_t attributes) {
return dnnPrimitiveAttributesDestroy_F64(attributes);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnPrimitiveGetAttributes(
dnnPrimitive_t primitive,
dnnPrimitiveAttributes_t* attributes);
C2_MKL_SPEC_PREFIX dnnError_t dnnPrimitiveGetAttributes<float>(
dnnPrimitive_t primitive,
dnnPrimitiveAttributes_t* attributes) {
return dnnPrimitiveGetAttributes_F32(primitive, attributes);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnPrimitiveGetAttributes<double>(
dnnPrimitive_t primitive,
dnnPrimitiveAttributes_t* attributes) {
return dnnPrimitiveGetAttributes_F64(primitive, attributes);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t
dnnExecute(dnnPrimitive_t primitive, void* resources[]);
C2_MKL_SPEC_PREFIX dnnError_t
dnnExecute<float>(dnnPrimitive_t primitive, void* resources[]) {
return dnnExecute_F32(primitive, resources);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnExecute<double>(dnnPrimitive_t primitive, void* resources[]) {
return dnnExecute_F64(primitive, resources);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t
dnnExecuteAsync(dnnPrimitive_t primitive, void* resources[]);
C2_MKL_SPEC_PREFIX dnnError_t
dnnExecuteAsync<float>(dnnPrimitive_t primitive, void* resources[]) {
return dnnExecuteAsync_F32(primitive, resources);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnExecuteAsync<double>(dnnPrimitive_t primitive, void* resources[]) {
return dnnExecuteAsync_F64(primitive, resources);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnWaitFor(dnnPrimitive_t primitive);
C2_MKL_SPEC_PREFIX dnnError_t dnnWaitFor<float>(dnnPrimitive_t primitive) {
return dnnWaitFor_F32(primitive);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnWaitFor<double>(dnnPrimitive_t primitive) {
return dnnWaitFor_F64(primitive);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnDelete(dnnPrimitive_t primitive);
C2_MKL_SPEC_PREFIX dnnError_t dnnDelete<float>(dnnPrimitive_t primitive) {
return dnnDelete_F32(primitive);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnDelete<double>(dnnPrimitive_t primitive) {
return dnnDelete_F64(primitive);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConversionCreate(
dnnPrimitive_t* pConversion,
const dnnLayout_t from,
const dnnLayout_t to);
C2_MKL_SPEC_PREFIX dnnError_t dnnConversionCreate<float>(
dnnPrimitive_t* pConversion,
const dnnLayout_t from,
const dnnLayout_t to) {
return dnnConversionCreate_F32(pConversion, from, to);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConversionCreate<double>(
dnnPrimitive_t* pConversion,
const dnnLayout_t from,
const dnnLayout_t to) {
return dnnConversionCreate_F64(pConversion, from, to);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t
dnnConversionExecute(dnnPrimitive_t conversion, void* from, void* to);
C2_MKL_SPEC_PREFIX dnnError_t
dnnConversionExecute<float>(dnnPrimitive_t conversion, void* from, void* to) {
return dnnConversionExecute_F32(conversion, from, to);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnConversionExecute<double>(dnnPrimitive_t conversion, void* from, void* to) {
return dnnConversionExecute_F64(conversion, from, to);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateForward(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForward<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateForward_F32(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForward<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateForward_F64(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateForwardBias(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForwardBias<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateForwardBias_F32(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForwardBias<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateForwardBias_F64(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateBackwardData(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardData<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateBackwardData_F32(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardData<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateBackwardData_F64(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateBackwardFilter(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardFilter<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateBackwardFilter_F32(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardFilter<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnConvolutionCreateBackwardFilter_F64(
pConvolution,
attributes,
algorithm,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateBackwardBias(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t dstSize[]);
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardBias<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t dstSize[]) {
return dnnConvolutionCreateBackwardBias_F32(
pConvolution, attributes, algorithm, dimension, dstSize);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardBias<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t dimension,
const size_t dstSize[]) {
return dnnConvolutionCreateBackwardBias_F64(
pConvolution, attributes, algorithm, dimension, dstSize);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateForward(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForward<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateForward_F32(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForward<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateForward_F64(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateForwardBias(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForwardBias<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateForwardBias_F32(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForwardBias<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateForwardBias_F64(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardData(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardData<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateBackwardData_F32(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardData<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateBackwardData_F64(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardFilter(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardFilter<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateBackwardFilter_F32(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardFilter<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t srcSize[],
const size_t dstSize[],
const size_t filterSize[],
const size_t convolutionStrides[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnGroupsConvolutionCreateBackwardFilter_F64(
pConvolution,
attributes,
algorithm,
groups,
dimension,
srcSize,
dstSize,
filterSize,
convolutionStrides,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardBias(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t dstSize[]);
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardBias<float>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t dstSize[]) {
return dnnGroupsConvolutionCreateBackwardBias_F32(
pConvolution, attributes, algorithm, groups, dimension, dstSize);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardBias<double>(
dnnPrimitive_t* pConvolution,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t algorithm,
size_t groups,
size_t dimension,
const size_t dstSize[]) {
return dnnGroupsConvolutionCreateBackwardBias_F64(
pConvolution, attributes, algorithm, groups, dimension, dstSize);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnReLUCreateForward(
dnnPrimitive_t* pRelu,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float negativeSlope);
C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateForward<float>(
dnnPrimitive_t* pRelu,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float negativeSlope) {
return dnnReLUCreateForward_F32(pRelu, attributes, dataLayout, negativeSlope);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateForward<double>(
dnnPrimitive_t* pRelu,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float negativeSlope) {
return dnnReLUCreateForward_F64(pRelu, attributes, dataLayout, negativeSlope);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnReLUCreateBackward(
dnnPrimitive_t* pRelu,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t diffLayout,
const dnnLayout_t dataLayout,
float negativeSlope);
C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateBackward<float>(
dnnPrimitive_t* pRelu,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t diffLayout,
const dnnLayout_t dataLayout,
float negativeSlope) {
return dnnReLUCreateBackward_F32(
pRelu, attributes, diffLayout, dataLayout, negativeSlope);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateBackward<double>(
dnnPrimitive_t* pRelu,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t diffLayout,
const dnnLayout_t dataLayout,
float negativeSlope) {
return dnnReLUCreateBackward_F64(
pRelu, attributes, diffLayout, dataLayout, negativeSlope);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLRNCreateForward(
dnnPrimitive_t* pLrn,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
size_t kernel_size,
float alpha,
float beta,
float k);
C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateForward<float>(
dnnPrimitive_t* pLrn,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
size_t kernel_size,
float alpha,
float beta,
float k) {
return dnnLRNCreateForward_F32(
pLrn, attributes, dataLayout, kernel_size, alpha, beta, k);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateForward<double>(
dnnPrimitive_t* pLrn,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
size_t kernel_size,
float alpha,
float beta,
float k) {
return dnnLRNCreateForward_F64(
pLrn, attributes, dataLayout, kernel_size, alpha, beta, k);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLRNCreateBackward(
dnnPrimitive_t* pLrn,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t diffLayout,
const dnnLayout_t dataLayout,
size_t kernel_size,
float alpha,
float beta,
float k);
C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateBackward<float>(
dnnPrimitive_t* pLrn,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t diffLayout,
const dnnLayout_t dataLayout,
size_t kernel_size,
float alpha,
float beta,
float k) {
return dnnLRNCreateBackward_F32(
pLrn, attributes, diffLayout, dataLayout, kernel_size, alpha, beta, k);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateBackward<double>(
dnnPrimitive_t* pLrn,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t diffLayout,
const dnnLayout_t dataLayout,
size_t kernel_size,
float alpha,
float beta,
float k) {
return dnnLRNCreateBackward_F64(
pLrn, attributes, diffLayout, dataLayout, kernel_size, alpha, beta, k);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnPoolingCreateForward(
dnnPrimitive_t* pPooling,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t op,
const dnnLayout_t srcLayout,
const size_t kernelSize[],
const size_t kernelStride[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateForward<float>(
dnnPrimitive_t* pPooling,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t op,
const dnnLayout_t srcLayout,
const size_t kernelSize[],
const size_t kernelStride[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnPoolingCreateForward_F32(
pPooling,
attributes,
op,
srcLayout,
kernelSize,
kernelStride,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateForward<double>(
dnnPrimitive_t* pPooling,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t op,
const dnnLayout_t srcLayout,
const size_t kernelSize[],
const size_t kernelStride[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnPoolingCreateForward_F64(
pPooling,
attributes,
op,
srcLayout,
kernelSize,
kernelStride,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnPoolingCreateBackward(
dnnPrimitive_t* pPooling,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t op,
const dnnLayout_t srcLayout,
const size_t kernelSize[],
const size_t kernelStride[],
const int inputOffset[],
const dnnBorder_t border_type);
C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateBackward<float>(
dnnPrimitive_t* pPooling,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t op,
const dnnLayout_t srcLayout,
const size_t kernelSize[],
const size_t kernelStride[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnPoolingCreateBackward_F32(
pPooling,
attributes,
op,
srcLayout,
kernelSize,
kernelStride,
inputOffset,
border_type);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateBackward<double>(
dnnPrimitive_t* pPooling,
dnnPrimitiveAttributes_t attributes,
dnnAlgorithm_t op,
const dnnLayout_t srcLayout,
const size_t kernelSize[],
const size_t kernelStride[],
const int inputOffset[],
const dnnBorder_t border_type) {
return dnnPoolingCreateBackward_F64(
pPooling,
attributes,
op,
srcLayout,
kernelSize,
kernelStride,
inputOffset,
border_type);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConcatCreate(
dnnPrimitive_t* pConcat,
dnnPrimitiveAttributes_t attributes,
const size_t N,
dnnLayout_t src[]);
C2_MKL_SPEC_PREFIX dnnError_t dnnConcatCreate<float>(
dnnPrimitive_t* pConcat,
dnnPrimitiveAttributes_t attributes,
const size_t N,
dnnLayout_t src[]) {
return dnnConcatCreate_F32(pConcat, attributes, N, src);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnConcatCreate<double>(
dnnPrimitive_t* pConcat,
dnnPrimitiveAttributes_t attributes,
const size_t N,
dnnLayout_t src[]) {
return dnnConcatCreate_F64(pConcat, attributes, N, src);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnSplitCreate(
dnnPrimitive_t* pSplit,
dnnPrimitiveAttributes_t attributes,
const size_t N,
dnnLayout_t src,
size_t dst[]);
C2_MKL_SPEC_PREFIX dnnError_t dnnSplitCreate<float>(
dnnPrimitive_t* pSplit,
dnnPrimitiveAttributes_t attributes,
const size_t N,
dnnLayout_t src,
size_t dst[]) {
return dnnSplitCreate_F32(pSplit, attributes, N, src, dst);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnSplitCreate<double>(
dnnPrimitive_t* pSplit,
dnnPrimitiveAttributes_t attributes,
const size_t N,
dnnLayout_t src,
size_t dst[]) {
return dnnSplitCreate_F64(pSplit, attributes, N, src, dst);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnSumCreate(
dnnPrimitive_t* pSum,
dnnPrimitiveAttributes_t attributes,
const size_t nSummands,
dnnLayout_t layout,
T* coefficients);
C2_MKL_SPEC_PREFIX dnnError_t dnnSumCreate<float>(
dnnPrimitive_t* pSum,
dnnPrimitiveAttributes_t attributes,
const size_t nSummands,
dnnLayout_t layout,
float* coefficients) {
return dnnSumCreate_F32(pSum, attributes, nSummands, layout, coefficients);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnSumCreate<double>(
dnnPrimitive_t* pSum,
dnnPrimitiveAttributes_t attributes,
const size_t nSummands,
dnnLayout_t layout,
double* coefficients) {
return dnnSumCreate_F64(pSum, attributes, nSummands, layout, coefficients);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateForward(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps);
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward<float>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps) {
return dnnBatchNormalizationCreateForward_F32(
pBatchNormalization, attributes, dataLayout, eps);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward<double>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps) {
return dnnBatchNormalizationCreateForward_F64(
pBatchNormalization, attributes, dataLayout, eps);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardData(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps);
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardData<float>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps) {
return dnnBatchNormalizationCreateBackwardData_F32(
pBatchNormalization, attributes, dataLayout, eps);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardData<double>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps) {
return dnnBatchNormalizationCreateBackwardData_F64(
pBatchNormalization, attributes, dataLayout, eps);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardScaleShift(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps);
C2_MKL_SPEC_PREFIX dnnError_t
dnnBatchNormalizationCreateBackwardScaleShift<float>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps) {
return dnnBatchNormalizationCreateBackwardScaleShift_F32(
pBatchNormalization, attributes, dataLayout, eps);
}
C2_MKL_SPEC_PREFIX dnnError_t
dnnBatchNormalizationCreateBackwardScaleShift<double>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps) {
return dnnBatchNormalizationCreateBackwardScaleShift_F64(
pBatchNormalization, attributes, dataLayout, eps);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateForward_v2(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps,
unsigned int flags);
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward_v2<float>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps,
unsigned int flags) {
return dnnBatchNormalizationCreateForward_v2_F32(
pBatchNormalization, attributes, dataLayout, eps, flags);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward_v2<double>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps,
unsigned int flags) {
return dnnBatchNormalizationCreateForward_v2_F64(
pBatchNormalization, attributes, dataLayout, eps, flags);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateBackward_v2(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps,
unsigned int flags);
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackward_v2<float>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps,
unsigned int flags) {
return dnnBatchNormalizationCreateBackward_v2_F32(
pBatchNormalization, attributes, dataLayout, eps, flags);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackward_v2<double>(
dnnPrimitive_t* pBatchNormalization,
dnnPrimitiveAttributes_t attributes,
const dnnLayout_t dataLayout,
float eps,
unsigned int flags) {
return dnnBatchNormalizationCreateBackward_v2_F64(
pBatchNormalization, attributes, dataLayout, eps, flags);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateForward(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels);
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForward<float>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateForward_F32(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForward<double>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateForward_F64(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateForwardBias(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels);
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForwardBias<float>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateForwardBias_F32(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForwardBias<double>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateForwardBias_F64(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateBackwardData(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels);
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardData<float>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateBackwardData_F32(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardData<double>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateBackwardData_F64(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateBackwardFilter(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels);
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardFilter<float>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateBackwardFilter_F32(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardFilter<double>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[],
size_t outputChannels) {
return dnnInnerProductCreateBackwardFilter_F64(
pInnerProduct, attributes, dimensions, srcSize, outputChannels);
}
C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateBackwardBias(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[]);
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardBias<float>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[]) {
return dnnInnerProductCreateBackwardBias_F32(
pInnerProduct, attributes, dimensions, srcSize);
}
C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardBias<double>(
dnnPrimitive_t* pInnerProduct,
dnnPrimitiveAttributes_t attributes,
size_t dimensions,
const size_t srcSize[]) {
return dnnInnerProductCreateBackwardBias_F64(
pInnerProduct, attributes, dimensions, srcSize);
}
} // namespace mkl
} // namespace caffe2
// Undef macros to make sure that things are clean.
#undef C2_MKL_TEMPLATE_PREFIX
#undef C2_MKL_SPEC_PREFIX
#endif // CAFFE2_UTILS_MKL_MKL_DNN_CPPWRAPPER_H