aboutsummaryrefslogtreecommitdiff
path: root/Carpet/LoopControl/param.ccl
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