2 #ifndef CAFFE2_UTILS_MKL_MKL_DNN_CPPWRAPPER_H 3 #define CAFFE2_UTILS_MKL_MKL_DNN_CPPWRAPPER_H 10 #define C2_MKL_TEMPLATE_PREFIX \ 11 template <typename T> \ 13 #define C2_MKL_SPEC_PREFIX \ 20 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLayoutCreate(
24 const size_t strides[]);
25 C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreate<float>(
29 const size_t strides[]) {
30 return dnnLayoutCreate_F32(pLayout, dimension, size, strides);
32 C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreate<double>(
36 const size_t strides[]) {
37 return dnnLayoutCreate_F64(pLayout, dimension, size, strides);
40 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLayoutCreateFromPrimitive(
42 const dnnPrimitive_t primitive,
43 dnnResourceType_t type);
44 C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreateFromPrimitive<float>(
46 const dnnPrimitive_t primitive,
47 dnnResourceType_t type) {
48 return dnnLayoutCreateFromPrimitive_F32(pLayout, primitive, type);
50 C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutCreateFromPrimitive<double>(
52 const dnnPrimitive_t primitive,
53 dnnResourceType_t type) {
54 return dnnLayoutCreateFromPrimitive_F64(pLayout, primitive, type);
57 C2_MKL_TEMPLATE_PREFIX
size_t dnnLayoutGetMemorySize(
const dnnLayout_t layout);
58 C2_MKL_SPEC_PREFIX
size_t 59 dnnLayoutGetMemorySize<float>(
const dnnLayout_t layout) {
60 return dnnLayoutGetMemorySize_F32(layout);
62 C2_MKL_SPEC_PREFIX
size_t 63 dnnLayoutGetMemorySize<double>(
const dnnLayout_t layout) {
64 return dnnLayoutGetMemorySize_F64(layout);
67 C2_MKL_TEMPLATE_PREFIX
int dnnLayoutCompare(
69 const dnnLayout_t l2);
70 C2_MKL_SPEC_PREFIX
int dnnLayoutCompare<float>(
72 const dnnLayout_t l2) {
73 return dnnLayoutCompare_F32(l1, l2);
75 C2_MKL_SPEC_PREFIX
int dnnLayoutCompare<double>(
77 const dnnLayout_t l2) {
78 return dnnLayoutCompare_F64(l1, l2);
81 C2_MKL_TEMPLATE_PREFIX dnnError_t
82 dnnAllocateBuffer(
void** pPtr, dnnLayout_t layout);
83 C2_MKL_SPEC_PREFIX dnnError_t
84 dnnAllocateBuffer<float>(
void** pPtr, dnnLayout_t layout) {
85 return dnnAllocateBuffer_F32(pPtr, layout);
87 C2_MKL_SPEC_PREFIX dnnError_t
88 dnnAllocateBuffer<double>(
void** pPtr, dnnLayout_t layout) {
89 return dnnAllocateBuffer_F64(pPtr, layout);
92 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnReleaseBuffer(
void* ptr);
93 C2_MKL_SPEC_PREFIX dnnError_t dnnReleaseBuffer<float>(
void* ptr) {
94 return dnnReleaseBuffer_F32(ptr);
96 C2_MKL_SPEC_PREFIX dnnError_t dnnReleaseBuffer<double>(
void* ptr) {
97 return dnnReleaseBuffer_F64(ptr);
100 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLayoutDelete(dnnLayout_t layout);
101 C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutDelete<float>(dnnLayout_t layout) {
102 return dnnLayoutDelete_F32(layout);
104 C2_MKL_SPEC_PREFIX dnnError_t dnnLayoutDelete<double>(dnnLayout_t layout) {
105 return dnnLayoutDelete_F64(layout);
108 C2_MKL_TEMPLATE_PREFIX dnnError_t
109 dnnPrimitiveAttributesCreate(dnnPrimitiveAttributes_t* attributes);
110 C2_MKL_SPEC_PREFIX dnnError_t
111 dnnPrimitiveAttributesCreate<float>(dnnPrimitiveAttributes_t* attributes) {
112 return dnnPrimitiveAttributesCreate_F32(attributes);
114 C2_MKL_SPEC_PREFIX dnnError_t
115 dnnPrimitiveAttributesCreate<double>(dnnPrimitiveAttributes_t* attributes) {
116 return dnnPrimitiveAttributesCreate_F64(attributes);
119 C2_MKL_TEMPLATE_PREFIX dnnError_t
120 dnnPrimitiveAttributesDestroy(dnnPrimitiveAttributes_t attributes);
121 C2_MKL_SPEC_PREFIX dnnError_t
122 dnnPrimitiveAttributesDestroy<float>(dnnPrimitiveAttributes_t attributes) {
123 return dnnPrimitiveAttributesDestroy_F32(attributes);
125 C2_MKL_SPEC_PREFIX dnnError_t
126 dnnPrimitiveAttributesDestroy<double>(dnnPrimitiveAttributes_t attributes) {
127 return dnnPrimitiveAttributesDestroy_F64(attributes);
130 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnPrimitiveGetAttributes(
131 dnnPrimitive_t primitive,
132 dnnPrimitiveAttributes_t* attributes);
133 C2_MKL_SPEC_PREFIX dnnError_t dnnPrimitiveGetAttributes<float>(
134 dnnPrimitive_t primitive,
135 dnnPrimitiveAttributes_t* attributes) {
136 return dnnPrimitiveGetAttributes_F32(primitive, attributes);
138 C2_MKL_SPEC_PREFIX dnnError_t dnnPrimitiveGetAttributes<double>(
139 dnnPrimitive_t primitive,
140 dnnPrimitiveAttributes_t* attributes) {
141 return dnnPrimitiveGetAttributes_F64(primitive, attributes);
144 C2_MKL_TEMPLATE_PREFIX dnnError_t
145 dnnExecute(dnnPrimitive_t primitive,
void* resources[]);
146 C2_MKL_SPEC_PREFIX dnnError_t
147 dnnExecute<float>(dnnPrimitive_t primitive,
void* resources[]) {
148 return dnnExecute_F32(primitive, resources);
150 C2_MKL_SPEC_PREFIX dnnError_t
151 dnnExecute<double>(dnnPrimitive_t primitive,
void* resources[]) {
152 return dnnExecute_F64(primitive, resources);
155 C2_MKL_TEMPLATE_PREFIX dnnError_t
156 dnnExecuteAsync(dnnPrimitive_t primitive,
void* resources[]);
157 C2_MKL_SPEC_PREFIX dnnError_t
158 dnnExecuteAsync<float>(dnnPrimitive_t primitive,
void* resources[]) {
159 return dnnExecuteAsync_F32(primitive, resources);
161 C2_MKL_SPEC_PREFIX dnnError_t
162 dnnExecuteAsync<double>(dnnPrimitive_t primitive,
void* resources[]) {
163 return dnnExecuteAsync_F64(primitive, resources);
166 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnWaitFor(dnnPrimitive_t primitive);
167 C2_MKL_SPEC_PREFIX dnnError_t dnnWaitFor<float>(dnnPrimitive_t primitive) {
168 return dnnWaitFor_F32(primitive);
170 C2_MKL_SPEC_PREFIX dnnError_t dnnWaitFor<double>(dnnPrimitive_t primitive) {
171 return dnnWaitFor_F64(primitive);
174 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnDelete(dnnPrimitive_t primitive);
175 C2_MKL_SPEC_PREFIX dnnError_t dnnDelete<float>(dnnPrimitive_t primitive) {
176 return dnnDelete_F32(primitive);
178 C2_MKL_SPEC_PREFIX dnnError_t dnnDelete<double>(dnnPrimitive_t primitive) {
179 return dnnDelete_F64(primitive);
182 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConversionCreate(
183 dnnPrimitive_t* pConversion,
184 const dnnLayout_t from,
185 const dnnLayout_t to);
186 C2_MKL_SPEC_PREFIX dnnError_t dnnConversionCreate<float>(
187 dnnPrimitive_t* pConversion,
188 const dnnLayout_t from,
189 const dnnLayout_t to) {
190 return dnnConversionCreate_F32(pConversion, from, to);
192 C2_MKL_SPEC_PREFIX dnnError_t dnnConversionCreate<double>(
193 dnnPrimitive_t* pConversion,
194 const dnnLayout_t from,
195 const dnnLayout_t to) {
196 return dnnConversionCreate_F64(pConversion, from, to);
199 C2_MKL_TEMPLATE_PREFIX dnnError_t
200 dnnConversionExecute(dnnPrimitive_t conversion,
void* from,
void* to);
201 C2_MKL_SPEC_PREFIX dnnError_t
202 dnnConversionExecute<float>(dnnPrimitive_t conversion,
void* from,
void* to) {
203 return dnnConversionExecute_F32(conversion, from, to);
205 C2_MKL_SPEC_PREFIX dnnError_t
206 dnnConversionExecute<double>(dnnPrimitive_t conversion,
void* from,
void* to) {
207 return dnnConversionExecute_F64(conversion, from, to);
210 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateForward(
211 dnnPrimitive_t* pConvolution,
212 dnnPrimitiveAttributes_t attributes,
213 dnnAlgorithm_t algorithm,
215 const size_t srcSize[],
216 const size_t dstSize[],
217 const size_t filterSize[],
218 const size_t convolutionStrides[],
219 const int inputOffset[],
220 const dnnBorder_t border_type);
221 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForward<float>(
222 dnnPrimitive_t* pConvolution,
223 dnnPrimitiveAttributes_t attributes,
224 dnnAlgorithm_t algorithm,
226 const size_t srcSize[],
227 const size_t dstSize[],
228 const size_t filterSize[],
229 const size_t convolutionStrides[],
230 const int inputOffset[],
231 const dnnBorder_t border_type) {
232 return dnnConvolutionCreateForward_F32(
245 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForward<double>(
246 dnnPrimitive_t* pConvolution,
247 dnnPrimitiveAttributes_t attributes,
248 dnnAlgorithm_t algorithm,
250 const size_t srcSize[],
251 const size_t dstSize[],
252 const size_t filterSize[],
253 const size_t convolutionStrides[],
254 const int inputOffset[],
255 const dnnBorder_t border_type) {
256 return dnnConvolutionCreateForward_F64(
269 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateForwardBias(
270 dnnPrimitive_t* pConvolution,
271 dnnPrimitiveAttributes_t attributes,
272 dnnAlgorithm_t algorithm,
274 const size_t srcSize[],
275 const size_t dstSize[],
276 const size_t filterSize[],
277 const size_t convolutionStrides[],
278 const int inputOffset[],
279 const dnnBorder_t border_type);
280 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForwardBias<float>(
281 dnnPrimitive_t* pConvolution,
282 dnnPrimitiveAttributes_t attributes,
283 dnnAlgorithm_t algorithm,
285 const size_t srcSize[],
286 const size_t dstSize[],
287 const size_t filterSize[],
288 const size_t convolutionStrides[],
289 const int inputOffset[],
290 const dnnBorder_t border_type) {
291 return dnnConvolutionCreateForwardBias_F32(
303 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateForwardBias<double>(
304 dnnPrimitive_t* pConvolution,
305 dnnPrimitiveAttributes_t attributes,
306 dnnAlgorithm_t algorithm,
308 const size_t srcSize[],
309 const size_t dstSize[],
310 const size_t filterSize[],
311 const size_t convolutionStrides[],
312 const int inputOffset[],
313 const dnnBorder_t border_type) {
314 return dnnConvolutionCreateForwardBias_F64(
327 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateBackwardData(
328 dnnPrimitive_t* pConvolution,
329 dnnPrimitiveAttributes_t attributes,
330 dnnAlgorithm_t algorithm,
332 const size_t srcSize[],
333 const size_t dstSize[],
334 const size_t filterSize[],
335 const size_t convolutionStrides[],
336 const int inputOffset[],
337 const dnnBorder_t border_type);
338 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardData<float>(
339 dnnPrimitive_t* pConvolution,
340 dnnPrimitiveAttributes_t attributes,
341 dnnAlgorithm_t algorithm,
343 const size_t srcSize[],
344 const size_t dstSize[],
345 const size_t filterSize[],
346 const size_t convolutionStrides[],
347 const int inputOffset[],
348 const dnnBorder_t border_type) {
349 return dnnConvolutionCreateBackwardData_F32(
361 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardData<double>(
362 dnnPrimitive_t* pConvolution,
363 dnnPrimitiveAttributes_t attributes,
364 dnnAlgorithm_t algorithm,
366 const size_t srcSize[],
367 const size_t dstSize[],
368 const size_t filterSize[],
369 const size_t convolutionStrides[],
370 const int inputOffset[],
371 const dnnBorder_t border_type) {
372 return dnnConvolutionCreateBackwardData_F64(
385 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateBackwardFilter(
386 dnnPrimitive_t* pConvolution,
387 dnnPrimitiveAttributes_t attributes,
388 dnnAlgorithm_t algorithm,
390 const size_t srcSize[],
391 const size_t dstSize[],
392 const size_t filterSize[],
393 const size_t convolutionStrides[],
394 const int inputOffset[],
395 const dnnBorder_t border_type);
396 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardFilter<float>(
397 dnnPrimitive_t* pConvolution,
398 dnnPrimitiveAttributes_t attributes,
399 dnnAlgorithm_t algorithm,
401 const size_t srcSize[],
402 const size_t dstSize[],
403 const size_t filterSize[],
404 const size_t convolutionStrides[],
405 const int inputOffset[],
406 const dnnBorder_t border_type) {
407 return dnnConvolutionCreateBackwardFilter_F32(
419 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardFilter<double>(
420 dnnPrimitive_t* pConvolution,
421 dnnPrimitiveAttributes_t attributes,
422 dnnAlgorithm_t algorithm,
424 const size_t srcSize[],
425 const size_t dstSize[],
426 const size_t filterSize[],
427 const size_t convolutionStrides[],
428 const int inputOffset[],
429 const dnnBorder_t border_type) {
430 return dnnConvolutionCreateBackwardFilter_F64(
443 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConvolutionCreateBackwardBias(
444 dnnPrimitive_t* pConvolution,
445 dnnPrimitiveAttributes_t attributes,
446 dnnAlgorithm_t algorithm,
448 const size_t dstSize[]);
449 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardBias<float>(
450 dnnPrimitive_t* pConvolution,
451 dnnPrimitiveAttributes_t attributes,
452 dnnAlgorithm_t algorithm,
454 const size_t dstSize[]) {
455 return dnnConvolutionCreateBackwardBias_F32(
456 pConvolution, attributes, algorithm, dimension, dstSize);
458 C2_MKL_SPEC_PREFIX dnnError_t dnnConvolutionCreateBackwardBias<double>(
459 dnnPrimitive_t* pConvolution,
460 dnnPrimitiveAttributes_t attributes,
461 dnnAlgorithm_t algorithm,
463 const size_t dstSize[]) {
464 return dnnConvolutionCreateBackwardBias_F64(
465 pConvolution, attributes, algorithm, dimension, dstSize);
468 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateForward(
469 dnnPrimitive_t* pConvolution,
470 dnnPrimitiveAttributes_t attributes,
471 dnnAlgorithm_t algorithm,
474 const size_t srcSize[],
475 const size_t dstSize[],
476 const size_t filterSize[],
477 const size_t convolutionStrides[],
478 const int inputOffset[],
479 const dnnBorder_t border_type);
480 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForward<float>(
481 dnnPrimitive_t* pConvolution,
482 dnnPrimitiveAttributes_t attributes,
483 dnnAlgorithm_t algorithm,
486 const size_t srcSize[],
487 const size_t dstSize[],
488 const size_t filterSize[],
489 const size_t convolutionStrides[],
490 const int inputOffset[],
491 const dnnBorder_t border_type) {
492 return dnnGroupsConvolutionCreateForward_F32(
505 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForward<double>(
506 dnnPrimitive_t* pConvolution,
507 dnnPrimitiveAttributes_t attributes,
508 dnnAlgorithm_t algorithm,
511 const size_t srcSize[],
512 const size_t dstSize[],
513 const size_t filterSize[],
514 const size_t convolutionStrides[],
515 const int inputOffset[],
516 const dnnBorder_t border_type) {
517 return dnnGroupsConvolutionCreateForward_F64(
531 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateForwardBias(
532 dnnPrimitive_t* pConvolution,
533 dnnPrimitiveAttributes_t attributes,
534 dnnAlgorithm_t algorithm,
537 const size_t srcSize[],
538 const size_t dstSize[],
539 const size_t filterSize[],
540 const size_t convolutionStrides[],
541 const int inputOffset[],
542 const dnnBorder_t border_type);
543 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForwardBias<float>(
544 dnnPrimitive_t* pConvolution,
545 dnnPrimitiveAttributes_t attributes,
546 dnnAlgorithm_t algorithm,
549 const size_t srcSize[],
550 const size_t dstSize[],
551 const size_t filterSize[],
552 const size_t convolutionStrides[],
553 const int inputOffset[],
554 const dnnBorder_t border_type) {
555 return dnnGroupsConvolutionCreateForwardBias_F32(
568 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateForwardBias<double>(
569 dnnPrimitive_t* pConvolution,
570 dnnPrimitiveAttributes_t attributes,
571 dnnAlgorithm_t algorithm,
574 const size_t srcSize[],
575 const size_t dstSize[],
576 const size_t filterSize[],
577 const size_t convolutionStrides[],
578 const int inputOffset[],
579 const dnnBorder_t border_type) {
580 return dnnGroupsConvolutionCreateForwardBias_F64(
594 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardData(
595 dnnPrimitive_t* pConvolution,
596 dnnPrimitiveAttributes_t attributes,
597 dnnAlgorithm_t algorithm,
600 const size_t srcSize[],
601 const size_t dstSize[],
602 const size_t filterSize[],
603 const size_t convolutionStrides[],
604 const int inputOffset[],
605 const dnnBorder_t border_type);
606 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardData<float>(
607 dnnPrimitive_t* pConvolution,
608 dnnPrimitiveAttributes_t attributes,
609 dnnAlgorithm_t algorithm,
612 const size_t srcSize[],
613 const size_t dstSize[],
614 const size_t filterSize[],
615 const size_t convolutionStrides[],
616 const int inputOffset[],
617 const dnnBorder_t border_type) {
618 return dnnGroupsConvolutionCreateBackwardData_F32(
631 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardData<double>(
632 dnnPrimitive_t* pConvolution,
633 dnnPrimitiveAttributes_t attributes,
634 dnnAlgorithm_t algorithm,
637 const size_t srcSize[],
638 const size_t dstSize[],
639 const size_t filterSize[],
640 const size_t convolutionStrides[],
641 const int inputOffset[],
642 const dnnBorder_t border_type) {
643 return dnnGroupsConvolutionCreateBackwardData_F64(
657 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardFilter(
658 dnnPrimitive_t* pConvolution,
659 dnnPrimitiveAttributes_t attributes,
660 dnnAlgorithm_t algorithm,
663 const size_t srcSize[],
664 const size_t dstSize[],
665 const size_t filterSize[],
666 const size_t convolutionStrides[],
667 const int inputOffset[],
668 const dnnBorder_t border_type);
669 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardFilter<float>(
670 dnnPrimitive_t* pConvolution,
671 dnnPrimitiveAttributes_t attributes,
672 dnnAlgorithm_t algorithm,
675 const size_t srcSize[],
676 const size_t dstSize[],
677 const size_t filterSize[],
678 const size_t convolutionStrides[],
679 const int inputOffset[],
680 const dnnBorder_t border_type) {
681 return dnnGroupsConvolutionCreateBackwardFilter_F32(
694 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardFilter<double>(
695 dnnPrimitive_t* pConvolution,
696 dnnPrimitiveAttributes_t attributes,
697 dnnAlgorithm_t algorithm,
700 const size_t srcSize[],
701 const size_t dstSize[],
702 const size_t filterSize[],
703 const size_t convolutionStrides[],
704 const int inputOffset[],
705 const dnnBorder_t border_type) {
706 return dnnGroupsConvolutionCreateBackwardFilter_F64(
720 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardBias(
721 dnnPrimitive_t* pConvolution,
722 dnnPrimitiveAttributes_t attributes,
723 dnnAlgorithm_t algorithm,
726 const size_t dstSize[]);
727 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardBias<float>(
728 dnnPrimitive_t* pConvolution,
729 dnnPrimitiveAttributes_t attributes,
730 dnnAlgorithm_t algorithm,
733 const size_t dstSize[]) {
734 return dnnGroupsConvolutionCreateBackwardBias_F32(
735 pConvolution, attributes, algorithm, groups, dimension, dstSize);
737 C2_MKL_SPEC_PREFIX dnnError_t dnnGroupsConvolutionCreateBackwardBias<double>(
738 dnnPrimitive_t* pConvolution,
739 dnnPrimitiveAttributes_t attributes,
740 dnnAlgorithm_t algorithm,
743 const size_t dstSize[]) {
744 return dnnGroupsConvolutionCreateBackwardBias_F64(
745 pConvolution, attributes, algorithm, groups, dimension, dstSize);
748 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnReLUCreateForward(
749 dnnPrimitive_t* pRelu,
750 dnnPrimitiveAttributes_t attributes,
751 const dnnLayout_t dataLayout,
752 float negativeSlope);
753 C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateForward<float>(
754 dnnPrimitive_t* pRelu,
755 dnnPrimitiveAttributes_t attributes,
756 const dnnLayout_t dataLayout,
757 float negativeSlope) {
758 return dnnReLUCreateForward_F32(pRelu, attributes, dataLayout, negativeSlope);
760 C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateForward<double>(
761 dnnPrimitive_t* pRelu,
762 dnnPrimitiveAttributes_t attributes,
763 const dnnLayout_t dataLayout,
764 float negativeSlope) {
765 return dnnReLUCreateForward_F64(pRelu, attributes, dataLayout, negativeSlope);
768 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnReLUCreateBackward(
769 dnnPrimitive_t* pRelu,
770 dnnPrimitiveAttributes_t attributes,
771 const dnnLayout_t diffLayout,
772 const dnnLayout_t dataLayout,
773 float negativeSlope);
774 C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateBackward<float>(
775 dnnPrimitive_t* pRelu,
776 dnnPrimitiveAttributes_t attributes,
777 const dnnLayout_t diffLayout,
778 const dnnLayout_t dataLayout,
779 float negativeSlope) {
780 return dnnReLUCreateBackward_F32(
781 pRelu, attributes, diffLayout, dataLayout, negativeSlope);
783 C2_MKL_SPEC_PREFIX dnnError_t dnnReLUCreateBackward<double>(
784 dnnPrimitive_t* pRelu,
785 dnnPrimitiveAttributes_t attributes,
786 const dnnLayout_t diffLayout,
787 const dnnLayout_t dataLayout,
788 float negativeSlope) {
789 return dnnReLUCreateBackward_F64(
790 pRelu, attributes, diffLayout, dataLayout, negativeSlope);
793 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLRNCreateForward(
794 dnnPrimitive_t* pLrn,
795 dnnPrimitiveAttributes_t attributes,
796 const dnnLayout_t dataLayout,
801 C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateForward<float>(
802 dnnPrimitive_t* pLrn,
803 dnnPrimitiveAttributes_t attributes,
804 const dnnLayout_t dataLayout,
809 return dnnLRNCreateForward_F32(
810 pLrn, attributes, dataLayout, kernel_size, alpha, beta, k);
812 C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateForward<double>(
813 dnnPrimitive_t* pLrn,
814 dnnPrimitiveAttributes_t attributes,
815 const dnnLayout_t dataLayout,
820 return dnnLRNCreateForward_F64(
821 pLrn, attributes, dataLayout, kernel_size, alpha, beta, k);
824 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnLRNCreateBackward(
825 dnnPrimitive_t* pLrn,
826 dnnPrimitiveAttributes_t attributes,
827 const dnnLayout_t diffLayout,
828 const dnnLayout_t dataLayout,
833 C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateBackward<float>(
834 dnnPrimitive_t* pLrn,
835 dnnPrimitiveAttributes_t attributes,
836 const dnnLayout_t diffLayout,
837 const dnnLayout_t dataLayout,
842 return dnnLRNCreateBackward_F32(
843 pLrn, attributes, diffLayout, dataLayout, kernel_size, alpha, beta, k);
845 C2_MKL_SPEC_PREFIX dnnError_t dnnLRNCreateBackward<double>(
846 dnnPrimitive_t* pLrn,
847 dnnPrimitiveAttributes_t attributes,
848 const dnnLayout_t diffLayout,
849 const dnnLayout_t dataLayout,
854 return dnnLRNCreateBackward_F64(
855 pLrn, attributes, diffLayout, dataLayout, kernel_size, alpha, beta, k);
858 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnPoolingCreateForward(
859 dnnPrimitive_t* pPooling,
860 dnnPrimitiveAttributes_t attributes,
862 const dnnLayout_t srcLayout,
863 const size_t kernelSize[],
864 const size_t kernelStride[],
865 const int inputOffset[],
866 const dnnBorder_t border_type);
867 C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateForward<float>(
868 dnnPrimitive_t* pPooling,
869 dnnPrimitiveAttributes_t attributes,
871 const dnnLayout_t srcLayout,
872 const size_t kernelSize[],
873 const size_t kernelStride[],
874 const int inputOffset[],
875 const dnnBorder_t border_type) {
876 return dnnPoolingCreateForward_F32(
886 C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateForward<double>(
887 dnnPrimitive_t* pPooling,
888 dnnPrimitiveAttributes_t attributes,
890 const dnnLayout_t srcLayout,
891 const size_t kernelSize[],
892 const size_t kernelStride[],
893 const int inputOffset[],
894 const dnnBorder_t border_type) {
895 return dnnPoolingCreateForward_F64(
906 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnPoolingCreateBackward(
907 dnnPrimitive_t* pPooling,
908 dnnPrimitiveAttributes_t attributes,
910 const dnnLayout_t srcLayout,
911 const size_t kernelSize[],
912 const size_t kernelStride[],
913 const int inputOffset[],
914 const dnnBorder_t border_type);
915 C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateBackward<float>(
916 dnnPrimitive_t* pPooling,
917 dnnPrimitiveAttributes_t attributes,
919 const dnnLayout_t srcLayout,
920 const size_t kernelSize[],
921 const size_t kernelStride[],
922 const int inputOffset[],
923 const dnnBorder_t border_type) {
924 return dnnPoolingCreateBackward_F32(
934 C2_MKL_SPEC_PREFIX dnnError_t dnnPoolingCreateBackward<double>(
935 dnnPrimitive_t* pPooling,
936 dnnPrimitiveAttributes_t attributes,
938 const dnnLayout_t srcLayout,
939 const size_t kernelSize[],
940 const size_t kernelStride[],
941 const int inputOffset[],
942 const dnnBorder_t border_type) {
943 return dnnPoolingCreateBackward_F64(
954 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnConcatCreate(
955 dnnPrimitive_t* pConcat,
956 dnnPrimitiveAttributes_t attributes,
959 C2_MKL_SPEC_PREFIX dnnError_t dnnConcatCreate<float>(
960 dnnPrimitive_t* pConcat,
961 dnnPrimitiveAttributes_t attributes,
964 return dnnConcatCreate_F32(pConcat, attributes, N, src);
966 C2_MKL_SPEC_PREFIX dnnError_t dnnConcatCreate<double>(
967 dnnPrimitive_t* pConcat,
968 dnnPrimitiveAttributes_t attributes,
971 return dnnConcatCreate_F64(pConcat, attributes, N, src);
974 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnSplitCreate(
975 dnnPrimitive_t* pSplit,
976 dnnPrimitiveAttributes_t attributes,
980 C2_MKL_SPEC_PREFIX dnnError_t dnnSplitCreate<float>(
981 dnnPrimitive_t* pSplit,
982 dnnPrimitiveAttributes_t attributes,
986 return dnnSplitCreate_F32(pSplit, attributes, N, src, dst);
988 C2_MKL_SPEC_PREFIX dnnError_t dnnSplitCreate<double>(
989 dnnPrimitive_t* pSplit,
990 dnnPrimitiveAttributes_t attributes,
994 return dnnSplitCreate_F64(pSplit, attributes, N, src, dst);
997 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnSumCreate(
998 dnnPrimitive_t* pSum,
999 dnnPrimitiveAttributes_t attributes,
1000 const size_t nSummands,
1003 C2_MKL_SPEC_PREFIX dnnError_t dnnSumCreate<float>(
1004 dnnPrimitive_t* pSum,
1005 dnnPrimitiveAttributes_t attributes,
1006 const size_t nSummands,
1008 float* coefficients) {
1009 return dnnSumCreate_F32(pSum, attributes, nSummands, layout, coefficients);
1011 C2_MKL_SPEC_PREFIX dnnError_t dnnSumCreate<double>(
1012 dnnPrimitive_t* pSum,
1013 dnnPrimitiveAttributes_t attributes,
1014 const size_t nSummands,
1016 double* coefficients) {
1017 return dnnSumCreate_F64(pSum, attributes, nSummands, layout, coefficients);
1020 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateForward(
1021 dnnPrimitive_t* pBatchNormalization,
1022 dnnPrimitiveAttributes_t attributes,
1023 const dnnLayout_t dataLayout,
1025 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward<float>(
1026 dnnPrimitive_t* pBatchNormalization,
1027 dnnPrimitiveAttributes_t attributes,
1028 const dnnLayout_t dataLayout,
1030 return dnnBatchNormalizationCreateForward_F32(
1031 pBatchNormalization, attributes, dataLayout, eps);
1033 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward<double>(
1034 dnnPrimitive_t* pBatchNormalization,
1035 dnnPrimitiveAttributes_t attributes,
1036 const dnnLayout_t dataLayout,
1038 return dnnBatchNormalizationCreateForward_F64(
1039 pBatchNormalization, attributes, dataLayout, eps);
1042 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardData(
1043 dnnPrimitive_t* pBatchNormalization,
1044 dnnPrimitiveAttributes_t attributes,
1045 const dnnLayout_t dataLayout,
1047 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardData<float>(
1048 dnnPrimitive_t* pBatchNormalization,
1049 dnnPrimitiveAttributes_t attributes,
1050 const dnnLayout_t dataLayout,
1052 return dnnBatchNormalizationCreateBackwardData_F32(
1053 pBatchNormalization, attributes, dataLayout, eps);
1056 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardData<double>(
1057 dnnPrimitive_t* pBatchNormalization,
1058 dnnPrimitiveAttributes_t attributes,
1059 const dnnLayout_t dataLayout,
1061 return dnnBatchNormalizationCreateBackwardData_F64(
1062 pBatchNormalization, attributes, dataLayout, eps);
1065 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateBackwardScaleShift(
1066 dnnPrimitive_t* pBatchNormalization,
1067 dnnPrimitiveAttributes_t attributes,
1068 const dnnLayout_t dataLayout,
1070 C2_MKL_SPEC_PREFIX dnnError_t
1071 dnnBatchNormalizationCreateBackwardScaleShift<float>(
1072 dnnPrimitive_t* pBatchNormalization,
1073 dnnPrimitiveAttributes_t attributes,
1074 const dnnLayout_t dataLayout,
1076 return dnnBatchNormalizationCreateBackwardScaleShift_F32(
1077 pBatchNormalization, attributes, dataLayout, eps);
1079 C2_MKL_SPEC_PREFIX dnnError_t
1080 dnnBatchNormalizationCreateBackwardScaleShift<double>(
1081 dnnPrimitive_t* pBatchNormalization,
1082 dnnPrimitiveAttributes_t attributes,
1083 const dnnLayout_t dataLayout,
1085 return dnnBatchNormalizationCreateBackwardScaleShift_F64(
1086 pBatchNormalization, attributes, dataLayout, eps);
1089 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateForward_v2(
1090 dnnPrimitive_t* pBatchNormalization,
1091 dnnPrimitiveAttributes_t attributes,
1092 const dnnLayout_t dataLayout,
1094 unsigned int flags);
1095 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward_v2<float>(
1096 dnnPrimitive_t* pBatchNormalization,
1097 dnnPrimitiveAttributes_t attributes,
1098 const dnnLayout_t dataLayout,
1100 unsigned int flags) {
1101 return dnnBatchNormalizationCreateForward_v2_F32(
1102 pBatchNormalization, attributes, dataLayout, eps, flags);
1104 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateForward_v2<double>(
1105 dnnPrimitive_t* pBatchNormalization,
1106 dnnPrimitiveAttributes_t attributes,
1107 const dnnLayout_t dataLayout,
1109 unsigned int flags) {
1110 return dnnBatchNormalizationCreateForward_v2_F64(
1111 pBatchNormalization, attributes, dataLayout, eps, flags);
1114 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnBatchNormalizationCreateBackward_v2(
1115 dnnPrimitive_t* pBatchNormalization,
1116 dnnPrimitiveAttributes_t attributes,
1117 const dnnLayout_t dataLayout,
1119 unsigned int flags);
1120 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackward_v2<float>(
1121 dnnPrimitive_t* pBatchNormalization,
1122 dnnPrimitiveAttributes_t attributes,
1123 const dnnLayout_t dataLayout,
1125 unsigned int flags) {
1126 return dnnBatchNormalizationCreateBackward_v2_F32(
1127 pBatchNormalization, attributes, dataLayout, eps, flags);
1130 C2_MKL_SPEC_PREFIX dnnError_t dnnBatchNormalizationCreateBackward_v2<double>(
1131 dnnPrimitive_t* pBatchNormalization,
1132 dnnPrimitiveAttributes_t attributes,
1133 const dnnLayout_t dataLayout,
1135 unsigned int flags) {
1136 return dnnBatchNormalizationCreateBackward_v2_F64(
1137 pBatchNormalization, attributes, dataLayout, eps, flags);
1140 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateForward(
1141 dnnPrimitive_t* pInnerProduct,
1142 dnnPrimitiveAttributes_t attributes,
1144 const size_t srcSize[],
1145 size_t outputChannels);
1146 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForward<float>(
1147 dnnPrimitive_t* pInnerProduct,
1148 dnnPrimitiveAttributes_t attributes,
1150 const size_t srcSize[],
1151 size_t outputChannels) {
1152 return dnnInnerProductCreateForward_F32(
1153 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1155 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForward<double>(
1156 dnnPrimitive_t* pInnerProduct,
1157 dnnPrimitiveAttributes_t attributes,
1159 const size_t srcSize[],
1160 size_t outputChannels) {
1161 return dnnInnerProductCreateForward_F64(
1162 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1165 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateForwardBias(
1166 dnnPrimitive_t* pInnerProduct,
1167 dnnPrimitiveAttributes_t attributes,
1169 const size_t srcSize[],
1170 size_t outputChannels);
1171 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForwardBias<float>(
1172 dnnPrimitive_t* pInnerProduct,
1173 dnnPrimitiveAttributes_t attributes,
1175 const size_t srcSize[],
1176 size_t outputChannels) {
1177 return dnnInnerProductCreateForwardBias_F32(
1178 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1180 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateForwardBias<double>(
1181 dnnPrimitive_t* pInnerProduct,
1182 dnnPrimitiveAttributes_t attributes,
1184 const size_t srcSize[],
1185 size_t outputChannels) {
1186 return dnnInnerProductCreateForwardBias_F64(
1187 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1190 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateBackwardData(
1191 dnnPrimitive_t* pInnerProduct,
1192 dnnPrimitiveAttributes_t attributes,
1194 const size_t srcSize[],
1195 size_t outputChannels);
1196 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardData<float>(
1197 dnnPrimitive_t* pInnerProduct,
1198 dnnPrimitiveAttributes_t attributes,
1200 const size_t srcSize[],
1201 size_t outputChannels) {
1202 return dnnInnerProductCreateBackwardData_F32(
1203 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1205 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardData<double>(
1206 dnnPrimitive_t* pInnerProduct,
1207 dnnPrimitiveAttributes_t attributes,
1209 const size_t srcSize[],
1210 size_t outputChannels) {
1211 return dnnInnerProductCreateBackwardData_F64(
1212 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1215 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateBackwardFilter(
1216 dnnPrimitive_t* pInnerProduct,
1217 dnnPrimitiveAttributes_t attributes,
1219 const size_t srcSize[],
1220 size_t outputChannels);
1221 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardFilter<float>(
1222 dnnPrimitive_t* pInnerProduct,
1223 dnnPrimitiveAttributes_t attributes,
1225 const size_t srcSize[],
1226 size_t outputChannels) {
1227 return dnnInnerProductCreateBackwardFilter_F32(
1228 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1230 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardFilter<double>(
1231 dnnPrimitive_t* pInnerProduct,
1232 dnnPrimitiveAttributes_t attributes,
1234 const size_t srcSize[],
1235 size_t outputChannels) {
1236 return dnnInnerProductCreateBackwardFilter_F64(
1237 pInnerProduct, attributes, dimensions, srcSize, outputChannels);
1240 C2_MKL_TEMPLATE_PREFIX dnnError_t dnnInnerProductCreateBackwardBias(
1241 dnnPrimitive_t* pInnerProduct,
1242 dnnPrimitiveAttributes_t attributes,
1244 const size_t srcSize[]);
1245 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardBias<float>(
1246 dnnPrimitive_t* pInnerProduct,
1247 dnnPrimitiveAttributes_t attributes,
1249 const size_t srcSize[]) {
1250 return dnnInnerProductCreateBackwardBias_F32(
1251 pInnerProduct, attributes, dimensions, srcSize);
1253 C2_MKL_SPEC_PREFIX dnnError_t dnnInnerProductCreateBackwardBias<double>(
1254 dnnPrimitive_t* pInnerProduct,
1255 dnnPrimitiveAttributes_t attributes,
1257 const size_t srcSize[]) {
1258 return dnnInnerProductCreateBackwardBias_F64(
1259 pInnerProduct, attributes, dimensions, srcSize);
1266 #undef C2_MKL_TEMPLATE_PREFIX 1267 #undef C2_MKL_SPEC_PREFIX 1269 #endif // CAFFE2_UTILS_MKL_MKL_DNN_CPPWRAPPER_H A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...