Loading...
Searching...
No Matches
profiler.h File Reference
#include <atomic>
#include <cstdlib>
#include <chrono>
#include <iomanip>
#include <iostream>
#include <map>
#include <mutex>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
#include "opennn/core/device_backend.h"
#include "opennn/core/log.h"

Go to the source code of this file.

Classes

class  opennn::profiler::Stats
 
struct  opennn::profiler::Stats::Entry
 
struct  opennn::profiler::detail::ExitDump
 
class  opennn::profiler::ScopedTimer
 

Namespaces

namespace  opennn
 
namespace  opennn::profiler
 
namespace  opennn::profiler::detail
 

Macros

#define OPENNN_PROFILE_CAT_INNER(a, b)
 
#define OPENNN_PROFILE_CAT(a, b)
 
#define PROFILE_SCOPE_IMPL(name, sync)
 
#define PROFILE_SCOPE(name)
 
#define PROFILE_SCOPE_HOST(name)
 
#define PROFILE_SCOPE_BYTES(name, bytes)
 
#define PROFILE_SCOPE_NAMED(timer, name)
 

Functions

double opennn::profiler::peak_gbps ()
 
Stats & opennn::profiler::stats ()
 
std::atomic_bool & opennn::profiler::detail::enabled_flag ()
 
ExitDump & opennn::profiler::detail::exit_dump ()
 
bool opennn::profiler::is_enabled () noexcept
 
void opennn::profiler::set_enabled (bool enabled) noexcept
 

Macro Definition Documentation

◆ OPENNN_PROFILE_CAT

#define OPENNN_PROFILE_CAT ( a,
b )
Value:
#define OPENNN_PROFILE_CAT_INNER(a, b)
Definition profiler.h:281

◆ OPENNN_PROFILE_CAT_INNER

#define OPENNN_PROFILE_CAT_INNER ( a,
b )
Value:
a##b

◆ PROFILE_SCOPE

#define PROFILE_SCOPE ( name)
Value:
PROFILE_SCOPE_IMPL(name, true)
#define PROFILE_SCOPE_IMPL(name, sync)
Definition profiler.h:284

◆ PROFILE_SCOPE_BYTES

#define PROFILE_SCOPE_BYTES ( name,
bytes )
Value:
::opennn::profiler::is_enabled() ? string(name) : string{}, true, double(bytes))
Definition profiler.h:230
#define OPENNN_PROFILE_CAT(a, b)
Definition profiler.h:282

◆ PROFILE_SCOPE_HOST

#define PROFILE_SCOPE_HOST ( name)
Value:
PROFILE_SCOPE_IMPL(name, false)

◆ PROFILE_SCOPE_IMPL

#define PROFILE_SCOPE_IMPL ( name,
sync )
Value:
::opennn::profiler::is_enabled() ? string(name) : string{}, sync)

◆ PROFILE_SCOPE_NAMED

#define PROFILE_SCOPE_NAMED ( timer,
name )
Value:
::opennn::profiler::is_enabled() ? string(name) : string{}, true)
bool is_enabled() noexcept
Definition profiler.h:219