Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Marc Solé Bonet
XOHW_GRLIB_AI_extension
Commits
17e99f2f
Commit
17e99f2f
authored
Jun 26, 2021
by
Marc
Browse files
updated software and results, included bitfile
parent
eec6bbae
Changes
30
Expand all
Hide whitespace changes
Inline
Side-by-side
grlib/software/marcmod/leon3/Makefile
View file @
17e99f2f
...
@@ -10,17 +10,21 @@ systest hello:
...
@@ -10,17 +10,21 @@ systest hello:
simd_%
:
simd_%
:
$(MAKE)
-C
module_tests
$@
$(MAKE)
-C
module_tests
$@
mat_mu%
binomi
%
:
mat_mu%
polyn
%
:
$(MAKE)
-C
matrix_multiplication
$@
$(MAKE)
-C
matrix_multiplication
$@
cifar%
:
$(MAKE)
-C
cifar
$@
gray% filt%
:
gray% filt%
:
$(MAKE)
-C
image_manipulation
$@
$(MAKE)
-C
image_manipulation
$@
.PHONY
:
clean
clean
:
clean
:
$(MAKE)
-C
leon3_tests
$@
$(MAKE)
-C
leon3_tests
clean
$(MAKE)
-C
module_tests
$@
$(MAKE)
-C
module_tests
clean
$(MAKE)
-C
matrix_multiplication
$@
$(MAKE)
-C
matrix_multiplication
clean
$(MAKE)
-C
image_manipulation
$@
$(MAKE)
-C
image_manipulation
clean
...
...
grlib/software/marcmod/leon3/cifar/Makefile
0 → 100644
View file @
17e99f2f
XCC
=
sparc-gaisler-elf-gcc
#
$(XINC)
XCFLAGS
=
-O2
-g
-msoft-float
-mcpu
=
v8
-fno-inline
cifar_10
:
cp
cifar_10.srec
$(CURRENT_DIR)
/test.srec
cifar_10_simd
:
cp
cifar_10_simd.srec
$(CURRENT_DIR)
/test.srec
clean
:
rm
-f
*
.exe
*
.o
*
.dump hello.srec
grlib/software/marcmod/leon3/cifar/cifar_10_simd.srec
0 → 100755
View file @
17e99f2f
This diff is collapsed.
Click to expand it.
grlib/software/marcmod/leon3/image_manipulation/Makefile
View file @
17e99f2f
XCC
=
sparc-gaisler-elf-gcc
#
$(XINC)
XCC
=
sparc-gaisler-elf-gcc
#
$(XINC)
XCFLAGS
=
-O2
-g
-msoft-float
-mcpu
=
v8
-fno-inline
XCFLAGS
=
-O2
-g
-msoft-float
-mcpu
=
v8
-fno-inline
XCFLAGS0
=
-O0
-g
-msoft-float
-mcpu
=
v8
%
:
Makefile
:
$(XCC)
$(XCFLAGS)
-D
N
=
$(par1)
-c
$@
.c
echo
"?"
.PHONY
:
variables.h
variables.h
:
echo
"#define N
$(SIZE)
"
>
$@
ifeq
($(P_IN),1)
echo
"#define P_INPUT 1"
>>
$@
endif
ifeq
($(P_OUT),1)
echo
"#define P_OUTPUT 1"
>>
$@
endif
%
:
variables.h
$(XCC)
$(XCFLAGS)
-c
$@
.c
$(XCC)
$(XCFLAGS)
$@
.o
-o
$@
.exe
$(XCC)
$(XCFLAGS)
$@
.o
-o
$@
.exe
sparc-gaisler-elf-objcopy
-O
srec
--gap-fill
0
$@
.exe
$@
.srec
sparc-gaisler-elf-objcopy
-O
srec
--gap-fill
0
$@
.exe
$@
.srec
cp
$@
.srec
$(CURRENT_DIR)
/test.srec
cp
$@
.srec
$(CURRENT_DIR)
/test.srec
...
...
grlib/software/marcmod/leon3/image_manipulation/filter.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include "arrays.h"
#include "arrays.h"
#include "variables.h"
#ifndef N
#ifndef N
#define N 256
#define N 256
...
...
grlib/software/marcmod/leon3/image_manipulation/filter_simd.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include "variables.h"
#include <stdlib.h>
#include <stdlib.h>
#include "arrays.h"
#include "arrays.h"
...
...
grlib/software/marcmod/leon3/image_manipulation/grayscale.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include "variables.h"
#include <stdlib.h>
#include <stdlib.h>
#include "arrays.h"
#include "arrays.h"
...
...
grlib/software/marcmod/leon3/image_manipulation/grayscale_no_unroll.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include "variables.h"
#include <stdlib.h>
#include <stdlib.h>
#include "arrays.h"
#include "arrays.h"
...
...
grlib/software/marcmod/leon3/image_manipulation/grayscale_simd.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include "variables.h"
#include <stdlib.h>
#include <stdlib.h>
#include "arrays.h"
#include "arrays.h"
...
...
grlib/software/marcmod/leon3/image_manipulation/grayscale_simdv2.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include "variables.h"
#include <stdlib.h>
#include <stdlib.h>
#include "arrays.h"
#include "arrays.h"
...
...
grlib/software/marcmod/leon3/image_manipulation/variables.h
0 → 100644
View file @
17e99f2f
#define N 4
#define P_INPUT 1
#define P_OUTPUT 1
grlib/software/marcmod/leon3/matrix_multiplication/Makefile
View file @
17e99f2f
XCC
=
sparc-gaisler-elf-gcc
#
$(XINC)
XCC
=
sparc-gaisler-elf-gcc
#
$(XINC)
XCFLAGS
=
-O2
-g
-msoft-float
-mcpu
=
v8
-fno-inline
XCFLAGS
=
-O2
-g
-msoft-float
-mcpu
=
v8
-fno-inline
%
:
Makefile
:
$(XCC)
$(XCFLAGS)
-D
N
=
$(par1)
-c
$@
.c
echo
"?"
.PHONY
:
variables.h
variables.h
:
echo
"#define N
$(SIZE)
"
>
$@
ifeq
($(P_IN),1)
echo
"#define P_INPUT 1"
>>
$@
endif
ifeq
($(P_OUT),1)
echo
"#define P_OUTPUT 1"
>>
$@
endif
%
:
variables.h
$(XCC)
$(XCFLAGS)
-c
$@
.c
$(XCC)
$(XCFLAGS)
$@
.o
-o
$@
.exe
$(XCC)
$(XCFLAGS)
$@
.o
-o
$@
.exe
sparc-gaisler-elf-objcopy
-O
srec
--gap-fill
0
$@
.exe
$@
.srec
sparc-gaisler-elf-objcopy
-O
srec
--gap-fill
0
$@
.exe
$@
.srec
cp
$@
.srec
$(CURRENT_DIR)
/test.srec
cp
$@
.srec
$(CURRENT_DIR)
/test.srec
...
...
grlib/software/marcmod/leon3/matrix_multiplication/mat_mul.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include <time.h>
#include <time.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#define min(a,b) \
#define min(a,b) \
({ __typeof__ (a) _a = (a); \
({ __typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
__typeof__ (b) _b = (b); \
_a < _b ? _a : _b; })
_a < _b ? _a : _b; })
#ifndef N
#define N 4
#endif
void
print
(
char
c
,
unsigned
char
src
[
N
][
N
])
{
void
print
(
char
c
,
unsigned
char
src
[
N
][
N
])
{
printf
(
"%c:
\n
"
,
c
);
printf
(
"%c:
\n
"
,
c
);
for
(
int
i
=
0
;
i
<
N
;
i
++
){
for
(
int
i
=
0
;
i
<
N
;
i
++
){
...
@@ -31,7 +28,8 @@ void product(unsigned char A[N][N], unsigned char B[N][N], unsigned char C[N][N]
...
@@ -31,7 +28,8 @@ void product(unsigned char A[N][N], unsigned char B[N][N], unsigned char C[N][N]
for
(
int
i
=
0
;
i
<
N
;
i
++
)
for
(
int
i
=
0
;
i
<
N
;
i
++
)
for
(
int
j
=
0
;
j
<
N
;
j
++
){
for
(
int
j
=
0
;
j
<
N
;
j
++
){
for
(
int
k
=
0
;
k
<
N
;
k
++
){
for
(
int
k
=
0
;
k
<
N
;
k
++
){
sum
+=
A
[
i
][
k
]
*
B
[
j
][
k
];
aux
=
min
((
int
)
A
[
i
][
k
]
*
(
int
)
B
[
j
][
k
],
255
);
sum
=
min
(
aux
+
sum
,
255
);
}
}
C
[
i
][
j
]
=
sum
;
C
[
i
][
j
]
=
sum
;
sum
=
0
;
sum
=
0
;
...
...
grlib/software/marcmod/leon3/matrix_multiplication/mat_mul_int.c
View file @
17e99f2f
...
@@ -2,10 +2,7 @@
...
@@ -2,10 +2,7 @@
#include <time.h>
#include <time.h>
#include <string.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#ifndef N
#define N 4
#endif
int
computeCell
(
int
a
,
int
b
){
int
computeCell
(
int
a
,
int
b
){
...
...
grlib/software/marcmod/leon3/matrix_multiplication/mat_mul_simd.c
View file @
17e99f2f
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#include <time.h>
#include <time.h>
#include <string.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#ifndef N
#ifndef N
#define N 8
#define N 8
...
@@ -54,9 +55,9 @@ int main()
...
@@ -54,9 +55,9 @@ int main()
unsigned
char
A
[
N
][
N
],
B
[
N
][
N
],
C
[
N
][
N
];
unsigned
char
A
[
N
][
N
],
B
[
N
][
N
],
C
[
N
][
N
];
srand
(
N
);
srand
(
N
);
init
(
A
,
B
);
init
(
A
,
B
);
puts
(
"TEST BEGIN"
);
//
puts("TEST BEGIN");
product
(
A
,
B
,
C
);
product
(
A
,
B
,
C
);
puts
(
"TEST END"
);
//
puts("TEST END");
#ifdef P_INPUT
#ifdef P_INPUT
print
(
'A'
,
A
);
print
(
'A'
,
A
);
print
(
'B'
,
B
);
print
(
'B'
,
B
);
...
...
grlib/software/marcmod/leon3/matrix_multiplication/mat_mul_simd32.c
View file @
17e99f2f
...
@@ -2,6 +2,8 @@
...
@@ -2,6 +2,8 @@
#include <time.h>
#include <time.h>
#include <string.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#define N 32
#define N 32
int
computeCell
(
int
a
,
int
b
){
int
computeCell
(
int
a
,
int
b
){
...
...
grlib/software/marcmod/leon3/matrix_multiplication/mat_mul_simd4.c
View file @
17e99f2f
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#include <time.h>
#include <time.h>
#include <string.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#define N 4
#define N 4
int
computeCell
(
int
a
,
int
b
);
int
computeCell
(
int
a
,
int
b
);
...
...
grlib/software/marcmod/leon3/matrix_multiplication/
bi
nomial.c
→
grlib/software/marcmod/leon3/matrix_multiplication/
poly
nomial.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include <time.h>
#include <time.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#define min(a,b) \
#define min(a,b) \
({ __typeof__ (a) _a = (a); \
({ __typeof__ (a) _a = (a); \
...
...
grlib/software/marcmod/leon3/matrix_multiplication/
bi
nomial_opt.c
→
grlib/software/marcmod/leon3/matrix_multiplication/
poly
nomial_opt.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include <time.h>
#include <time.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#define min(a,b) \
#define min(a,b) \
({ __typeof__ (a) _a = (a); \
({ __typeof__ (a) _a = (a); \
...
...
grlib/software/marcmod/leon3/matrix_multiplication/
bi
nomial_opt_sat.c
→
grlib/software/marcmod/leon3/matrix_multiplication/
poly
nomial_opt_sat.c
View file @
17e99f2f
#include <stdio.h>
#include <stdio.h>
#include <time.h>
#include <time.h>
#include <stdlib.h>
#include <stdlib.h>
#include "variables.h"
#define min(a,b) \
#define min(a,b) \
({ __typeof__ (a) _a = (a); \
({ __typeof__ (a) _a = (a); \
...
...
Prev
1
2
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment