blob: a501ed0e02ab6c5531c9fc2afe02f06280875212 (
plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
# Parameter definitions for thorn LoopControl
BOOLEAN verbose "Output some loop information at run time" STEERABLE=always
{
} "no"
BOOLEAN veryverbose "Output detailed debug information at run time" STEERABLE=always
{
} "no"
BOOLEAN selftest "Run a self test with every loop (expensive)" STEERABLE=always
{
} "no"
STRING statistics_filename "File name for LoopControl statistics" STEERABLE=always
{
"" :: "disable statistics output"
".+" :: "file name"
} "LoopControl-statistics"
SHARES: IO
USES STRING out_dir
PRIVATE:
KEYWORD initial_setup "Initial configuration" STEERABLE=always
{
"legacy" :: "Like a non-LoopControl loop"
"tiled" :: "Basic LoopControl setup"
} "tiled"
INT explore_eagerly_before_iteration "Try to explore the parameter space as much as possible before this iteration" STEERABLE=always
{
0:* :: ""
} 0
INT settle_after_iteration "Do not explore the parameter space any more at or after this iteration" STEERABLE=always
{
-1 :: "always continue exploring"
0:* :: ""
} -1
# NOTE:
# - Intel chips divide the D1 cache into two, one for each hyperthread.
# The cache is thus not shared!
BOOLEAN use_smt_threads "Place SMT threads close together" STEERABLE=always
{
} "yes"
BOOLEAN align_with_cachelines "Align innermost loops with cache line size" STEERABLE=always
{
} "yes"
INT tilesize_i "Tile size in i direction (in grid points) for loop tiling" STEERABLE=always
{
1:* :: ""
} 4
INT tilesize_j "Tile size in j direction (in grid points) for loop tiling" STEERABLE=always
{
1:* :: ""
} 4
INT tilesize_k "Tile size in k direction (in grid points) for loop tiling" STEERABLE=always
{
1:* :: ""
} 4
INT loopsize_i "Size of each thread's loop in i direction (in grid points) for multithreading" STEERABLE=always
{
1:* :: ""
} 8
INT loopsize_j "Size of each thread's loop in j direction (in grid points) for multithreading" STEERABLE=always
{
1:* :: ""
} 8
INT loopsize_k "Size of each thread's loop in k direction (in grid points) for multithreading" STEERABLE=always
{
1:* :: ""
} 8
|