-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmatmult_functions.h
40 lines (37 loc) · 2.72 KB
/
matmult_functions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//
// Created by eva on 30.11.20.
//
#pragma once
/**
* Multiplies two matrices A and B seuqentially
*/
void mult_seq(long *result, long *a, long *b, int height, int width, int widthA);
void mult_seq_speed(long *result, long *a, long *b, int height, int width, int widthA);
void mult_seq_speed_cache(long *result, long *a, long *b, int height, int width, int widthA);
/**
* Multiplies two matrices A and B in parallel
*/
void mult_basic(long *result, long *a, long *b, int height, int width, int widthA);
void mult_basic_threads_size(long *result, long *a, long *b, int height, int width, int widthA, int threads);
void mult_3for(long *result, long *a, long *b, int height, int width, int widthA);
void mult_basic_private(long *result, long *a, long *b, int height, int width, int widthA);
void mult_basic_private_shared(long *result, long *a, long *b, int height, int width, int widthA);
void mult_basic_private_private(long *result, long *a, long *b, int height, int width, int widthA);
void mult_basic_private_switchedloops(long *result, long *a, long *b, int height, int width, int widthA);
void mult_collapse3(long *result, long *a, long *b, int height, int width, int widthA);
void mult_collapse2(long *result, long *a, long *b, int height, int width, int widthA);
void mult_collapse2_private(long *result, long *a, long *b, int height, int width, int widthA);
void mult_collapse2_private_cache(long *result, long *a, long *b, int height, int width, int widthA);
void mult_collapse2_private_cache_threads_size(long *result, long *a, long *b, int height, int width, int widthA, int threads);
void mult_reduction(long *result, long *a, long *b, int height, int width, int widthA);
void mult_reduction_threads_size(long *result, long *a, long *b, int height, int width, int widthA, int threads);
void mult_reduction_inner(long *result, long *a, long *b, int height, int width, int widthA);
void mult_reduction_inner_collapse(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_static(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_static_chunk(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_static_chunk_dynamic(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_dynamic(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_dynamic_chunk(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_guided(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_guided_chunk(long *result, long *a, long *b, int height, int width, int widthA);
void mult_schedule_auto(long *result, long *a, long *b, int height, int width, int widthA);