DALI 环境变量#

此页面列出了 DALI 使用的环境变量。请注意,这些变量通常控制 DALI 的内部行为,如有更改,恕不另行通知。

内存管理#

DALI_USE_DEVICE_MEM_POOL#

值:0, 1

默认值:1

如果非零,DALI 将为设备内存使用内存池;否则将使用纯 cudaMalloc

警告

仅在调试时指定 0,这样做会大幅降低性能。

DALI_USE_VMM#

值:0, 1

默认值:1

如果非零,DALI 将在可能的情况下使用基于虚拟内存管理函数(cuMemCreatecuMemMap 等)的内存池。如果禁用,DALI 将使用基于 cudaMalloc 的池。

DALI_USE_PINNED_MEM_POOL#

值:0, 1

默认值:1

如果非零,DALI 将为设备可访问的主机内存使用内存池;否则将使用纯 cudaMallocHost

警告

仅在调试时指定 0,这样做会大幅降低性能。

DALI_USE_CUDA_MALLOC_ASYNC#

值:0, 1

默认值:0

如果启用,DALI 将使用 cudaMallocAsync 作为设备内存分配机制。此标志与 DALI_USE_DEVICE_MEM_POOL=0 不兼容,并且显式启用 DALI_USE_VMM=1

DALI_MALLOC_POOL_THRESHOLD#

值:>= 0,可选择后跟 k 表示 KiB 或 M 表示 MiB。

默认值:0

如果非零,dali 将对指定大小以下的常规主机内存使用内部内存池。

DALI_GDS_CHUNK_SIZE#

值:2 的幂,4k 到 16M,带有可选的 k 或 M 后缀

默认值:2M

GPU Direct Storage 在 DALI 中使用的内存块大小。

DALI_HOST_BUFFER_SHRINK_THRESHOLD#

值:浮点数,0..1

默认值:0.5

如果设置,调整大小到低于容量给定比例的缓冲区将缩小以适应数据。

DALI_BUFFER_GROWTH_FACTOR#

值:浮点数,>=1

默认值:1.1

当大于 1 时,将分配带有余量的缓冲区以避免频繁的重新分配。

DALI_HOST_BUFFER_GROWTH_FACTOR#

DALI_BUFFER_GROWTH_FACTOR 的专用版本,仅用于 CPU 缓冲区。

DALI_DEVICE_BUFFER_GROWTH_FACTOR#

DALI_BUFFER_GROWTH_FACTOR 的专用版本,仅用于 GPU 缓冲区。

DALI_RESTRICT_PINNED_MEM#

值:0, 1

默认值:0

如果启用,DALI 将减少对固定主机内存的使用;在固定内存量受限的系统(例如 WSL)上非常有用。

图像解码#

DALI_MAX_JPEG_SCANS#

值:>= 1

默认值:256

渐进式 JPEG 扫描的最大数量。指定较低的值以缓解恶意构造的 JPEG,这些 JPEG 旨在用于拒绝服务攻击。

DALI_NVIMGCODEC_LOG_LEVEL#

值:1..5

默认值:2

nvJPEG 生成的日志的详细程度

其他#

DALI_OPTIMIZE_GRAPH#

值:0, 1

默认值:1

仅用于调试;如果设置为 0,则禁用所有 DALI 图优化。

DALI_ENABLE_CSE#

值:0, 1

默认值:1

仅用于调试;如果设置为 0,则禁用公共子表达式消除 (CSE) 图优化。如果禁用 DALI_OPTIMIZE_GRAPH,则此标志无效。

DALI_USE_EXEC2#

值:0, 1

默认值:0

如果设置,当指定具有统一队列大小的默认异步流水线执行时,DALI 将使用动态执行器(如同在 Pipeline 中设置了 exec_dynamic=True)。启用动态执行器可能会提高内存消耗。

注意

此标志仅在后端使用;Python 前端不知道它,并且不启用通过在 pipeline 中指定 exec_dynamic=True 来启用的新功能和优化。

DALI_AFFINITY_MASK#

值:逗号分隔的 CPU ID 列表

默认值:空

设置线程亲和性。列表中的条目数必须与传递给 pipeline 的 num_threads 匹配。需要 NVML。

DALI_PRELOAD_PLUGINS#

值:冒号分隔的路径列表

默认值:空

如果指定,DALI 将预加载此列表中指定的插件。

DALI_DISABLE_NVML#

值:0, 1

默认值:0

如果设置,DALI 不会尝试使用 NVML。在没有 NVML 支持的系统(例如 WSL2)上非常有用。

测试#

DALI_EXTRA_PATH#

值:路径

默认值:空

指向 DALI_extra 存储库内容所在的路径。运行 DALI 测试所必需。