主にOpenCVが実行時/ビルド時に参照する環境変数の一覧
#contents
*実行時 [#n040d6bc]
-getenv関数が内部で使用されており、これにより環境変数を取得している
**ENV_OPENCV_DNN_TEST_DATA_PATH [#j1221e56]
-dnnモジュール
**ENV_OPENCV_TEST_DATA_PATH [#mc0de517]
-dnnモジュール
**GTEST_TEST_FILTER_ENV_VAR_ [#kbb664ee]
-tsモジュール
**OPENCV_CPU_DISABLE [#t9816557]
-coreモジュール
-用途: 特定のCPU命令群を無効化する
-使い方
OPENCV_CPU_DISABLE=SSE4.1;SSE4.2
-解説
- OpenCVでは、プログラム実行時にCPUが受け付ける拡張命令(SIMD命令)の可否をチェックし、内部でboolの配列haveとして保管する
- OPENCV_CPU_DISABLE環境変数を使うことで、このboolの配列の、特定の命令セットを上書きで無効化できる(3.3.0以降)
- 特に複数の命令セットで最適化されている場合はそれぞれの命令セットごとに最適化の効能を調べる場合に、再ビルドすることなくチェックできるので便利
- 環境変数に複数設定する場合は前述の用に;(セミコロン)でつなぐ。使えるセパレータ文字は,(カンマ)、;(セミコロン)の2種類
- 命令セットは以下の名前で指定する
- x86_64系列(SSE、AVX)
- MMX
- SSE
- SSE2
- SSE3
- SSSE3
- SSE4.1
- SSE4.2
- POPCNT
- FP16
- AVX
- AVX2
- FMA3
- AVX512F
- AVX512BW
- AVX512CD
- AVX512DQ
- AVX512ER
- AVX512IFMA
- AVX512PF
- AVX512VBMI
- AVX512VL
- ARM系
- NEON
- PowerPC系 (3.3.1以降)
- VSX
- 3.4.0まではセパレータにハイフンも使えたが、3.4.1以降は使えなくなった(AVX512命令がAVX512-SKXのように細分化され、名前の中にハイフンを含むため)
**OPENCV_DNN_TEST_DATA_PATH [#k173205a]
-dnnモジュール
**OPENCV_DSHOW_DEBUG [#k775085a]
-videoioモジュール
**OPENCV_DUMP_CONFIG [#u258c80c]
-coreモジュール
**OPENCV_FFMPEG_DLL_DIR [#qff85ae5]
-videoioモジュール
**OPENCV_FOR_THREADS_NUM [#e93402fb]
-coreモジュール
-parallell_forで並列化される部分の並列数
-設定されない場合はCPUの数で並列化される
-ただAndroidではデフォルト=2でハードコードされてる(環境変数で上書き可能)
**OPENCV_IPP [#nae7e7e7]
-coreモジュール
-IPPモジュールが実行するモジュールを実行時に選択できる
OPENCV_IPP=disabled|sse42|avx2|avx512
-ただしavx512は64bit環境下でのみ選べる
-複数の項目は指定できない。一つ選択すると、下位の命令セットも自動的に有効になる
--例:avx2を指定すると、sse42も自動的に有効になる
-IPPの命令セットはもっと細かく別れていて、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、AVX、AVX2、AVX512Fと多数ある。
-が、OpenCVでまとめて、指定できるのは前述の3つ+disabledのみ
**OPENCV_IPP_CHECK [#e1598ebc]
-tsモジュール
**OPENCV_LEGACY_WAITKEY [#we69f90f]
-highguiモジュール
**OPENCV_OPENCL_BUFFERPOOL_LIMIT [#g3f068a6]
-coreモジュール
**OPENCV_OPENCL_DEVICE [#ie0129bb]
-coreモジュール
-複数のOpenCLデバイスがあったときに、どれを優先的に利用するか、環境変数で指定する
<Platform>:<CPU|GPU|dgpu|igpu|ACCELERATOR|nothing=GPU/CPU>:<deviceName>
-のフォーマットで指定する
--例
--1番目のGPUを利用
:GPU:0
--GPUを使わず、CPUでOpenCLを走らせる
:CPU
--OpenCLを無効化
disabled
--platformに指定できるのは
---NVIDIA
---CUDA (NVIDIAを指定した時と同じ挙動)
---ARM
---Intel
---AMD
---など
**OPENCV_OPENCL_DEVICE_MAX_WORK_GROUP_SIZE [#zde90b76]
-coreモジュール
-device上で走るworkgroupの最大サイズを実行時に書き換える
-OpenCV 3.4.5から導入
**OPENCV_OPENCL_FORCE [#d331a4ae]
-coreモジュール
-内部で使われてる関数 isOpenCLForced がtrueを返すようになるが、isOpenCLForcedはOpenCV内でどこからも参照されてないため、無効な環境変数。
**OPENCV_OPENCL_HOST_PTR_BUFFERPOOL_LIMIT [#qcebc90c]
-coreモジュール
**OPENCV_OPENCL_PERF_CHECK_BYPASS [#je0400cb]
-coreモジュール
**OPENCV_OPENCL_PROGRAM_CACHE [#f6798aab]
-coreモジュール
**OPENCV_OPENCL_RAISE_ERROR [#fa79a892]
-coreモジュール
**OPENCV_OPENCL_RUNTIME [#a5549869]
-coreモジュール
-OpenCL.dllもしくはlibOpenCL.soをロードするためのパスを環境変数で指定できる
-disabledを指定すると、libOpenCL.soのロードを諦める
**OPENCV_OPENCL_SVM_BUFFERPOOL_LIMIT [#o7587642]
-coreモジュール
**OPENCV_OPENCL_SVM_CAPABILITIES_MASK [#ae6e632a]
-coreモジュール
**OPENCV_OPENCL_SVM_DISABLE [#x8dd1818]
-coreモジュール
**OPENCV_OPENCL_SVM_DISABLE_UMAT_USAGE [#o125fdcc]
-coreモジュール
**OPENCV_OPENCL_SVM_FORCE_UMAT_USAGE [#wd91b625]
-coreモジュール
**OPENCV_PERF_VALIDATION_DIR [#x344ced6]
-tsモジュール
**OPENCV_PYTHON_BINARY [#h6a0c9cc]
-tsモジュール
**OPENCV_TEGRA [#c63134c5]
-coreモジュール
-HAL(carotene)の利用を実行時に切り替えられる
-OPENCV_TEGRA=disabled と指定すると明示的にcaroteneライブラリの実行を迂回できる
-3系列のみで有効。4系列では、OPENCV_TEGRAを参照する部分が[[まるっと削除された。>https://github.com/opencv/opencv/commit/5b17a60dde5cb7706bc3b7f6caeb2dcb46850259]]
**OPENCV_TEMP_PATH [#z1cf95ac]
-coreモジュール
**OPENCV_TEST_DATA_PATH [#h1a0a362]
-tsモジュール
-opencv_extraのパスの置き場
-opencv_extraのリポジトリの直下のtestdataのパスを指定する
-例 /home/user/opencv_extra がリポジトリ場所だとしたら、 /home/user/opencv_extra/testdata を指定する
**OPENCV_TRACE [#v07c15ca]
-coreモジュール
**OPENCV_TRACE_DEPTH_OPENCV [#gbdd010d]
-coreモジュール
**OPENCV_TRACE_ITT_PARENT [#g1bbc59a]
-coreモジュール
**OPENCV_TRACE_LOCATION [#e3de89fe]
-coreモジュール
**OPENCV_TRACE_MAX_CHILDREN [#k12a270b]
-coreモジュール
**OPENCV_TRACE_MAX_CHILDREN_OPENCV [#v8c7a553]
-coreモジュール
**OPENCV_TRACE_SYNC_OPENCL [#nc35057d]
-coreモジュール
**OPENCV_VIDEOCAPTURE_DEBUG [#ye9d35b8]
-videoioモジュール
*ビルド時 [#ve712559]
**ANT_DIR [#v84f81f9]
**Atlas_ROOT_DIR [#z62df8d0]
**DESTDIR [#z2e60bf7]
**EIGEN_ROOT [#m10772db]
**GSTREAMER_DIR [#ve8e7a4f]
**HOME [#f21c52b3]
**IPP_ASYNC_ROOT [#d8c9efe4]
**MFX_HOME [#wf684df4]
**MKLROOT [#zaeae881]
**NVSDKCOMPUTE_ROOT [#aee1d18b]
**OPEN_NI_INSTALL_PATH [#fd7de535]
**OPEN_NI_INSTALL_PATH64 [#qc5a07ae]
**OPEN_NI_LIB [#o716607a]
**OPEN_NI_LIB64 [#l72742ca]
**OpenBLAS_HOME [#t3fecfb3]
**OpenBLAS [#t6906a72]
**OPENCV_DOWNLOAD_PATH [#i281e67d]
**OPENCV_IPP_PATH [#c6cdc15e]
**OPENNI2_INCLUDE [#m463681f]
**OPENNI2_INCLUDE64 [#z3a336fa]
**OPENNI2_LIB [#g36f8b02]
**OPENNI2_LIB64 [#h8f47441]
**OPENNI2_REDIST [#x51c9b28]
**PCSDK_DIR [#s9a78ddf]
**ProgramFiles [#pdbd89f1]
**SystemDrive [#o361de5f]
**TBBROOT [#t31c3475]
**VA_INTEL_IOCL_ROOT [#ge81d10f]
**VA_INTEL_MSDK_ROOT [#o4e0b257]
*コードのリビジョン [#h1f24089]
-3.3.0-rc (git の ce6b06e)
[[:OpenCV]]