サブロウ丸

Sabrou-mal サブロウ丸

主にプログラミングと数学

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

関連