File: MIGraphX-dev-env-vars.rst

package info (click to toggle)
migraphx 7.1.1-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 32,108 kB
  • sloc: cpp: 212,477; python: 26,075; sh: 307; xml: 199; makefile: 61; ansic: 16
file content (667 lines) | stat: -rw-r--r-- 23,351 bytes parent folder | download | duplicates (2)
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
.. meta::
  :description: MIGraphX environment variables for developers
  :keywords: MIGraphX, code base, contribution, developing, env vars, environment variables

========================================================
MIGraphX environment variables
========================================================

The MIGraphX environment variables can be used by contributors to the MIGraphX code base to customize tuning, verification, and tracing.


Model performance tunable variables
************************************

Model performance tunable variables change the compilation behavior of a model. These are the most commonly used variables.
 
.. list-table:: 
  :widths: 40 60
  :header-rows: 1

  * - Environment variable
    - Values
  
  * - | ``MIGRAPHX_ENABLE_NHWC``
      | Forces the model to use the NHWC layout.
      
    - | ``1``: Forces the use of the NHWC layout.
      | ``0``: Returns to default behavior.

      | Default: The use of the NHWC layout isn't forced.

  * - | ``MIGRAPHX_DISABLE_MLIR``
      | When set, the rocMLIR library won't be used.
      
    - | ``1``: The rocMLIR library won't be used.
      | ``0``: Returns to default behavior.

      | Default: The rocMLIR library is used.   

  * - | ``MIGRAPHX_ENABLE_CK``
      | When set, the Composable Kernel library is used. 
      
    - | Use with ``MIGRAPHX_DISABLE_MLIR = 1``.
      
      | ``1``: The Composable Kernel library is used.
      | ``0``: Returns to default behavior.

      | Default: Composable Kernel library isn't used.

  * - | ``MIGRAPHX_SET_GEMM_PROVIDER``
      | Sets the GEMM provider to be either rocBLAS or hipBLASlt.
      
    - | ``hipblaslt``: hipBLASLt is used as the GEMM provider.
      | ``rocblas``: rocBLAS is used as the GEMM provider.

      | Default: ``rocblas`` on gfx90a; ``hipblaslt`` on all other architectures.

  * - | ``MIGRAPHX_DISABLE_LAYERNORM_FUSION``
      | When set, layernorm fusion isn't used.
      
    - | ``1``: Layernorm fusion won't be used.
      | ``0``: Returns to default behavior.

      | Default: Layernorm fusion is used.
  
  * - | ``MIGRAPHX_DISABLE_MIOPEN_POOLING``   
      | When set, MIGraphX pooling is used instead of MIOpen pooling.
      
    - | ``1``: Use MIGraphX pooling.
      | ``0``: Returns to default behavior.

      | Default: MIOpen pooling is used.

  * - | ``MIGRAPHX_USE_FAST_SOFTMAX``
      | Turns on fast softmax optimization to speed up softmax computations.
      
    - | ``1``: Turns on Softmax optimization.
      | ``0``: Returns to default behavior.

      | Default: Softmax optimization is turned off.

  * - | ``MIGRAPHX_DISABLE_FP32_SOFTMAX``
      | Disables upcasting to fp32 when computing softmax for lower precision graphs.
      
    - | ``1``: Disables forcing full precision computation of softmax
      | ``0``: Returns to default behavior.

      | Default: Upcasting to FP32 is turned on.

  * - | ``MIGRAPHX_MLIR_USE_SPECIFIC_OPS``
      | Specifies the MLIR operations to use regardless of GPU architecture.  
      
    - | Takes a comma-separated list of operations. Operations can be any of the following:
      
      | ``attention``: Use attention fusion. This is used by default on MI300, but must be specified on other architectures.

      | ``convolution``: Use MLIR generated kernels for all convolutions. MIOpen is used by default otherwise.

      | ``convolution_backwards``: Use MLIR generated kernels for backward-convolution. MIOpen is used by default otherwise.
      
      | ``dot``: Use MLIR generated kernels for all GEMMs. hipBLASlt is used otherwise.
      
      | ``fused_convolution``: Use MLIR generated kernels for convolutions when doing so enables extra fusions.
      
      | ``fused_dot``: Use MLIR generated kernels for GEMMs when doing so enables extra fusions.
      
      | ``fused``: Equivalent to setting both ``fused_dot`` and ``fused_convolution``.
      
      | For example: ``MIGRAPHX_MLIR_USE_SPECIFIC_OP=fuse, convolution,dot``.
      
      | A tilde (``~``) can be used to negate an operation.

      | For example, setting ``MIGRAPHX_MLIR_USE_SPECIFIC_OP=~convolution`` specifies that MLIR generated kernels should never be used.
      
  * - | ``MIGRAPHX_MLIR_TUNE_EXHAUSTIVE``
      | When set, exhaustive tuning for MLIR is used to find the optimal configuration.
      
    - | ``1``: Exhaustive tuning is used.
      | ``0``: Returns to default behavior.

      | Default: No MLIR tuning is used.

  * - | ``MIGRAPHX_ENABLE_HIP_GEMM_TUNING``
      | When set, exhaustive tuning for hipBLASLt is used to find the optimal configuration.

    - | ``1``: Exhaustive tuning is used.
      | ``0``: Returns to default behavior.

      | Default: Exhaustive hipBLASLt tuning isn't used.

  * - | ``MIGRAPHX_ENABLE_MLIR_INPUT_FUSION``
      | Turns on input fusions in MLIR.
      
    - | ``1``: Turns on input fusions.  
      | ``0``: Returns to default behavior.

      | Default: Input fusions are turned off.

  * - | ``MIGRAPHX_ENABLE_MLIR_REDUCE_FUSION``
      | Turns on reduction fusions in MLIR.
    
    - | ``1``: Turns on reduction fusions.
      | ``0``: Returns to default behavior.

      | Default: Reduction fusions are turned off.

  * - | ``MIGRAPHX_ENABLE_MLIR_GEG_FUSION``
      | Turns on GEMM+GEMM fusions in MLIR.
    
    - | ``1``: Turns on G+G fusions.
      | ``0``: Returns to default behavior.

      | Default: GEMM+GEMM fusions are turned off.

  * - | ``MIGRAPHX_MLIR_ENABLE_SPLITK``
      | Turns on Split-k performance configurations during MLIR tuning.
      
    - | ``1``: Turns on Split-k performance configurations.
      | ``0``: Returns to default behavior.

      | Default: Split-k performance configurations are turned off.

  * - | ``MIGRAPHX_DISABLE_FP16_INSTANCENORM_CONVERT``
      | When set, FP16 is not converted to FP32 in the ``InstanceNormalization`` ONNX operator. 

    - | ``1``: FP16 is not converted to F32.
      | ``0``: Returns to default behavior.
    
      | Default: FP16 is converted to F32.

  * - | ``MIGRAPHX_ENABLE_REWRITE_DOT``
      | When set, the ``rewrite_dot`` pass is run.
            
    - | ``1``: Runs the ``rewrite_dot`` pass
      | ``0``: Returns to default behavior.

      | Default: The ``rewrite_dot`` pass isn't run.

  * - | ``MIGRAPHX_SPLIT_REDUCE_SIZE``
      | Minimum size of a reduction to perform a split reduce. 
      
    - | The minimum size must be an integer. 
    
      | Set to ``-1`` to disable split reduce.

  * - | ``MIGRAPHX_COPY_LITERALS``
      | When set, literals won't be stored on the GPU but will only be copied over when needed.    
    
    - | ``1``: Literals are copied over to the GPU as needed.
      | ``0``: Returns to default behavior.

      | Default: Literals are stored on the GPU.

  * - | ``MIGRAPHX_VERIFY_ENABLE_ALLCLOSE``
      | When set, the range tolerance is verified using ``allclose``.

    - | ``1``: The range tolerance is verified using ``allclose``. 
      | ``0``: Returns to the default behavior.

      | Default: Range tolerance isn't verified.
                                             
  * - | ``MIGRAPHX_LOG_CK_GEMM``
      | Turns on printing of Composable Kernel GEMM traces.

    - | ``1``: Composable Kernel GEMM traces will be printed.
      | ``0``: Returns to default behavior.

      | Default: Composable Kernel GEMM traces aren't printed.

  * - | ``MIGRAPHX_CK_DEBUG``
      | When set, ``-DMIGRAPHX_CK_CHECK=1`` is added to the Composable Kernel operator compilation options.

    - | ``1``: ``-DMIGRAPHX_CK_CHECK=1`` is added to the compilation options.
      | Default: Compilation is run without ``-DMIGRAPHX_CK_CHECK=1``.

  * - | ``MIGRAPHX_TUNE_CK``
      | Turns on tuning for composable kernels.

    - | ``1``: Composable kernel tuning is done.
      | ``0``: Returns to default behavior.

      | Default: No tuning is done for composable kernels.

  * - | ``MIGRAPHX_REWRITE_LRN``
      | Turns on LRN-to-pooling lowering in the ``rewrite_pooling`` pass.

      
    - | ``1``: Turns on LRN-to-pooling lowering.
      | ``0``: Returns to default behavior.

      | Default: LRN-to-pooling lowering is turned off.
               
