GCC Code Coverage Report
Directory: . Exec Total Coverage
File: package/x86_64/haswell/conv2d.cpp Lines: 0 15 0.0 %
Date: 2019-01-14 Branches: 0 0 0.0 %

Line Exec Source
1
/**
2
 *  HMLP (High-Performance Machine Learning Primitives)
3
 *
4
 *  Copyright (C) 2014-2017, The University of Texas at Austin
5
 *
6
 *  This program is free software: you can redistribute it and/or modify
7
 *  it under the terms of the GNU General Public License as published by
8
 *  the Free Software Foundation, either version 3 of the License, or
9
 *  (at your option) any later version.
10
 *
11
 *  This program is distributed in the hope that it will be useful,
12
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
 *  GNU General Public License for more details.
15
 *
16
 *  You should have received a copy of the GNU General Public License
17
 *  along with this program. If not, see the LICENSE file.
18
 *
19
 **/
20
21
22
23
/** CONV2D templates */
24
#include <primitives/conv2d.hpp>
25
26
/** Haswell kernels */
27
#include <rank_k_d8x6.hpp>
28
29
using namespace hmlp::cnn;
30
31
32
33
void conv2d
34
(
35
  int w0, int h0, int d0, int s, int p, int batchSize,
36
  float *B, int w1, int h1, int d1,
37
	float *A,
38
	float *C
39
)
40
{
41
  printf( "not implemented yet\n" );
42
  exit( 1 );
43
};
44
45
46
void conv2d
47
(
48
  int w0, int h0, int d0, int s, int p, int batchSize,
49
  double *B, int w1, int h1, int d1,
50
	double *A,
51
	double *C
52
)
53
{
54
  rank_k_asm_d8x6 semiringkernel;
55
  rank_k_asm_d8x6 microkernel;
56
57
  conv2d<
58
    72, 960, 256, 8, 6,
59
    72, 960,      8, 6, 32,
60
    false,
61
    rank_k_asm_d8x6,
62
    rank_k_asm_d8x6,
63
    double, double, double, double>
64
	(
65
    w0, h0, d0, s, p, batchSize,
66
    B,
67
    w1, h1, d1,
68
    A,
69
    C,
70
	  semiringkernel,
71
	  microkernel
72
	);
73
};
74
75
76
void dconv2d
77
(
78
  int w0, int h0, int d0, int s, int p, int batchSize,
79
  float *B, int w1, int h1, int d1,
80
	float *A,
81
	float *C
82
)
83
{
84
  conv2d( w0, h0, d0, s, p, batchSize, B, w1, h1, d1, A, C );
85
};
86
87
88
void dconv2d
89
(
90
  int w0, int h0, int d0, int s, int p, int batchSize,
91
  double *B, int w1, int h1, int d1,
92
	double *A,
93
	double *C
94
)
95
{
96
  conv2d( w0, h0, d0, s, p, batchSize, B, w1, h1, d1, A, C );
97
};
98
99
100
101
102
103
void dconv2d_ref
104
(
105
  int w0, int h0, int d0, int s, int p, int batchSize,
106
  double *B, int w1, int h1, int d1,
107
	double *A,
108
	double *C
109
)
110
{
111
  conv2d_ref
112
  (
113
    w0, h0, d0, s, p, batchSize,
114
    B,
115
    w1, h1, d1,
116
    A,
117
    C
118
 );
119
};
120
121
122