docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
docc::target::DoccTarget Struct Reference

#include <sdfg/plugins/targets.h>

Public Member Functions

std::function< bool(docc::compile::SrcFileCompilerBuilder &src_compile_builder)> safe_apply_additional_compile_options_fn_get ()
std::function< bool(sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)> safe_apply_expand_time_mapping_fn_get ()
std::function< bool(sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)> safe_apply_sched_time_mapping_fn_get ()
std::vector< std::shared_ptr< sdfg::passes::scheduler::LoopScheduler > > safe_get_target_loop_schedulers (const TargetOptions &options) const
std::string safe_get_default_contraction_precision () const
bool safe_get_direct_contraction_rescaling () const

Public Attributes

int api_ver = NEWEST_API_VER
std::string short_name
bool(* apply_additional_compile_options )(docc::compile::SrcFileCompilerBuilder &src_compile_builder)
bool(* apply_expand_time_mapping )(sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)
 Consider these hooks experimental.
bool(* apply_sched_time_mapping )(sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)
std::vector< std::shared_ptr< sdfg::passes::scheduler::LoopScheduler > >(* get_target_loop_schedulers )(const TargetOptions &options)
std::string default_contraction_precision = "native"
 How Float and Double matmuls compute when the user selects nothing, as TargetOptions::contraction_precision spells it, e.g.
bool direct_contraction_rescaling = false
 Whether quantized and Ozaki contractions multiply by their scales and compute in the contraction's own type, as a target without Double, floor or exact powers of two needs (fp_math::Rescaling::Direct); Ozaki then slices.

Static Public Attributes

static constexpr int NEWEST_API_VER = 3

Member Function Documentation

◆ safe_apply_additional_compile_options_fn_get()

std::function< bool(docc::compile::SrcFileCompilerBuilder &src_compile_builder)> docc::target::DoccTarget::safe_apply_additional_compile_options_fn_get ( )
inline

◆ safe_apply_expand_time_mapping_fn_get()

std::function< bool(sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)> docc::target::DoccTarget::safe_apply_expand_time_mapping_fn_get ( )
inline

◆ safe_apply_sched_time_mapping_fn_get()

std::function< bool(sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)> docc::target::DoccTarget::safe_apply_sched_time_mapping_fn_get ( )
inline

◆ safe_get_default_contraction_precision()

std::string docc::target::DoccTarget::safe_get_default_contraction_precision ( ) const
inlinenodiscard

◆ safe_get_direct_contraction_rescaling()

bool docc::target::DoccTarget::safe_get_direct_contraction_rescaling ( ) const
inlinenodiscard

◆ safe_get_target_loop_schedulers()

std::vector< std::shared_ptr< sdfg::passes::scheduler::LoopScheduler > > docc::target::DoccTarget::safe_get_target_loop_schedulers ( const TargetOptions & options) const
inlinenodiscard

Member Data Documentation

◆ api_ver

int docc::target::DoccTarget::api_ver = NEWEST_API_VER

◆ apply_additional_compile_options

bool(* docc::target::DoccTarget::apply_additional_compile_options) (docc::compile::SrcFileCompilerBuilder &src_compile_builder)

◆ apply_expand_time_mapping

bool(* docc::target::DoccTarget::apply_expand_time_mapping) (sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)

Consider these hooks experimental.

They allow completely custom modification of the SDFG. In the future we may want to move more towards pass-management

◆ apply_sched_time_mapping

bool(* docc::target::DoccTarget::apply_sched_time_mapping) (sdfg::builder::StructuredSDFGBuilder &builder, sdfg::analysis::AnalysisManager &analysis_manager, const TargetOptions &options)

◆ default_contraction_precision

std::string docc::target::DoccTarget::default_contraction_precision = "native"

How Float and Double matmuls compute when the user selects nothing, as TargetOptions::contraction_precision spells it, e.g.

an Ozaki emulation for a target that multiplies only integers.

◆ direct_contraction_rescaling

bool docc::target::DoccTarget::direct_contraction_rescaling = false

Whether quantized and Ozaki contractions multiply by their scales and compute in the contraction's own type, as a target without Double, floor or exact powers of two needs (fp_math::Rescaling::Direct); Ozaki then slices.

◆ get_target_loop_schedulers

std::vector< std::shared_ptr< sdfg::passes::scheduler::LoopScheduler > >(* docc::target::DoccTarget::get_target_loop_schedulers) (const TargetOptions &options)

◆ NEWEST_API_VER

int docc::target::DoccTarget::NEWEST_API_VER = 3
staticconstexpr

◆ short_name

std::string docc::target::DoccTarget::short_name

The documentation for this struct was generated from the following file: