OpenCV 许多底层行为依赖环境变量来控制,尤其是在启用 OpenCL 加速时,正确配置可以大幅提升性能——当然,配错了也可能导致崩溃或效果退化。这里整理出主要环境变量,附上默认值和简短说明,方便线上排障或调优时查阅。
OpenCL 运行时配置
这些变量直接控制 OpenCL 设备选择、内核构建和缓存,是日常最可能用到的。
| 变量名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
OPENCV_OPENCL_RUNTIME | 路径 或 disabled | OpenCL 运行时库路径(如 OpenCL.dll、libOpenCL.so) | |
OPENCV_OPENCL_DEVICE | 字符串 或 disabled | 指定 OpenCL 设备,格式 <Platform>:<CPU|GPU|ACCELERATOR|nothing=GPU/CPU>:<deviceName>,例如 AMD:GPU: | |
OPENCV_OPENCL_RAISE_ERROR | 布尔 | false | OpenCL 内核准备/执行失败时抛出异常(发行版有效) |
OPENCV_OPENCL_ABORT_ON_BUILD_ERROR | 布尔 | false | 内核编译失败时直接中止 |
OPENCV_OPENCL_CACHE_ENABLE | 布尔 | true | 启用内核缓存 |
OPENCV_OPENCL_CACHE_WRITE | 布尔 | true | 允许写入缓存,否则缓存只读 |
OPENCV_OPENCL_CACHE_LOCK_ENABLE | 布尔 | true | 使用 .lock 文件同步多进程对缓存的访问 |
OPENCV_OPENCL_CACHE_CLEANUP | 布尔 | true | 自动删除旧缓存条目 |
OPENCV_OPENCL_VALIDATE_BINARY_PROGRAMS | 布尔 | false | 加载二进制内核时进行校验 |
OPENCV_OPENCL_DISABLE_BUFFER_RECT_OPERATIONS | 布尔 | Apples: true;其他: false | 非连续数据下载的解决方案 |
OPENCV_OPENCL_BUILD_EXTRA_OPTIONS | 字符串 | 传递给内核编译器的额外选项 | |
OPENCV_OPENCL_ENABLE_MEM_USE_HOST_PTR |


