Halide 18.0.0
Halide compiler and libraries
|
#include <Generator.h>
Public Member Functions | |
template<typename... Args> | |
void | apply (const Args &...args) |
template<typename T2 > | |
std::unique_ptr< T2 > | create () const |
template<typename T2 , typename... Args> | |
std::unique_ptr< T2 > | apply (const Args &...args) const |
Generator (const Generator &)=delete | |
Generator & | operator= (const Generator &)=delete |
Generator (Generator &&that)=delete | |
Generator & | operator= (Generator &&that)=delete |
![]() | |
~GeneratorBase () override | |
int | natural_vector_size (Halide::Type t) const |
Given a data type, return an estimate of the "natural" vector size for that data type when compiling for the current target. | |
template<typename data_t > | |
int | natural_vector_size () const |
Given a data type, return an estimate of the "natural" vector size for that data type when compiling for the current target. | |
template<typename... Args> | |
void | set_inputs (const Args &...args) |
set_inputs is a variadic wrapper around set_inputs_vector, which makes usage much simpler in many cases, as it constructs the relevant entries for the vector for you, which is often a bit unintuitive at present. | |
Realization | realize (std::vector< int32_t > sizes) |
template<typename... Args, typename std::enable_if< NoRealizations< Args... >::value >::type * = nullptr> | |
Realization | realize (Args &&...args) |
void | realize (Realization r) |
Pipeline | get_pipeline () |
template<typename T , typename std::enable_if< std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorInput< T > * | add_input (const std::string &name, const Type &t, int dimensions) |
template<typename T , typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorInput< T > * | add_input (const std::string &name, const Type &t, int dimensions) |
template<typename T , typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorInput< T > * | add_input (const std::string &name, int dimensions) |
template<typename T , typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorInput< T > * | add_input (const std::string &name) |
template<typename T , typename std::enable_if< std::is_arithmetic< T >::value >::type * = nullptr> | |
GeneratorInput< T > * | add_input (const std::string &name) |
template<typename T , typename std::enable_if< std::is_same< T, Expr >::value >::type * = nullptr> | |
GeneratorInput< T > * | add_input (const std::string &name, const Type &type) |
template<typename T , typename std::enable_if< std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorOutput< T > * | add_output (const std::string &name, const Type &t, int dimensions) |
template<typename T , typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorOutput< T > * | add_output (const std::string &name, const Type &t, int dimensions) |
template<typename T , typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorOutput< T > * | add_output (const std::string &name, int dimensions) |
template<typename T , typename std::enable_if<!std::is_arithmetic< T >::value &&!std::is_same< T, Halide::Func >::value >::type * = nullptr> | |
GeneratorOutput< T > * | add_output (const std::string &name) |
void | add_requirement (const Expr &condition, const std::vector< Expr > &error_args) |
template<typename... Args, typename = typename std::enable_if<Internal::all_are_printable_args<Args...>::value>::type> | |
HALIDE_NO_USER_CODE_INLINE void | add_requirement (const Expr &condition, Args &&...error_args) |
void | trace_pipeline () |
std::string | name () override |
Return the name of this Generator. | |
GeneratorContext | context () const override |
Return the Target and autoscheduler info that this Generator was created with. | |
std::vector< ArgInfo > | arginfos () override |
Return a list of all the ArgInfos for this generator. | |
bool | allow_out_of_order_inputs_and_outputs () const override |
By default, a Generator must declare all Inputs before all Outputs. | |
void | set_generatorparam_value (const std::string &name, const std::string &value) override |
Set the value for a specific GeneratorParam for an AbstractGenerator instance. | |
void | set_generatorparam_value (const std::string &name, const LoopLevel &loop_level) override |
std::vector< Parameter > | input_parameter (const std::string &name) override |
Given the name of an input, return the Parameter(s) for that input. | |
std::vector< Func > | output_func (const std::string &name) override |
Given the name of an output, return the Func(s) for that output. | |
void | bind_input (const std::string &name, const std::vector< Parameter > &v) override |
Rebind a specified Input to refer to the given piece of IR, replacing the default ImageParam / Param in place for that Input. | |
void | bind_input (const std::string &name, const std::vector< Func > &v) override |
void | bind_input (const std::string &name, const std::vector< Expr > &v) override |
bool | emit_cpp_stub (const std::string &stub_file_path) override |
Emit a Generator Stub (.stub.h) file to the given path. | |
bool | emit_hlpipe (const std::string &hlpipe_file_path) override |
Emit a Serialized Halide Pipeline (.hlpipe) file to the given path. | |
GeneratorBase (const GeneratorBase &)=delete | |
GeneratorBase & | operator= (const GeneratorBase &)=delete |
GeneratorBase (GeneratorBase &&that)=delete | |
GeneratorBase & | operator= (GeneratorBase &&that)=delete |
![]() | |
virtual | ~AbstractGenerator ()=default |
Module | build_module (const std::string &function_name="") |
Call generate() and produce a Module for the result. | |
Module | build_gradient_module (const std::string &function_name) |
Build a module that is suitable for using for gradient descent calculation in TensorFlow or PyTorch. | |
Callable | compile_to_callable (const JITHandlers *jit_handlers=nullptr, const std::map< std::string, JITExtern > *jit_externs=nullptr) |
JIT the AbstractGenerator into a Callable (using the currently-set Target) and return it. | |
void | set_generatorparam_values (const GeneratorParamsMap &m) |
Static Public Member Functions | |
static std::unique_ptr< T > | create (const Halide::GeneratorContext &context) |
static std::unique_ptr< T > | create (const Halide::GeneratorContext &context, const std::string ®istered_name, const std::string &stub_name) |
Protected Member Functions | |
Generator () | |
Pipeline | build_pipeline () override |
Build and return the Pipeline for this AbstractGenerator. | |
void | call_configure () override |
void | call_generate () override |
void | call_schedule () override |
![]() | |
GeneratorBase (size_t size) | |
void | set_generator_names (const std::string ®istered_name, const std::string &stub_name) |
virtual void | init_from_context (const Halide::GeneratorContext &context) |
void | pre_build () |
void | post_build () |
void | pre_configure () |
void | post_configure () |
void | pre_generate () |
void | post_generate () |
void | pre_schedule () |
void | post_schedule () |
void | check_exact_phase (Phase expected_phase) const |
void | check_min_phase (Phase expected_phase) const |
void | advance_phase (Phase new_phase) |
void | ensure_configure_has_been_called () |
Target | get_target () const |
bool | using_autoscheduler () const |
Definition at line 3740 of file Generator.h.
|
inlineprotected |
Definition at line 3742 of file Generator.h.
References Halide::Internal.
|
delete |
|
delete |
|
inlinestatic |
Definition at line 3747 of file Generator.h.
References Halide::Internal::GeneratorBase::context().
|
inlinestatic |
Definition at line 3756 of file Generator.h.
References Halide::cast(), Halide::Internal::GeneratorBase::context(), and Halide::Generator< T >::create().
|
inline |
Definition at line 3765 of file Generator.h.
References Halide::Generator< T >::call_configure(), Halide::Generator< T >::call_generate(), Halide::Generator< T >::call_schedule(), and Halide::Internal::GeneratorBase::set_inputs().
|
inline |
Definition at line 3773 of file Generator.h.
References Halide::Internal::GeneratorBase::context().
Referenced by Halide::Generator< T >::create().
|
inline |
Definition at line 3778 of file Generator.h.
References Halide::cast().
|
inlineoverrideprotectedvirtual |
Build and return the Pipeline for this AbstractGenerator.
This method should be called only once per instance.
CALL-AFTER: set_generatorparam_value, bind_input CALL-BEFORE: input_parameter, output_func, external_code_map
Implements Halide::Internal::AbstractGenerator.
Definition at line 3852 of file Generator.h.
References Halide::Internal::GeneratorBase::ensure_configure_has_been_called().
|
inlineoverrideprotectedvirtual |
Implements Halide::Internal::GeneratorBase.
Definition at line 3857 of file Generator.h.
Referenced by Halide::Generator< T >::apply().
|
inlineoverrideprotectedvirtual |
Implements Halide::Internal::GeneratorBase.
Definition at line 3861 of file Generator.h.
Referenced by Halide::Generator< T >::apply().
|
inlineoverrideprotectedvirtual |
Implements Halide::Internal::GeneratorBase.
Definition at line 3865 of file Generator.h.
Referenced by Halide::Generator< T >::apply().
|
delete |
|
delete |