Skip to content

Commit 2802ca4

Browse files
committed
Make gemmini.h work on C++
1 parent 89f9aef commit 2802ca4

File tree

1 file changed

+31
-31
lines changed

1 file changed

+31
-31
lines changed

include/gemmini.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -857,7 +857,7 @@ void tiled_matmul(size_t dim_I, size_t dim_J, size_t dim_K,
857857
exit(1);
858858
}
859859

860-
char matmul_type_str[][3] = {"OS", "WS", "CPU"};
860+
char matmul_type_str[][4] = {"OS", "WS", "CPU"};
861861

862862
// Check if transpose options are correct
863863
if (((tiled_matmul_type == OS || tiled_matmul_type == CPU) && (transpose_A || transpose_B)) ||
@@ -886,7 +886,7 @@ void tiled_matmul(size_t dim_I, size_t dim_J, size_t dim_K,
886886
(int)tiled_matmul_type);
887887
} else /*if (tiled_matmul_type == CPU)*/ {
888888
matmul_cpu(dim_I, dim_J, dim_K,
889-
A, B, D, (elem_t*)C,
889+
A, B, (const acc_t*) D, (elem_t*)C,
890890
stride_A, stride_B, stride_D, stride_C,
891891
A_scale_factor, B_scale_factor, D_scale_factor,
892892
act, scale, relu6_shift, repeating_bias);
@@ -1259,11 +1259,11 @@ void sp_tiled_conv_ds(
12591259
int lpad, int rpad, int upad, int dpad,
12601260
int plpad, int prpad, int pupad, int pdpad,
12611261

1262-
elem_t * input,
1262+
const elem_t * input,
12631263
uint32_t B_sp_addr_outer,
1264-
elem_t * weights,
1264+
const elem_t * weights,
12651265
elem_t * output,
1266-
acc_t * bias,
1266+
const acc_t * bias,
12671267

12681268
int act, acc_scale_t scale, int relu6_shift,
12691269
bool no_bias, bool no_pool,
@@ -1341,7 +1341,7 @@ int bidims = batches*idims;
13411341

13421342
for (int b = 0; b < batches; b++) {
13431343
for (int irow = 0; irow < irows; irow++) {
1344-
elem_t * in = input + (b*in_dim*in_dim + irow*in_dim) * in_channels;// + ich;
1344+
const elem_t * in = input + (b*in_dim*in_dim + irow*in_dim) * in_channels;// + ich;
13451345
const uint32_t A_sp_addr = A_sp_addr_start + b * idims + irow * icols;
13461346
for (int ich = 0; ich < ichs; ich += DIM) {
13471347
// const int K = ichs - ich > DIM ? DIM : ichs - ich;
@@ -1808,10 +1808,10 @@ void sp_tiled_conv_ws_original(
18081808
int lpad, int rpad, int upad, int dpad,
18091809
int plpad, int prpad, int pupad, int pdpad,
18101810

1811-
elem_t * input,
1812-
elem_t * weights,
1811+
const elem_t * input,
1812+
const elem_t * weights,
18131813
elem_t * output,
1814-
acc_t * bias,
1814+
const acc_t * bias,
18151815

18161816
int act, int scale, int relu6_shift,
18171817
bool no_bias, bool no_pool,
@@ -1893,7 +1893,7 @@ void sp_tiled_conv_ws_original(
18931893

18941894
for (int icol = -lpad; icol < icols_unpadded + rpad;) {
18951895
int I = icols_unpadded - icol > DIM ? DIM : icols_unpadded - icol;
1896-
elem_t * in = input + (b*in_dim*in_dim + irow*in_dim + icol) * in_channels;// + ich;
1896+
const elem_t * in = input + (b*in_dim*in_dim + irow*in_dim + icol) * in_channels;// + ich;
18971897

18981898
if (icol < 0) {
18991899
I = -icol > DIM ? DIM : -icol;
@@ -2193,9 +2193,9 @@ void conv_cpu_without_pool(
21932193
int out_channels, int out_dim,
21942194
int stride, int padding, int kernel_dim,
21952195

2196-
elem_t * input,
2197-
elem_t * weights,
2198-
acc_t * bias,
2196+
const elem_t * input,
2197+
const elem_t * weights,
2198+
const acc_t * bias,
21992199
elem_t * output,
22002200

22012201
int act, acc_scale_t scale, size_t relu6_shift) {
@@ -2241,9 +2241,9 @@ void conv_cpu(
22412241
int out_channels, int out_dim,
22422242
int stride, int padding, int kernel_dim,
22432243

2244-
elem_t * input,
2245-
elem_t * weights,
2246-
acc_t * bias,
2244+
const elem_t * input,
2245+
const elem_t * weights,
2246+
const acc_t * bias,
22472247
elem_t * output,
22482248

22492249
int act, acc_scale_t scale, size_t relu6_shift,
@@ -2714,11 +2714,11 @@ void sp_tiled_conv_ws(
27142714
int lpad, int rpad, int upad, int dpad,
27152715
int plpad, int prpad, int pupad, int pdpad,
27162716

2717-
elem_t * input,
2717+
const elem_t * input,
27182718
uint32_t B_sp_addr_start,
27192719
//elem_t * weights,
27202720
elem_t * output,
2721-
acc_t * bias,
2721+
const acc_t * bias,
27222722

27232723
int act, acc_scale_t scale, int relu6_shift,
27242724
bool no_bias, bool no_pool,
@@ -2788,7 +2788,7 @@ void sp_tiled_conv_ws(
27882788

27892789
for (int icol = -lpad; icol < icols_unpadded + rpad;) {
27902790
int I = icols_unpadded - icol > DIM ? DIM : icols_unpadded - icol;
2791-
elem_t * in = input + (b*in_dim*in_dim + irow*in_dim + icol) * in_channels;// + ich;
2791+
const elem_t * in = input + (b*in_dim*in_dim + irow*in_dim + icol) * in_channels;// + ich;
27922792

27932793
if (icol < 0) {
27942794
I = -icol > DIM ? DIM : -icol;
@@ -2992,9 +2992,9 @@ void tiled_conv_original(
29922992
int porows, int pocols, int pochs,
29932993
int kcols, int kchs,
29942994

2995-
elem_t * input,
2996-
elem_t * weights,
2997-
acc_t * bias,
2995+
const elem_t * input,
2996+
const elem_t * weights,
2997+
const acc_t * bias,
29982998
elem_t * output,
29992999

30003000
int act, acc_scale_t scale, size_t relu6_shift,
@@ -3089,7 +3089,7 @@ void tiled_conv_original(
30893089
if (kch + kchs < in_channels) {
30903090
out = NULL;
30913091
}
3092-
acc_t * bias_ = bias + poch;
3092+
const acc_t * bias_ = bias + poch;
30933093
if (kch > 0) {
30943094
bias_ = NULL;
30953095
}
@@ -3183,9 +3183,9 @@ void tiled_conv(
31833183
int porows, int pocols, int pochs,
31843184
int krows, int kcols, int kchs,
31853185

3186-
elem_t * input,
3187-
elem_t * weights,
3188-
acc_t * bias,
3186+
const elem_t * input,
3187+
const elem_t * weights,
3188+
const acc_t * bias,
31893189
elem_t * output,
31903190

31913191
int act, acc_scale_t scale, size_t relu6_shift,
@@ -3259,7 +3259,7 @@ void tiled_conv(
32593259

32603260
for (int poch = 0; poch < out_channels; poch += pochs) {
32613261
const int pochs_ = out_channels - poch > pochs ? pochs : out_channels - poch;
3262-
acc_t * bias_ = bias + poch;
3262+
const acc_t * bias_ = bias + poch;
32633263

32643264
const int kchs_ = in_channels;
32653265
gemmini_config_ld(out_channels*sizeof(elem_t));
@@ -3270,7 +3270,7 @@ void tiled_conv(
32703270
for (int ich = 0; ich < kchs_; ich += DIM) {
32713271
const int K = kchs_ - ich > DIM ? DIM : kchs_ - ich;
32723272
for (int krow = 0; krow < kcols; krow++){
3273-
elem_t * weight = weights + poch + (krow*kcols*in_channels + ich) * out_channels + och;
3273+
const elem_t * weight = weights + poch + (krow*kcols*in_channels + ich) * out_channels + och;
32743274
const uint32_t B_sp_addr = B_sp_addr_start + (och / DIM) * kdims * kchs_ + ich*kdims + krow*kcols*K;// + kcol*K;
32753275
for (int kcol = 0; kcol < kcols; kcol++){
32763276
gemmini_extended_mvin(weight + kcol*in_channels*out_channels,
@@ -3828,9 +3828,9 @@ void tiled_conv_auto(
38283828
int out_channels, int out_dim,
38293829
int stride, int padding, int kernel_dim,
38303830

3831-
elem_t * input,
3832-
elem_t * weights,
3833-
acc_t * bias,
3831+
const elem_t * input,
3832+
const elem_t * weights,
3833+
const acc_t * bias,
38343834
elem_t * output,
38353835

38363836
int act, acc_scale_t scale, size_t relu6_shift,

0 commit comments

Comments
 (0)