Pytorchをデバッグモードでコンパイルする
2023/09/20 記載
pytorch-v2.4.1の場合。
デバッグモードでコンパイルする
cat ./tools/setup_helpers/env.pyを見ると
# hotpatch environment variable 'CMAKE_BUILD_TYPE'. 'CMAKE_BUILD_TYPE' always prevails over DEBUG or REL_WITH_DEB_INFO. if "CMAKE_BUILD_TYPE" not in os.environ: if check_env_flag("DEBUG"): os.environ["CMAKE_BUILD_TYPE"] = "Debug" elif check_env_flag("REL_WITH_DEB_INFO"): os.environ["CMAKE_BUILD_TYPE"] = "RelWithDebInfo" else: os.environ["CMAKE_BUILD_TYPE"] = "Release"
であるためDEBUG=ON環境変数を追加すればok。 例えば次のようにする。
DEBUG=ON BUILD_SPLIT_CUDA=ON USE_GLOG=ON USE_NUMPY=ON USE_CUDA=ON USE_MPI=ON CMAKE_C_COMPILER=$(which mpicc) CMAKE_CXX_COMPILER=$(which mpicxx) python setup.py build develop install
並列数の変更
コンパイルの並列数はMAX_JOBS環境変数を設定する。例えば2並列でコンパイルする場合は
MAX_JOBS=2 DEBUG=ON BUILD_SPLIT_CUDA=ON USE_GLOG=ON USE_NUMPY=ON USE_CUDA=ON USE_MPI=ON CMAKE_C_COMPILER=$(which mpicc) CMAKE_CXX_COMPILER=$(which mpicxx) python setup.py build develop install
2023/04/17 記載
デバッグモードでコンパイルする
pytorch/tools/setup_helpers/cmake.py に下記を追加。(ついでにCMAKE_VERBOSE_MAKEFILEも追加しています)
--- a/pytorch/tools/setup_helpers/cmake.py +++ b/pytorch/tools/setup_helpers/cmake.py @@ -305,6 +305,9 @@ class CMake: sys.exit(1) build_options.update(cmake__options) + build_options["CMAKE_BUILD_TYPE"] = os.getenv("CMAKE_BUILD_TYPE", "Release") + build_options["CMAKE_VERBOSE_MAKEFILE"] = os.getenv("CMAKE_VERBOSE_MAKEFILE", "0") + CMake.defines( args, PYTHON_EXECUTABLE=sys.executable,
コンパイル時にCMAKE_BUILD_TYPE=Debugをつければok。例えば次のようにする。
CMAKE_BUILD_TYPE=Debug BUILD_SPLIT_CUDA=ON USE_GLOG=ON USE_NUMPY=ON USE_CUDA=ON USE_MPI=ON CMAKE_C_COMPILER=$(which mpicc) CMAKE_CXX_COMPILER=$(which mpicxx) python setup.py build develop install