-
Notifications
You must be signed in to change notification settings - Fork 2
/
ocannl_config.example
132 lines (100 loc) · 5.23 KB
/
ocannl_config.example
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# This file lists all the current configurations. It can be used as documentation
# or as a template for writing `ocannl_config` files. Config names must be prefixed
# by `ocannl_`, except in `ocannl_config` files where it is optional. The names are
# case-insensitive. The configuration is read from a few sources, from highest priority:
# 1. Commandline arguments.
# 2. Environment variables.
# 3. `ocannl_config` files.
# 4. Defaults hard-coded at use sites in the source code.
#
# Only one `ocannl_config` file is used per run, searched for in the current directory
# and in ancestor directories. The source of the `log_level` config is always printed,
# the sources of other configs are printed when the log level > 0.
# The configuration values below are (one of) the defaults.
# Configurations that are stored as `Utils.settings`:
# The log level, for ppx_minidebug and with a few other uses in OCANNL.
log_level=1
# If `log_level` is at least 2 and this is true, the generated code will contain
# printf statements, whose output is then (typically) integrated into ppx_minidebug logs.
debug_log_from_routines=false
# If true, various intermediate representation files for the compiled code are generated
# (or not removed). Moreover, if log level is at least 2, the generated binaries will
# contain debug symbols for debugging with `gdb`, `cuda-gdb` etc.
output_debug_files_in_build_directory=false
# If given, the integer seed to initialize the randomness library with.
fixed_state_for_init=
# For printing tensors, etc.
print_decimals_precision=2
# Complains if a half-precision tensor node is a constant with absolute value exceeding this.
check_half_prec_constants_cutoff=16384.0
# If true, [from_host] and [to_host] happen automatically in specific situations:
# - When a host array is about to be read, we transfer to host from the context that most
# recently updated the node.
# - When a routine is about to be run, we transfer the routine's inputs from host to the
# routine's context if the host array was not yet transfered since its creation or most
# recent modification.
automatic_host_transfers=true
# Other configurations:
# If true, stdout capturing is disabled, so some logs meant for the ppx_minidebug log files
# (in particular CUDA logs) remain on the stdout.
#
# NOTE: current implementation of stdout capture loses information on channel
# buffering overflows, so it is important to verify with this setting if one gets
# sufficient information in the logs files.
never_capture_stdout=false
# If set and relevant, it's the `CU_LIMIT_PRINTF_FIFO_SIZE` CUDA configuration.
cuda_printf_fifo_size=
# The `-O` argument to the compiler executable for the `cc` backend.
cc_backend_optimization_level=3
# The `cc` backend compiler executable name.
cc_backend_compiler_command=cc
# The `-O` argument to `gcc` for the `gcc` backend (using gccjit).
gccjit_backend_optimization_level=3
# Only tensor nodes with up to this many visits per array cell (in a dedicated interpreter)
# can be inlined. Values worth considering: 0 (disables inlining) to 3.
virtualize_max_visits=1
# Truncate longer axes to this many dimensions in the generic optimizer's interpreter.
virtualize_max_tracing_dim=5
# If `true`, tensor nodes will by default not be hosted.
enable_device_only=true
# If true, scalar constant expressions will always be inlined.
inline_scalar_constexprs=true
# The random number library. Options: `stdlib` -- `Base.Random`;
# `for_tests` -- simplistic randomness with 32 bit seed, focused on reproducibility.
randomness_lib=stdlib
# Low-level-code identifier syntax. Options: heuristic, name_and_label, name_only.
ll_ident_style=heuristic
# For ppx_minidebug non-flushing backends, when non-empty, enables snapshotting of ongoing
# logging into a file, with the given frequency.
snapshot_every_sec=
# Whether ppx_minidebug entries should be tagged by time information.
# Options: not_tagged, clock, elapsed (relative to start of the program).
time_tagged=elapsed
# Whether ppx_minidebug should print the time span of each entry, and in what units.
# Options: not_reported, seconds, milliseconds, microseconds, nanoseconds.
elapsed_times=not_reported
# For ppx_minidebug, how file locations should be presented. Options:
# no_location, file_only, beg_line, beg_pos, range_line, range_pos.
location_format=beg_pos
# The ppx_minidebug logging backend (i.e. format). Options: text, html, markdown, flushing.
debug_backend=html
# For ppx_minidebug: a prefix for file positions relative to the project root.
# A more elaborate example:
# hyperlink_prefix=vscode://file//wsl.localhost/ubuntu-24.04/home/lukstafi/ocannl/
hyperlink_prefix=./
# For ppx_minidebug: whether to print IDs for log entries.
logs_print_entry_ids=false
# For ppx_minidebug.
logs_verbose_entry_ids=false
# For ppx_minidebug, whether logging from the main domain, `Domain.is_main ()`,
# should be directed to stdout rather than to a file.
log_main_domain_to_stdout=false
# For ppx_minidebug Table of Contents.
toc_entry_minimal_depth=
toc_entry_minimal_size=
# The span is expressed in units: ns, us or ms.
toc_entry_minimal_span=
# For ppx_minidebug: `|`-separated list of terms to highlight in the logs.
debug_highlights=
# For ppx_minidebug: a pcre syntax regular expression to highlight in the logs.
debug_highlight_pcre=