Loading...
Searching...
No Matches
cudnn_frontend_utilities.h File Reference
#include <cudnn_frontend.h>
#include "opennn/core/log.h"
#include <algorithm>
#include <filesystem>
#include <fstream>
#include <string_view>
#include "opennn/core/device_backend.h"
#include "opennn/core/cuda/energy_meter.h"
#include "opennn/core/profiler.h"
#include "opennn/core/string_utilities.h"
#include "opennn/core/tensor_types.h"

Go to the source code of this file.

Classes

struct  opennn::cudnn_frontend::GraphSlot
 

Namespaces

namespace  opennn
 
namespace  opennn::cudnn_frontend
 

Typedefs

using opennn::cudnn_frontend::VariantPack = unordered_map<shared_ptr<graph::Tensor_attributes>, void*>
 

Functions

int opennn::cudnn_frontend::device_sm_version ()
 
bool opennn::cudnn_frontend::frontend_enabled ()
 
bool opennn::cudnn_frontend::frontend_verbose ()
 
bool opennn::cudnn_frontend::bn_frontend_enabled ()
 
bool opennn::cudnn_frontend::deterministic_algorithms_enabled ()
 
bool opennn::cudnn_frontend::conv_energy_autotune_enabled ()
 
float opennn::cudnn_frontend::conv_energy_tolerance ()
 
int64_t opennn::cudnn_frontend::conv_energy_window_ms ()
 
bool opennn::cudnn_frontend::conv_energy_verbose ()
 
bool opennn::cudnn_frontend::conv_energy_stage_active ()
 
bool opennn::cudnn_frontend::graph_timing_enabled ()
 
profiler::Stats & opennn::cudnn_frontend::graph_timing_stats ()
 
template<typename TensorMap>
void opennn::cudnn_frontend::execute_graph (graph::Graph &graph, TensorMap &tensors, void *workspace, const string &what, const string &timing_label)
 
void * opennn::cudnn_frontend::shared_workspace (int64_t bytes)
 
template<typename GraphCache, typename Body>
bool opennn::cudnn_frontend::run_frontend (GraphCache &cache, const char *label, Body &&body)
 
void opennn::cudnn_frontend::throw_frontend_unavailable (const string &what)
 
int64_t opennn::cudnn_frontend::element_bytes (DataType_t dtype)
 
DataType_t opennn::cudnn_frontend::to_dtype (Type t)
 
vector< int64_t > opennn::cudnn_frontend::nhwc_strides (int64_t c, int64_t h, int64_t w)
 
shared_ptr< graph::Graph > opennn::cudnn_frontend::new_graph (Type dtype=Type::FP32)
 
shared_ptr< graph::Tensor_attributes > opennn::cudnn_frontend::nhwc_tensor (graph::Graph &graph, const char *name, int64_t n, int64_t c, int64_t h, int64_t w)
 
void opennn::cudnn_frontend::set_nhwc_output (shared_ptr< graph::Tensor_attributes > &tensor, int64_t n, int64_t c, int64_t h, int64_t w)
 
vector< int64_t > opennn::cudnn_frontend::bhsd_strides (int64_t h, int64_t s, int64_t d, bool interleaved)
 
shared_ptr< graph::Tensor_attributes > opennn::cudnn_frontend::bhsd_tensor (graph::Graph &graph, const char *name, int64_t b, int64_t h, int64_t s, int64_t d, bool interleaved)
 
void opennn::cudnn_frontend::set_bhsd_output (shared_ptr< graph::Tensor_attributes > &tensor, int64_t b, int64_t h, int64_t s, int64_t d, bool interleaved)
 
shared_ptr< graph::Tensor_attributes > opennn::cudnn_frontend::per_channel_tensor (graph::Graph &graph, const char *name, int64_t channels)
 
void opennn::cudnn_frontend::set_per_channel_output (shared_ptr< graph::Tensor_attributes > &tensor, int64_t channels)
 
template<typename... Args>
string opennn::cudnn_frontend::timing_label (format_string< Args... > fmt, Args &&... args)
 
shared_ptr< graph::Tensor_attributes > opennn::cudnn_frontend::scalar_tensor (graph::Graph &graph, const char *name, DataType_t dtype, bool pass_by_value=false, int64_t batch=1)
 
int64_t opennn::cudnn_frontend::candidate_limit_from (long long value)
 
int64_t opennn::cudnn_frontend::autotune_candidate_limit ()
 
int64_t opennn::cudnn_frontend::autotune_candidate_limit (const string &tag)
 
vector< HeurMode_t > opennn::cudnn_frontend::heuristic_modes ()
 
const vector< NumericalNote_t > & opennn::cudnn_frontend::conv_engine_notes ()
 
bool opennn::cudnn_frontend::build_top_candidates (graph::Graph &graph, int64_t limit)
 
bool opennn::cudnn_frontend::plan_cache_enabled ()
 
bool opennn::cudnn_frontend::sdpa_autotune_enabled ()
 
int64_t opennn::cudnn_frontend::sdpa_workspace_cap_override_bytes ()
 
const std::filesystem::path & opennn::cudnn_frontend::plan_cache_directory ()
 
std::filesystem::path opennn::cudnn_frontend::plan_cache_file (const graph::Graph &graph)
 
bool opennn::cudnn_frontend::load_cached_plan (graph::Graph &graph, const cudnnHandle_t handle, int64_t &workspace_bytes)
 
void opennn::cudnn_frontend::store_cached_plan (graph::Graph &graph)
 
int64_t opennn::cudnn_frontend::autotune_workspace_bytes (const graph::Graph &graph)
 
int64_t opennn::cudnn_frontend::sdpa_workspace_cap_bytes (int64_t batch, int64_t heads, int64_t q_seq, int64_t src_seq, int64_t head_dim)
 
bool opennn::cudnn_frontend::finalize_attention (graph::Graph &graph, const string &tag, int64_t &workspace_bytes, bool allow_autotune=false, int64_t workspace_cap=0)
 
shared_ptr< graph::Tensor_attributes > opennn::cudnn_frontend::seq_len_scalar (graph::Graph &graph, const char *name, int64_t batch=1)
 
bool opennn::cudnn_frontend::finalize (graph::Graph &graph, int64_t &workspace_bytes, const string &tag, const bool fp32_graph=false)
 
void opennn::cudnn_frontend::report_autotune_skipped (const char *tag, const char *reason)
 
bool opennn::cudnn_frontend::is_convolution_tag (const char *tag)
 
template<typename TensorMap>
void opennn::cudnn_frontend::select_plan_by_energy (graph::Graph &graph, TensorMap &tensors, void *workspace, const char *tag)
 
template<typename TensorMap>
void opennn::cudnn_frontend::autotune_now (bool &pending, graph::Graph &graph, TensorMap &tensors, int64_t &workspace_bytes, const char *tag=nullptr)
 
template<typename TensorMap>
void opennn::cudnn_frontend::autotune_with_scratch (bool &pending, graph::Graph &graph, const TensorMap &tensors, int64_t &workspace_bytes, const char *tag=nullptr)
 
template<typename TensorMap>
void opennn::cudnn_frontend::run_slot (GraphSlot &slot, TensorMap &tensors, const char *what, const string &timing_label, bool scratch_autotune)
 

Variables

constexpr size_t opennn::cudnn_frontend::graph_cache_capacity = 8
 
const auto opennn::cudnn_frontend::check_status