/
usr
/
local
/
lib64
/
python3.6
/
site-packages
/
torch
/
include
/
c10
/
util
/
/usr/local/lib64/python3.6/site-packages/torch/include/c10/util
mkdir
upload
Name
Size
Mode
Actions
accumulate.h
4205
0644
edit
dl
rm
AlignOf.h
4835
0644
edit
dl
rm
Array.h
11354
0644
edit
dl
rm
ArrayRef.h
9058
0644
edit
dl
rm
Backtrace.h
364
0644
edit
dl
rm
BFloat16-inl.h
9222
0644
edit
dl
rm
BFloat16-math.h
5217
0644
edit
dl
rm
BFloat16.h
2372
0644
edit
dl
rm
Bitset.h
3414
0644
edit
dl
rm
C++17.h
13329
0644
edit
dl
rm
complex.h
17542
0644
edit
dl
rm
complex_math.h
10902
0644
edit
dl
rm
complex_utils.h
958
0644
edit
dl
rm
ConstexprCrc.h
6633
0644
edit
dl
rm
copysign.h
866
0644
edit
dl
rm
DeadlockDetection.h
1920
0644
edit
dl
rm
Deprecated.h
3579
0644
edit
dl
rm
either.h
6423
0644
edit
dl
rm
env.h
835
0644
edit
dl
rm
Exception.h
24723
0644
edit
dl
rm
ExclusivelyOwned.h
4759
0644
edit
dl
rm
Flags.h
10056
0644
edit
dl
rm
flat_hash_map.h
61655
0644
edit
dl
rm
FunctionRef.h
2301
0644
edit
dl
rm
Half-inl.h
8674
0644
edit
dl
rm
Half.h
18965
0644
edit
dl
rm
hash.h
5084
0644
edit
dl
rm
IdWrapper.h
2348
0644
edit
dl
rm
intrusive_ptr.h
35563
0644
edit
dl
rm
in_place.h
350
0644
edit
dl
rm
irange.h
2679
0644
edit
dl
rm
LeftRight.h
6016
0644
edit
dl
rm
llvmMathExtras.h
29168
0644
edit
dl
rm
Logging.h
11256
0644
edit
dl
rm
logging_is_google_glog.h
2031
0644
edit
dl
rm
logging_is_not_google_glog.h
8271
0644
edit
dl
rm
MathConstants.h
858
0644
edit
dl
rm
math_compat.h
7296
0644
edit
dl
rm
MaybeOwned.h
6689
0644
edit
dl
rm
Metaprogramming.h
15288
0644
edit
dl
rm
numa.h
696
0644
edit
dl
rm
Optional.h
35592
0644
edit
dl
rm
order_preserving_flat_hash_map.h
65482
0644
edit
dl
rm
overloaded.h
709
0644
edit
dl
rm
python_stub.h
56
0644
edit
dl
rm
qint8.h
472
0644
edit
dl
rm
qint32.h
319
0644
edit
dl
rm
quint4x2.h
366
0644
edit
dl
rm
quint8.h
320
0644
edit
dl
rm
Registry.h
12242
0644
edit
dl
rm
reverse_iterator.h
8796
0644
edit
dl
rm
ScopeExit.h
1345
0644
edit
dl
rm
signal_handler.h
3154
0644
edit
dl
rm
SmallBuffer.h
1243
0644
edit
dl
rm
SmallVector.h
34456
0644
edit
dl
rm
sparse_bitset.h
26511
0644
edit
dl
rm
StringUtil.h
4538
0644
edit
dl
rm
string_utils.h
3989
0644
edit
dl
rm
string_view.h
20189
0644
edit
dl
rm
tempfile.h
6029
0644
edit
dl
rm
ThreadLocal.h
3883
0644
edit
dl
rm
ThreadLocalDebugInfo.h
2603
0644
edit
dl
rm
thread_name.h
148
0644
edit
dl
rm
Type.h
607
0644
edit
dl
rm
TypeCast.h
6972
0644
edit
dl
rm
typeid.h
18793
0644
edit
dl
rm
TypeIndex.h
5251
0644
edit
dl
rm
TypeList.h
16901
0644
edit
dl
rm
TypeTraits.h
5368
0644
edit
dl
rm
Unicode.h
295
0644
edit
dl
rm
UniqueVoidPtr.h
4117
0644
edit
dl
rm
Unroll.h
667
0644
edit
dl
rm
variant.h
95182
0644
edit
dl
rm
win32-headers.h
858
0644
edit
dl
rm
Edit:
/usr/local/lib64/python3.6/site-packages/torch/include/c10/util/Logging.h
(11256B)
#ifndef C10_UTIL_LOGGING_H_ #define C10_UTIL_LOGGING_H_ #include <climits> #include <exception> #include <functional> #include <limits> #include <sstream> #include <c10/macros/Macros.h> #include <c10/util/Exception.h> #include <c10/util/Flags.h> #include <c10/util/StringUtil.h> // CAFFE2_LOG_THRESHOLD is a compile time flag that would allow us to turn off // logging at compile time so no logging message below that level is produced // at all. The value should be between INT_MIN and CAFFE_FATAL. #ifndef CAFFE2_LOG_THRESHOLD // If we have not defined the compile time log threshold, we keep all the // log cases. #define CAFFE2_LOG_THRESHOLD INT_MIN #endif // CAFFE2_LOG_THRESHOLD // Below are different implementations for glog and non-glog cases. #ifdef C10_USE_GLOG #include <c10/util/logging_is_google_glog.h> #else // !C10_USE_GLOG #include <c10/util/logging_is_not_google_glog.h> #endif // C10_USE_GLOG C10_DECLARE_int(caffe2_log_level); C10_DECLARE_bool(caffe2_use_fatal_for_enforce); // Some versions of GLOG support less-spammy version of LOG_EVERY_MS. If it's // not available - just short-circuit to the always working one one. // We define the C10_ name to avoid confusing other files #ifdef LOG_EVERY_MS #define C10_LOG_EVERY_MS(severity, ms) LOG_EVERY_MS(severity, ms) #else #define C10_LOG_EVERY_MS(severity, ms) LOG(severity) #endif // Same for LOG_FIRST_N #ifdef LOG_FIRST_N #define C10_LOG_FIRST_N(severity, n) LOG_FIRST_N(severity, n) #else #define C10_LOG_FIRST_N(severity, n) LOG(severity) #endif // Same for LOG_EVERY_N #ifdef LOG_EVERY_N #define C10_LOG_EVERY_N(severity, n) LOG_EVERY_N(severity, n) #else #define C10_LOG_EVERY_N(severity, n) LOG(severity) #endif namespace c10 { using std::string; // Functions that we use for initialization. C10_API bool InitCaffeLogging(int* argc, char** argv); C10_API void UpdateLoggingLevelsFromFlags(); [[noreturn]] C10_API void ThrowEnforceNotMet( const char* file, const int line, const char* condition, const std::string& msg, const void* caller = nullptr); [[noreturn]] C10_API void ThrowEnforceNotMet( const char* file, const int line, const char* condition, const char* msg, const void* caller = nullptr); [[noreturn]] C10_API inline void ThrowEnforceNotMet( const char* file, const int line, const char* condition, detail::CompileTimeEmptyString msg, const void* caller = nullptr) { ThrowEnforceNotMet(file, line, condition, "", caller); } [[noreturn]] C10_API void ThrowEnforceFiniteNotMet( const char* file, const int line, const char* condition, const std::string& msg, const void* caller = nullptr); [[noreturn]] C10_API void ThrowEnforceFiniteNotMet( const char* file, const int line, const char* condition, const char* msg, const void* caller = nullptr); [[noreturn]] C10_API inline void ThrowEnforceFiniteNotMet( const char* file, const int line, const char* condition, detail::CompileTimeEmptyString msg, const void* caller = nullptr) { ThrowEnforceFiniteNotMet(file, line, condition, "", caller); } constexpr bool IsUsingGoogleLogging() { #ifdef C10_USE_GLOG return true; #else return false; #endif } /** * A utility to allow one to show log info to stderr after the program starts. * * This is similar to calling GLOG's --logtostderr, or setting caffe2_log_level * to smaller than INFO. You are recommended to only use this in a few sparse * cases, such as when you want to write a tutorial or something. Normally, use * the commandline flags to set the log level. */ C10_API void ShowLogInfoToStderr(); C10_API void SetStackTraceFetcher(std::function<string(void)> fetcher); using EnforceNotMet = ::c10::Error; #define CAFFE_ENFORCE(condition, ...) \ do { \ if (C10_UNLIKELY(!(condition))) { \ ::c10::ThrowEnforceNotMet( \ __FILE__, __LINE__, #condition, ::c10::str(__VA_ARGS__)); \ } \ } while (false) #define CAFFE_ENFORCE_FINITE(condition, ...) \ do { \ if (C10_UNLIKELY(!(condition))) { \ ::c10::ThrowEnforceFiniteNotMet( \ __FILE__, __LINE__, #condition, ::c10::str(__VA_ARGS__)); \ } \ } while (false) #define CAFFE_ENFORCE_WITH_CALLER(condition, ...) \ do { \ if (C10_UNLIKELY(!(condition))) { \ ::c10::ThrowEnforceNotMet( \ __FILE__, __LINE__, #condition, ::c10::str(__VA_ARGS__), this); \ } \ } while (false) #define CAFFE_THROW(...) \ ::c10::ThrowEnforceNotMet(__FILE__, __LINE__, "", ::c10::str(__VA_ARGS__)) /** * Rich logging messages * * CAFFE_ENFORCE_THAT can be used with one of the "checker functions" that * capture input argument values and add it to the exception message. E.g. * `CAFFE_ENFORCE_THAT(Equals(foo(x), bar(y)), "Optional additional message")` * would evaluate both foo and bar only once and if the results are not equal - * include them in the exception message. * * Some of the basic checker functions like Equals or Greater are already * defined below. Other header might define customized checkers by adding * functions to caffe2::enforce_detail namespace. For example: * * namespace caffe2 { namespace enforce_detail { * inline EnforceFailMessage IsVector(const vector<int64_t>& shape) { * if (shape.size() == 1) { return EnforceOK(); } * return c10::str("Shape ", shape, " is not a vector"); * } * }} * * With further usages like `CAFFE_ENFORCE_THAT(IsVector(Input(0).dims()))` * * Convenient wrappers for binary operations like CAFFE_ENFORCE_EQ are provided * too. Please use them instead of CHECK_EQ and friends for failures in * user-provided input. */ namespace enforce_detail { template <typename T1, typename T2> std::string enforceFailMsgImpl(const T1& x, const T2& y) { return c10::str(x, " vs ", y); } template <typename T1, typename T2, typename... Args> std::string enforceFailMsgImpl(const T1& x, const T2& y, const Args&... args) { return c10::str(x, " vs ", y, ". ", args...); } template <typename Pred, typename T1, typename T2, typename... Args> void enforceThatImpl( Pred p, const T1& lhs, const T2& rhs, const char* file, int line, const char* expr, const void* caller, const Args&... args) { if (C10_UNLIKELY(!(p(lhs, rhs)))) { ::c10::ThrowEnforceNotMet( file, line, expr, ::c10::enforce_detail::enforceFailMsgImpl(lhs, rhs, args...), caller); } } #define CAFFE_ENFORCE_THAT_IMPL(op, lhs, rhs, expr, ...) \ ::c10::enforce_detail::enforceThatImpl( \ op, lhs, rhs, __FILE__, __LINE__, expr, nullptr, ##__VA_ARGS__) #define CAFFE_ENFORCE_THAT_IMPL_WITH_CALLER(op, lhs, rhs, expr, ...) \ ::c10::enforce_detail::enforceThatImpl( \ op, (lhs), (rhs), __FILE__, __LINE__, expr, this, ##__VA_ARGS__) } // namespace enforce_detail #define CAFFE_ENFORCE_THAT(cmp, op, lhs, rhs, ...) \ CAFFE_ENFORCE_THAT_IMPL(cmp, lhs, rhs, #lhs " " #op " " #rhs, ##__VA_ARGS__) #define CAFFE_ENFORCE_BINARY_OP(cmp, op, x, y, ...) \ CAFFE_ENFORCE_THAT_IMPL(cmp, x, y, #x " " #op " " #y, ##__VA_ARGS__) #define CAFFE_ENFORCE_EQ(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP(std::equal_to<void>(), ==, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_NE(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP(std::not_equal_to<void>(), !=, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_LE(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP(std::less_equal<void>(), <=, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_LT(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP(std::less<void>(), <, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_GE(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP(std::greater_equal<void>(), >=, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_GT(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP(std::greater<void>(), >, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_BINARY_OP_WITH_CALLER(cmp, op, x, y, ...) \ CAFFE_ENFORCE_THAT_IMPL_WITH_CALLER( \ cmp, x, y, #x " " #op " " #y, ##__VA_ARGS__) #define CAFFE_ENFORCE_EQ_WITH_CALLER(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP_WITH_CALLER( \ std::equal_to<void>(), ==, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_NE_WITH_CALLER(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP_WITH_CALLER( \ std::not_equal_to<void>(), !=, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_LE_WITH_CALLER(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP_WITH_CALLER( \ std::less_equal<void>(), <=, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_LT_WITH_CALLER(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP_WITH_CALLER(std::less<void>(), <, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_GE_WITH_CALLER(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP_WITH_CALLER( \ std::greater_equal<void>(), >=, x, y, ##__VA_ARGS__) #define CAFFE_ENFORCE_GT_WITH_CALLER(x, y, ...) \ CAFFE_ENFORCE_BINARY_OP_WITH_CALLER( \ std::greater<void>(), >, x, y, ##__VA_ARGS__) /** * Very lightweight logging for the first time API usage. It's beneficial for * tracking of individual functionality usage in larger applications. * * In order to ensure light-weightedness of logging, we utilize static variable * trick - LogAPIUsage will be invoked only once and further invocations will * just do an atomic check. * * Example: * // Logs caller info with an arbitrary text event, if there is a usage. * C10_LOG_API_USAGE_ONCE("my_api"); */ #define C10_LOG_API_USAGE_ONCE(...) \ C10_UNUSED static bool C10_ANONYMOUS_VARIABLE(logFlag) = \ ::c10::detail::LogAPIUsageFakeReturn(__VA_ARGS__); // API usage logging capabilities C10_API void SetAPIUsageLogger(std::function<void(const std::string&)> logger); C10_API void LogAPIUsage(const std::string& context); // PyTorch ddp usage logging capabilities // DDPLoggingData holds data that can be logged in applications // for analysis and debugging. Data structure is defined in // c10 directory so that it can be easily imported by both c10 // and torch files. struct DDPLoggingData { // logging fields that are string types. std::map<std::string, std::string> strs_map; // logging fields that are int64_t types. std::map<std::string, int64_t> ints_map; }; C10_API void SetPyTorchDDPUsageLogger( std::function<void(const DDPLoggingData&)> logger); C10_API void LogPyTorchDDPUsage(const DDPLoggingData& ddpData); namespace detail { // Return value is needed to do the static variable initialization trick C10_API bool LogAPIUsageFakeReturn(const std::string& context); } // namespace detail } // namespace c10 #endif // C10_UTIL_LOGGING_H_
Save
cmd:
run