DebugInfo

#include <poputil/DebugInfo.hpp>

Poplibs generic debug info structure

Defines

SUPPORTS_FUNCTION_BUILTINS
DI_STR(S)
DI_XSTR(S)
DI_NUM_ARGS(...)
DI_NUM_ARGS_IMPL(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, N, ...)
DI_CONCAT_IMPL(x, y)
DI_MACRO_CONCAT(x, y)
DI_KEY_VALUE_ARG_0()
DI_KEY_VALUE_ARG_1(T)
DI_KEY_VALUE_ARG_2(T, ...)
DI_KEY_VALUE_ARG_3(T, ...)
DI_KEY_VALUE_ARG_4(T, ...)
DI_KEY_VALUE_ARG_5(T, ...)
DI_KEY_VALUE_ARG_6(T, ...)
DI_KEY_VALUE_ARG_7(T, ...)
DI_KEY_VALUE_ARG_8(T, ...)
DI_KEY_VALUE_ARG_9(T, ...)
DI_KEY_VALUE_ARG_10(T, ...)
DI_KEY_VALUE_ARG_11(T, ...)
DI_KEY_VALUE_ARG_12(T, ...)
DI_KEY_VALUE_ARG_13(T, ...)
DI_KEY_VALUE_ARG_14(T, ...)
DI_KEY_VALUE_ARG_15(T, ...)
DI_KEY_VALUE_ARG_16(T, ...)
DI_KEY_VALUE_ARG(...)
DI_ARGS(...)
namespace poputil

General utility functions for building graphs.

Functions

template<typename T>
poplar::ProfileValue toProfileValue(const T &t)
template<>
poplar::ProfileValue toProfileValue(const int &v)
template<>
poplar::ProfileValue toProfileValue(const unsigned int &v)
template<>
poplar::ProfileValue toProfileValue(const unsigned long &v)
template<>
poplar::ProfileValue toProfileValue(const unsigned char &v)
template<>
poplar::ProfileValue toProfileValue(const bool &v)
template<>
poplar::ProfileValue toProfileValue(const float &v)
template<>
poplar::ProfileValue toProfileValue(const double &v)
template<>
poplar::ProfileValue toProfileValue(const long long &v)
template<>
poplar::ProfileValue toProfileValue(const unsigned long long &v)
template<>
poplar::ProfileValue toProfileValue(const std::string &v)
template<>
poplar::ProfileValue toProfileValue(const poplar::ComputeSet &t)
template<>
poplar::ProfileValue toProfileValue(const poplar::OptionFlags &t)
template<>
poplar::ProfileValue toProfileValue(const poplar::program::Copy &t)
template<>
poplar::ProfileValue toProfileValue(const poplar::program::Sequence &t)
template<>
poplar::ProfileValue toProfileValue(const poplar::Tensor &t)
template<>
poplar::ProfileValue toProfileValue(const poplar::Type &t)
template<>
poplar::ProfileValue toProfileValue(const poplar::TensorCloneMethod &t)
template<typename T>
poplar::ProfileValue toProfileValue(const T *t)
template<typename T>
poplar::ProfileValue toProfileValue(T *const &t)
template<typename T>
poplar::ProfileValue toProfileValue(const std::vector<T> &vec)
template<>
poplar::ProfileValue toProfileValue(const std::vector<bool> &vec)
template<typename T>
poplar::ProfileValue toProfileValue(const poplar::ArrayRef<T> &vec)
template<typename T1, typename T2>
poplar::ProfileValue toProfileValue(const std::pair<T1, T2> &pair)
template<typename T, size_t N>
poplar::ProfileValue toProfileValue(const std::array<T, N> &array)
class ArgType

Public Functions

inline ArgType(const std::string &name, const poplar::ProfileValue &value)
inline ArgType(const std::pair<std::string, const poplar::ProfileValue> &p)

Public Members

std::string n
poplar::ProfileValue pv
class OpDebugInfo : public poplar::DebugInfo

Subclassed by poputil::PoplibsOpDebugInfo

Public Functions

OpDebugInfo(const poplar::DebugContext &debugContext, std::string api)
OpDebugInfo &operator=(const OpDebugInfo&) = delete
OpDebugInfo(const OpDebugInfo&) = delete
virtual ~OpDebugInfo() = default
void add(std::string name, const std::vector<ArgType> &args)
void add(std::string name, poplar::ProfileValue pv)
class PoplibsOpDebugInfo : public poputil::OpDebugInfo

Public Functions

PoplibsOpDebugInfo(const poplar::DebugContext &debugContext, const std::vector<ArgType> &args = {}, const std::string &api = "")
PoplibsOpDebugInfo &operator=(const PoplibsOpDebugInfo&) = delete
PoplibsOpDebugInfo(const PoplibsOpDebugInfo&) = delete
virtual ~PoplibsOpDebugInfo() = default
void addOutputs(const std::vector<ArgType> &outputs)
void addOutput(const poplar::Tensor &output)