Move debug_util and python_util to torch/csrc/lazy (#72607)

Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/72607

since python isn't available from libtorch, most of lazy tensor
code can't depend on python.
separate python_util into libtorch_python library
make debug_util and IR dump work with or without python by providing
a default function for 'maybe getting python stacktrace' that returns
an empty stacktrace
use a registration mechanism on libtorch_python library load to update
the 'maybe' function to use the real python stacktrace getter

Test Plan:
OSS build tests:
- test_ptltc by itself works
- LTC_SAVE_TENSORS_FILE=log test_ptltc works, and log contains
empty stacktrces
- python examply.py by itself works
- LTC_SAVE_TENSORS_FILE=log test_ptltc works, and log contains
real stacktraces

fbcode build: rely on CI to run test/lazy

Reviewed By: desertfire

Differential Revision: D34115046

fbshipit-source-id: 8d6222963c146da36b3c1b5ff8a638bbc3f1442e
(cherry picked from commit 3717688adee1bba1314640f93594181e8a2b3831)
This commit is contained in:
Will Constable
2022-02-11 09:54:34 -08:00
committed by PyTorch MergeBot
parent 50770b9e19
commit 328cfd50e7
10 changed files with 308 additions and 5 deletions

View File

@ -0,0 +1,15 @@
#pragma once
#include <c10/macros/Export.h>
#include <c10/util/Optional.h>
#include <torch/csrc/lazy/core/ir_metadata.h>
#include <vector>
namespace torch {
namespace lazy {
c10::optional<SourceLocation> TORCH_API GetPythonFrameTop();
std::vector<SourceLocation> TORCH_API GetPythonFrames();
} // namespace lazy
} // namespace torch