Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
lecture
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pt1_hs20
lecture
Commits
4a10b5cc
Commit
4a10b5cc
authored
Nov 19, 2020
by
Ignacio Labarca Figueroa
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add ex10
parent
3241a5f6
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
69 additions
and
0 deletions
+69
-0
exercises/ex10/exercise10.pdf
exercises/ex10/exercise10.pdf
+0
-0
exercises/ex10/matrix_multiplication/CMakeLists.txt
exercises/ex10/matrix_multiplication/CMakeLists.txt
+10
-0
exercises/ex10/matrix_multiplication/main.cpp
exercises/ex10/matrix_multiplication/main.cpp
+38
-0
exercises/ex10/matrix_multiplication/matrix_multiplication.hpp
...ises/ex10/matrix_multiplication/matrix_multiplication.hpp
+9
-0
exercises/ex10/matrix_multiplication/mm0.cpp
exercises/ex10/matrix_multiplication/mm0.cpp
+12
-0
No files found.
exercises/ex10/exercise10.pdf
0 → 100644
View file @
4a10b5cc
File added
exercises/ex10/matrix_multiplication/CMakeLists.txt
0 → 100644
View file @
4a10b5cc
cmake_minimum_required
(
VERSION 3.15
)
project
(
ex10-matrix-multiplication
)
set
(
CMAKE_CXX_STANDARD 17
)
set
(
CMAKE_CXX_STANDARD_REQUIRED TRUE
)
set
(
CMAKE_CXX_EXTENSIONS FALSE
)
add_compile_options
(
-Wall -Wextra -Wpedantic -march=native
)
add_executable
(
main main.cpp mm0.cpp
)
exercises/ex10/matrix_multiplication/main.cpp
0 → 100644
View file @
4a10b5cc
#include <iostream>
#include <chrono>
#include <cstdlib>
#include <random>
#include "matrix_multiplication.hpp"
double
benchmark
(
function_t
f
,
matrix_t
const
&
A
,
matrix_t
const
&
B
,
matrix_t
&
C
,
std
::
size_t
N
)
noexcept
{
for
(
std
::
size_t
i
=
0
;
i
<
N
*
N
;
++
i
)
{
C
[
i
]
=
0
;
}
auto
start
=
std
::
chrono
::
high_resolution_clock
::
now
();
f
(
A
,
B
,
C
,
N
);
auto
end
=
std
::
chrono
::
high_resolution_clock
::
now
();
return
std
::
chrono
::
duration
<
double
>
(
end
-
start
).
count
();
}
int
main
()
{
int
const
runs
=
10
;
int
const
N
=
512
;
matrix_t
A
(
N
*
N
);
matrix_t
B
(
N
*
N
);
matrix_t
C
(
N
*
N
);
std
::
mt19937
gen
;
std
::
uniform_real_distribution
<
double
>
dis
(
0
,
1
);
for
(
std
::
size_t
i
=
0
;
i
<
N
*
N
;
++
i
)
{
A
[
i
]
=
dis
(
gen
);
B
[
i
]
=
dis
(
gen
);
}
for
(
int
i
=
0
;
i
<
runs
;
++
i
)
{
auto
time
=
benchmark
(
mm0
,
A
,
B
,
C
,
N
);
std
::
cout
<<
"mm0,"
<<
N
<<
','
<<
time
<<
'\n'
;
}
}
exercises/ex10/matrix_multiplication/matrix_multiplication.hpp
0 → 100644
View file @
4a10b5cc
#pragma once
#include <cstdint>
#include <vector>
using
value_t
=
double
;
using
matrix_t
=
std
::
vector
<
value_t
>
;
using
function_t
=
void
(
*
)(
matrix_t
const
&
,
matrix_t
const
&
,
matrix_t
&
,
std
::
size_t
N
);
void
mm0
(
matrix_t
const
&
A
,
matrix_t
const
&
B
,
matrix_t
&
C
,
std
::
size_t
N
)
noexcept
;
exercises/ex10/matrix_multiplication/mm0.cpp
0 → 100644
View file @
4a10b5cc
#include "matrix_multiplication.hpp"
// Trivial implementation
void
mm0
(
matrix_t
const
&
A
,
matrix_t
const
&
B
,
matrix_t
&
C
,
std
::
size_t
N
)
noexcept
{
for
(
std
::
size_t
i
=
0
;
i
<
N
;
++
i
)
{
for
(
std
::
size_t
j
=
0
;
j
<
N
;
++
j
)
{
for
(
std
::
size_t
k
=
0
;
k
<
N
;
++
k
)
{
C
[
i
+
j
*
N
]
+=
A
[
i
+
k
*
N
]
*
B
[
j
+
k
*
N
];
}
}
}
}
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