DALI Environment Variables#
This page lists environment variables used by DALI. Note that those variables often control internal behavior of DALI and are subject to change without notice.
Memory management#
DALI_USE_DEVICE_MEM_POOL#
Values: 0, 1
Default: 1
If nonzero, DALI uses a memory pool for device memory; otherwise plain cudaMalloc
is used.
Warning
Specify 0 for debugging only, doing so will drastically degrade performace.
DALI_USE_VMM#
Values: 0, 1
Default: 1
If nonzero, DALI uses a memory pool based on virtual memory management functions
(cuMemCreate
, cuMemMap
, etc) when possible. If disabled, DALI will use a pool based on
cudaMalloc.
DALI_USE_PINNED_MEM_POOL#
Values: 0, 1
Default: 1
If nonzero, DALI uses a memory pool for device-accessible host memory; otherwise plain
cudaMallocHost
is used.
Warning
Specify 0 for debugging only, doing so will drastically degrade performace.
DALI_USE_CUDA_MALLOC_ASYNC#
Values: 0, 1
Default: 0
If enabled, DALI will use cudaMallocAsync
as the device memory allocation mechanism.
This flag is not compatible with DALI_USE_DEVICE_MEM_POOL=0
and explicitly enabling
DALI_USE_VMM=1
.
DALI_MALLOC_POOL_THRESHOLD#
Values: >= 0, optionally followed by k for KiB or M for MiB.
Default: 0
If nonzero, dali uses an internal memory pool for regular host memory below the specified size.
DALI_GDS_CHUNK_SIZE#
Values: powers of 2, 4k to 16M, with optional k or M suffix
Default: 2M
The size of memory chunk used by GPU Direct Storage in DALI.
DALI_HOST_BUFFER_SHRINK_THRESHOLD#
Values: floating point, 0..1
Default: 0.5
If set, buffers resized to below the given fraction of capacity will be shrunk to fit the data.
DALI_BUFFER_GROWTH_FACTOR#
Values: floating point, >=1
Default: 1.1
When greather than 1, buffers are allocated with allowance to avoid frequent reallocation.
DALI_HOST_BUFFER_GROWTH_FACTOR#
Specialized version of DALI_BUFFER_GROWTH_FACTOR for CPU buffers only.
DALI_DEVICE_BUFFER_GROWTH_FACTOR#
Specialized version of DALI_BUFFER_GROWTH_FACTOR for GPU buffers only.
DALI_RESTRICT_PINNED_MEM#
Values: 0, 1
Default: 0
If enabled, DALI will reduce the use of pinned host memory; useful on systems where the amount of pinned memory is restricted (e.g. WSL).
Image decoding#
DALI_MAX_JPEG_SCANS#
Values: >= 1
Default: 256
The maximum number of progressive JPEG scans. Specify lower values to mitigate maliciously malformed JPEGs, designed for denial of service attacks.
DALI_NVIMGCODEC_LOG_LEVEL#
Values: 1..5
Default: 2
The verbosity of logs produced by nvJPEG
Miscellaneous#
DALI_OPTIMIZE_GRAPH#
Values: 0, 1
Default: 1
For debugging only; if set to 0, all DALI graph optimizations are disabled.
DALI_ENABLE_CSE#
Values: 0, 1
Default: 1
For debugging only; if set to 0, the common subexpression elimination (CSE) graph optimization is disabled. If DALI_OPTIMIZE_GRAPH is disabled, this flag has no effect.
DALI_USE_EXEC2#
Values: 0, 1
Default: 0
If set, DALI will use the dynamic executor (as if exec_dynamic=True
was set in the Pipeline)
whenever the default asychronous pipelined execution with uniform queue size is specified.
Enabling the dynamic executor can potentially improve memory consumption.
Note
This flag is used in the backend only; the Python frontend is unaware of it and doesn’t enable
the new features and optimizations that would be enabled by specifying exec_dynamic=True
in the pipeline.
DALI_AFFINITY_MASK#
Values: comma-separated list of CPU IDs
Default: empty
Sets the thread affinity. The number of entries in the list must match the num_threads
passed
to the pipeline.
Requires NVML.
DALI_PRELOAD_PLUGINS#
Values: colon-separated list of paths
Default: empty
If specified, DALI will preload plugins specified in this list.
DALI_DISABLE_NVML#
Values: 0, 1
Default: 0
If set, DALI doesn’t try to use NVML. Useful on systems without NVML support, e.g. WSL2.
Testing#
DALI_EXTRA_PATH#
Values: path
Default: empty
The path to where the contents of DALI_extra repository reside. Necessary to run DALI tests.