Matching
**********

Debug settings for matchers. Matchers are responsible for finding optimizations in the graph compilation stage.

.. list-table:: 
  :widths: 40 60
  :header-rows: 1

  * - Environment variable
    - Values

  * - | ``MIGRAPHX_TRACE_MATCHES``
      | When set, prints the name of matchers that have found a valid pattern match. 

    - | ``1``: Prints the name of the matchers that have found a valid match.
      | ``2``: When used with ``MIGRAPHX_TRACE_MATCHES_FOR``, prints the names of matchers that have been tried but which have not necessarily found a match.
      | ``0``: Returns to default behavior.

      | Default: Nothing is printed.

  * - | ``MIGRAPHX_TRACE_MATCHES_FOR``
      | Turns on the printing of traces for the specified matcher if a string is found in the matcher's ``file-name``, ``function-name``, or ``matcher-name``.

    - Takes a string to match.  
    
  * - | ``MIGRAPHX_VALIDATE_MATCHES``
      | When set, ``module.validate()`` is used to validate the module after finding matches.

    - | ``1``: Runs ``module.validate()``.
      | ``0``: Returns to default behavior.

      | Default: ``module.validate()`` isn't run.

  * - | ``MIGRAPHX_TIME_MATCHERS``
      | When set, prints the time spent on a matcher. This helps identify time-consuming patterns.
    
    - | ``1`: Prints the time spent on the matcher.
      | ``0``: Returns to default behavior.

      | Default: The time is not printed.


Pass controls
************************

Debug settings for passes.

.. list-table:: 
  :widths: 30 70
  :header-rows: 1

  * - Environment variable
    - Values

  * - | ``MIGRAPHX_TRACE_ELIMINATE_CONTIGUOUS``
      | Turns on the printing of debug statements for ``eliminate contiguous instruction`` passes.
    
    - | ``1``: Debug statements are printed for ``eliminate contiguous instructions`` passes.
      | ``0``: Returns to default behavior.

      | Default: Debug statements aren't printed for ``eliminate contiguous instructions`` passes.
      
  * - | ``MIGRAPHX_DISABLE_POINTWISE_FUSION``
      | When set, the ``fuse_pointwise compile`` pass isn't run.
    
    - | ``1``: The ``fuse_pointwise compile`` pass isn't run.
      | ``0``: Returns to default behavior.

      | Default: The ``fuse_pointwise compile`` pass is run.

  * - | ``MIGRAPHX_DEBUG_MEMORY_COLORING``
      | Turns on the printing of debug statements for the ``memory-coloring`` pass.

    - | ``1``: Debug statements for the ``memory-coloring`` pass are printed.
      | ``0``: Returns to default behavior.

      | Default: Debug statements for the ``memory-coloring`` pass aren't printed.

  * - | ``MIGRAPHX_TRACE_SCHEDULE``
      | Turns on the printing of debug statements for the ``schedule`` pass.

    - | ``1``: Debug statements for the ``schedule`` pass are printed.
      | ``0``: Returns to default behavior.

      | Default: Debug statements for the ``memory-coloring`` pass aren't printed.

  * - | ``MIGRAPHX_TRACE_PROPAGATE_CONSTANT``
      | Turns on tracing of instructions that have been replaced with a constant.
    
    - | ``1``: Instructions that have been replaced with a constant are traced.
      | ``0``: Returns to default behavior.

      | Default: Instructions that have been replaced with a constant aren't traced.
    
  * - | ``MIGRAPHX_DISABLE_DNNL_POST_OPS_WORKAROUND``
      | When set, the DNNL post-ops workaround isn't used.

    - | ``1``: The DNNL post-ops workaround ins't used.
      | ``0``: Returns to default behavior.

      | Default: The DNNL post-ops workaround is used.

  * - | ``MIGRAPHX_DISABLE_MIOPEN_FUSION``
      | When set, MIOpen fusions aren't used.

    - | ``1``: MIOpen fusions aren't used.
      | ``0``: Returns to default behavior.

      | Default: MIOpen fusions are used.

  * - | ``MIGRAPHX_DISABLE_SCHEDULE_PASS``
      | When set, the ``schedule`` pass isn't run.

    - | ``1``: The ``schedule`` pass isn't run.
      | ``0``: Returns to default behavior.

      | Default: The ``schedule`` pass is run.

  * - | ``MIGRAPHX_DISABLE_REDUCE_FUSION``
      | When set, the ``fuse_reduce`` pass isn't run.

    - | ``1``: The ``fuse_reduce`` pass isn't run.
      | ``0``: Returns to default behavior.

      | Default: The ``fuse_reduce`` pass is run.

  * - | ``MIGRAPHX_TRACE_PASSES``
      | Turns on printing of the compile passes and the program after the passes.

    - | ``1``: Prints the compile passes.
      | ``0``: Returns to the default behavior.

      | Default: The compile pass traces aren't printed.

  * - | ``MIGRAPHX_TIME_PASSES``
      | When set, the compile passes are timed.

    - | ``1``: Compile passes are timed.
      | ``0``: Returns to the default behavor.

      | Default: Compile passes aren't timed.

  * - | ``MIGRAPHX_DISABLE_PASSES``
      | Specifies passes that are to be skipped.  
      
    - | Takes a comma-separated list of passes. 
      | For example:
      | ``MIGRAPHX_DISABLE_PASSES=rewrite_pooling,rewrite_gelu``.
  

Compilation tracing
************************

.. list-table:: 
  :widths: 30 70
  :header-rows: 1

  * - Environment variable
    - Values

  * - | ``MIGRAPHX_TRACE_FINALIZE`` 
      | Turns on printing of graph instructions during the ``module.finalize()`` step.

    - | ``1``: Graph instructions will be printed.
      | ``0``: Returns to default behavior.

      | Default: Graph instructions won't be printed.

  * - | ``MIGRAPHX_TRACE_COMPILE`` 
      | Turns on graph compilation tracing.

    - | ``1``: Turns on graph compilation tracing.
      | ``0``: Returns to default behavior.

      | Default: Graph compilation isn't traced.
  
  * - | ``MIGRAPHX_TRACE_ONNX_PARSER``
      | Turns on node-by-node tracing for the ONNX parser. 
      
    - | ``1``: Node-by-node tracing is turned on.
      | ``0``: Returns to the default behavior.

      | Default: There is no node-by-node tracing of the ONNX parser.

  * - | ``MIGRAPHX_TRACE_EVAL``
      | Turns on model evaluation tracing and sets its tracing level. 
      
    - | ``1``: Print the run instructions and the time taken to complete the evaluation.
      | ``2``: Print the run instructions, time taken, a snippet of the output, and some statistics.
      | ``3``: Print the run instructions, time taken, a snippet of the output, and statistics for all output buffers.

  * - | ``MIGRAPHX_TRACE_QUANTIZATION``
      | Turns on the printing of the traces for passes run during quantization.  

    - | ``1``: Traces for passes run during quantization will be printed.
      | ``0``: Returns to default behavior.

      | Default: The traces for passes run during quantization won't be printed out.

  * - | ``MIGRAPHX_8BITS_QUANTIZATION_PARAMS``
      | Turns on the printing of the quantization parameters in the main module only.

    - | ``1``: Only the quantization parameters in the main module are printed.
      | ``0``: Returns to default behavior.

      | Default:

MLIR
**************************

.. list-table:: 
  :widths: 30 70
  :header-rows: 1

  * - Environment variable
    - Values

  * - | ``MIGRAPHX_TRACE_MLIR``
      | Sets the MLIR trace level.
      
    - | ``1``: MLIR trace failures are printed. 
      | ``2``: MLIR trace failures are printed and all MLIR operations are printed as well.

  * - | ``MIGRAPHX_MLIR_TUNING_DB``
      | The path of the tuning database. 

    - Takes the path to the tuning database.

  * - | ``MIGRAPHX_MLIR_TUNING_CFG``
      | Sets the path to the tuning configuration file to use with rocMLIR tuning scripts. 
      
    - | Takes the path to the configuration file.
      | For example: 
      | ``MIGRAPHX_MLIR_TUNING_CFG="path/to/config_file.cfg"``

  * - | ``MIGRAPHX_MLIR_TUNE_LIMIT``
      | Sets the maximum number of solutions available for MLIR tuning. 

    - | Takes an integer greater than 1.

  * - | ``MIGRAPHX_MLIR_DUMP_TO_MXR``
      | Sets the location to where the MXR files that the MLIR modules are written to are saved. 
      
    - | Takes the path to the directory where the files should be saved.
      | For example: 
      | ``MIGRAPHX_MLIR_DUMP_TO_MXR="/path/to/save_mxr_file/`` 

  * - | ``MIGRAPHX_MLIR_DUMP``
      | Sets the the location where the MLIR files that the MLIR modules are written to are saved.

    - | Takes the path to the directory where the files should be saved.
      | For example: 
      | ``MIGRAPHX_MLIR_DUMP="/path/to/save_mlir_file/``


Testing
**************************

.. list-table:: 
  :widths: 30 70
  :header-rows: 1

  * - Environment variable
    - Values

  * - | ``MIGRAPHX_TRACE_TEST_COMPILE``
      | Sets the target to be traced, and turns on printing of the compile trace for verify tests on the given target. 
      | This flag cannot be used if ``MIGRAPHX_TRACE_COMPILE`` is used.
      
    - | ``cpu``: Turns on traces for the CPU target. 
      | ``GPU``: Turns on traces for the GPU target. 
      |  Default: 

  * - | ``MIGRAPHX_TRACE_TEST``
      | When set, the reference and target programs are printed even if the verify tests pass.

    - | ``1``: The reference and target programs are printed when the verify tests pass.
      | ``0``: Returns to default behavior.

      | Default: Reference and target programs aren't printed if the verify tests pass.

  * - | ``MIGRAPHX_DUMP_TEST``
      | When set, the model that is being verified using ``test-verify`` is output to an MXR file. 

    - | ``1``: The model that is being verified is output to an MXR file.
      | ``0``: Returns to default behavior.

      | Default: The model isn't output to file.

  * - | ``MIGRAPHX_VERIFY_DUMP_DIFF``
      | When set, writes out the output of the test results, as well as the reference, when they differ.

    - | ``1``: Test results are written out when they differ.
      | ``0``: Returns to default behavior.

      | Default: The results and the reference aren't written out when they differ.
  
Advanced settings
**************************

.. list-table:: 
  :widths: 30 70
  :header-rows: 1

  * - Environment variable
    - Values

  * - | ``MIGRAPHX_TRACE_CMD_EXECUTE``
      | When set, commands run by the MIGraphX process will be printed.

    - | ``1``: Printing of commands is turned on.
      | ``0``: Returns to default behavior.

      | Default: Commands aren't printed.

  * - | ``MIGRAPHX_TRACE_HIPRTC``
      | When set, the HIPRTC options and C++ file used will be printed.
    
    - | ``1``: HIPRTC options and C++ file will be printed.
      | ``0``: Returns to default behavior.

      | Default: HIPRTC options and C++ file aren't printed.

  * - | ``MIGRAPHX_DEBUG_SAVE_TEMP_DIR``
      | When set, temporary directories won't be deleted.
    
    - | ``1``: Temporary directories aren't deleted.
      | ``0``: Returns to default behavior.

      | Default: Temporary directories are deleted.

  * - | ``MIGRAPHX_GPU_DEBUG``
      | When set, the ``-DMIGRAPHX_DEBUG`` option is used when compiling GPU kernels. ``-DMIGRAPHX_DEBUG`` enables assertions and source location capture.
  
    - | ``1``: The ``-DMIGRAPHX_DEBUG`` option is used when compiling GPU kernels.

      | Default: Compilation is run without ``-DMIGRAPHX_DEBUG``.

  * - | ``MIGRAPHX_GPU_DEBUG_SYM``
      | When set, the ``-g`` option is used when compiling HIPRTC for debugging purposes.

    - | ``1``: The ``-g`` option is used when compiling HIPRTC.

      | Default: Compilation is run without the ``-g`` option.

  * - | ``MIGRAPHX_GPU_DUMP_SRC``
      | The compiled HIPRTC source files is written out for further analysis.

    - | ``1``: HIPRTC source files are written out.
      | ``0``: Returns to default behavior.

      | Default: HIPRTC source files aren't written out.

  * - | ``MIGRAPHX_GPU_DUMP_ASM``
      | When set, the hip-clang assembly output is written out for further analysis.

    - | ``1``: The hip-clang assembly output is written out.
      | ``0``: Returns to default behavior.

      | Default: The hip-clang assembly output isn't written out.

  * - | ``MIGRAPHX_GPU_HIP_FLAGS``
      | When set, the hip-clang compiler appends these extra flags for compilation.

    - | Takes a valid string, a valid hip compile option, e.g. "-Wno-error".

      | Default: The compiler will not append any extra flags for compilation.

  * - | ``MIGRAPHX_GPU_OPTIMIZE``
      | Sets the GPU compiler optimization mode. 
  
    - | Takes a valid optimization mode such as ``O3``.
      | Default: No compiler optimization is used.

  * - | ``MIGRAPHX_GPU_COMPILE_PARALLEL``
      | Sets the number of threads to use for parallel GPU code compilation. 
      
    - | Takes a positive integer value.
      | Default: Number of threads is equal to number of processing units (`nproc`).

  * - | ``MIGRAPHX_TRACE_NARY``
      | When set, the nary device functions used during execution are printed out.

    - | ``1``: The nary device functions are printed out.
      | ``0``: Returns to default behavior.

      | Default: nary device functions aren't printed out.

  * - | ``MIGRAPHX_ENABLE_HIPRTC_WORKAROUNDS``
      | When set, the workarounds for known bugs in HIPRTC are used.

    - | ``1``: HIPRTC workarounds are used.
      | ``0``: Returns to default behavior.

      | Default: HIPRTC workarounds aren't used.

  * - | ``MIGRAPHX_ENABLE_NULL_STREAM``
      | Whem set, a null stream can be used for MIOpen and HIP stream handling.
  
    - | ``1``: A null stream can be used for stream handling. 
      | ``0``: Returns to default behavior.

      | Default: A null stream can't be used for stream handling.

  * - | ``MIGRAPHX_NSTREAMS``
      | Sets the number of HIP streams to use in the GPU. 
      
    - | Takes a positive integer.
      | Default: one stream will be used.

  * - | ``MIGRAPHX_TRACE_BENCHMARKING``
      | Sets the verbosity of benchmarking traces. 
      
    - | ``1``: Basic trace 
      | ``2``: Detailed trace 
      | ``3``: Compiled traces

  * - | ``MIGRAPHX_PROBLEM_CACHE``
      | Sets the JSON file that the problem cache will be saved to and loaded from. 
      
    - | Takes a fully qualified path to a valid JSON file. 
      | For example: 
      | ``MIGRAPHX_PROBLEM_CACHE="path/to/cache_file.json"``

  * - | ``MIGRAPHX_BENCHMARKING_BUNDLE``
      | Sets the number of configurations to run in a bundle during benchmarking. 
      
    - Takes a positive integer.

  * - | ``MIGRAPHX_BENCHMARKING_NRUNS``
      | Sets the number of timing runs for each configuration bundle being benchmarked. 
      
    - Takes a positive integer.