Halide 21.0.0
Halide compiler and libraries
Loading...
Searching...
No Matches
Halide::Internal::CodeGen_PyTorch Class Reference

This class emits C++ code to wrap a Halide pipeline so that it can be used as a C++ extension operator in PyTorch. More...

#include <CodeGen_PyTorch.h>

Inheritance diagram for Halide::Internal::CodeGen_PyTorch:
Halide::Internal::IRPrinter Halide::Internal::IRVisitor

Public Member Functions

 CodeGen_PyTorch (std::ostream &dest)
 ~CodeGen_PyTorch () override=default
void compile (const Module &module)
 Emit the PyTorch C++ wrapper for the Halide pipeline.
Public Member Functions inherited from Halide::Internal::IRPrinter
 IRPrinter (std::ostream &)
 Construct an IRPrinter pointed at a given output stream (e.g.
void print (const Expr &)
 emit an expression on the output stream
void print_no_parens (const Expr &)
 Emit an expression on the output stream without enclosing parens.
void print (const Stmt &)
 emit a statement on the output stream
void print_summary (const Stmt &)
 emit a statement summary on the output stream
void print_list (const std::vector< Expr > &exprs)
 emit a comma delimited list of exprs, without any leading or trailing punctuation.
Public Member Functions inherited from Halide::Internal::IRVisitor
 IRVisitor ()=default
virtual ~IRVisitor ()=default

Additional Inherited Members

Static Public Member Functions inherited from Halide::Internal::IRPrinter
static void test ()
Protected Member Functions inherited from Halide::Internal::IRPrinter
Indentation get_indent () const
template<typename T>
Ansi< T > hl (const T &t)
template<typename T>
Ansi< T > kw (const T &t)
template<typename T>
Ansi< T > imm_int (const T &t)
template<typename T>
Ansi< T > imm_float (const T &t)
template<typename T>
Ansi< T > imm_str (const T &t)
template<typename T>
Ansi< T > var (const T &t)
template<typename T>
Ansi< T > buf (const T &t)
template<typename T>
Ansi< T > fn (const T &t)
template<typename T>
Ansi< T > type (const T &t)
template<typename T>
Ansi< T > typep (const T &t)
template<typename T>
Ansi< T > paren (const T &t, bool bold=true, int d=-1)
void open ()
 Either emits "(" or "", depending on the value of implicit_parens.
void close ()
 Either emits ")" or "", depending on the value of implicit_parens.
void openf ()
 Emits "(" always.
void openf (const char *name)
 Emits "name(" always.
void closef ()
 Emits ")" always.
void print_lets (const Let *let)
 A helper for printing a chain of lets with line breaks.
void print_braced_stmt (const Stmt &, int extra_indent=2)
 A helper for printing a braced statement.
void visit (const IntImm *) override
void visit (const UIntImm *) override
void visit (const FloatImm *) override
void visit (const StringImm *) override
void visit (const Cast *) override
void visit (const Reinterpret *) override
void visit (const Variable *) override
void visit (const Add *) override
void visit (const Sub *) override
void visit (const Mul *) override
void visit (const Div *) override
void visit (const Mod *) override
void visit (const Min *) override
void visit (const Max *) override
void visit (const EQ *) override
void visit (const NE *) override
void visit (const LT *) override
void visit (const LE *) override
void visit (const GT *) override
void visit (const GE *) override
void visit (const And *) override
void visit (const Or *) override
void visit (const Not *) override
void visit (const Select *) override
void visit (const Load *) override
void visit (const Ramp *) override
void visit (const Broadcast *) override
void visit (const Call *) override
void visit (const Let *) override
void visit (const LetStmt *) override
void visit (const AssertStmt *) override
void visit (const ProducerConsumer *) override
void visit (const For *) override
void visit (const Acquire *) override
void visit (const Store *) override
void visit (const Provide *) override
void visit (const Allocate *) override
void visit (const Free *) override
void visit (const Realize *) override
void visit (const Block *) override
void visit (const Fork *) override
void visit (const IfThenElse *) override
void visit (const Evaluate *) override
void visit (const Shuffle *) override
void visit (const VectorReduce *) override
void visit (const Prefetch *) override
void visit (const Atomic *) override
void visit (const HoistedStorage *) override
Protected Attributes inherited from Halide::Internal::IRPrinter
std::ostream & stream
 The stream on which we're outputting.
int indent = 0
 The current indentation level, useful for pretty-printing statements.
bool implicit_parens = false
 Certain expressions do not need parens around them, e.g.
bool is_summary = false
 Print only a summary of a statement, with sub-statements replaced by ellipses (...).
bool ansi = false
int paren_depth = 0
const char * ansi_hl = ""
const char * ansi_dim = ""
const char * ansi_kw = ""
const char * ansi_imm_int = ""
const char * ansi_imm_float = ""
const char * ansi_imm_str = ""
const char * ansi_var = ""
const char * ansi_buf = ""
const char * ansi_fn = ""
const char * ansi_type = ""
const char * ansi_reset_col = ""
const char * ansi_reset = ""
Scope known_type
 The symbols whose types can be inferred from values printed already.

Detailed Description

This class emits C++ code to wrap a Halide pipeline so that it can be used as a C++ extension operator in PyTorch.

Definition at line 29 of file CodeGen_PyTorch.h.

Constructor & Destructor Documentation

◆ CodeGen_PyTorch()

Halide::Internal::CodeGen_PyTorch::CodeGen_PyTorch ( std::ostream & dest)

◆ ~CodeGen_PyTorch()

Halide::Internal::CodeGen_PyTorch::~CodeGen_PyTorch ( )
overridedefault

Member Function Documentation

◆ compile()

void Halide::Internal::CodeGen_PyTorch::compile ( const Module & module)

Emit the PyTorch C++ wrapper for the Halide pipeline.


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