|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Classes | |
| class | AccessNode |
| Node representing access to a data container in the dataflow graph. More... | |
| class | ConstantNode |
| Node representing a constant literal value in the dataflow graph. More... | |
| class | CodeNode |
| Base class for computational nodes with inputs and outputs. More... | |
| class | DataFlowGraph |
| class | DataFlowNode |
| Abstract base class for all dataflow graph nodes. More... | |
| struct | SubgroupAccess |
| The operand elements one subgroup touches in a single access: for every lane, the operand coordinates it reads, in register order. More... | |
| class | LibraryNode |
| Base class for all library nodes in the dataflow graph. More... | |
| class | AtomicScalarOpImpl |
| A concrete lowering ("implementation") of an AtomicScalarOpNode. More... | |
| class | AtomicScalarOpNode |
| Wrapper around typical atomic operations (add, sub, min, max, swap) on a single scalar value. More... | |
| class | AtomicScalarOpCPUImpl |
| CPU (OpenMP) atomic implementation. More... | |
| class | AtomicScalarOpGPUImpl |
| Shared base for the GPU implementations (CUDA and ROCm). More... | |
| class | AtomicScalarOpCudaImpl |
| CUDA atomic implementation. More... | |
| class | AtomicScalarOpRocmImpl |
| ROCm atomic implementation. More... | |
| class | AtomicScalarOpNodeSerializer |
| class | AtomicScalarOpNodeDispatcher |
| class | AtomicScalarOpCPUNodeDispatcher |
| class | AtomicScalarOpGPUNodeDispatcher |
| class | BarrierLocalNode |
| class | BarrierLocalNodeSerializer |
| class | CallNode |
| class | CallNodeSerializer |
| class | CallNodeDispatcher |
| class | InvokeNode |
| class | InvokeNodeSerializer |
| class | InvokeNodeDispatcher |
| class | ConstSource |
| class | InMemoryConstSource |
| Constant data stored inline in SDFG. More... | |
| class | RawFileConstSource |
| Constant data stored in external files, using arg_capture_io code to read (raw data, no meta data inside the files themselves, meta data stored here). More... | |
| class | LoadConstNode |
| class | LoadConstNodeSerializer |
| class | LoadConstNodeDispatcher |
| class | MetadataNode |
| class | MetadataNodeSerializer |
| class | MetadataDispatcher |
| class | Memlet |
| Edge in the dataflow graph representing data movement. More... | |
| struct | PtrMetaDeleter |
| class | MemoryAccessPattern |
| class | ConvexAccessPattern |
| class | NoAccessPattern |
| class | TensorLayoutPattern |
| A structured access described by a full affine tensor layout (shape, strides and offset in elements). More... | |
| class | PointerAccessMeta |
| class | PointerReadOnly |
| The pointer is only used for reading. More... | |
| class | PointerFullWriteOnly |
| The pointer is used solely to write, no reading and over all of the data. More... | |
| class | PointerGenericAccess |
| It is unknown what is done with this pointer or it is a mix of reads and writes. More... | |
| class | PointerInvalidate |
| Meaning the underlying memory will be deallocated and use of the pointer after this is no longer valid. More... | |
| class | PointerAccessMetaSerializer |
| class | Tasklet |
| Simple computational operation in the dataflow graph. More... | |
Typedefs | |
| typedef StringEnum | LibraryNodeCode |
| typedef StringEnum | ImplementationType |
| Implementation type identifier for library nodes. | |
| typedef symbolic::MultiExpression | Subset |
| Type alias for a subset specification (array of symbolic expressions). | |
| typedef PtrMetaDeleter< PointerAccessMeta > | PtrAccessDeleter |
| typedef PtrMetaDeleter< MemoryAccessPattern > | AccessPatternsDeleter |
| typedef std::unique_ptr< PointerAccessMeta, PtrAccessDeleter > | PointerAccessType |
| typedef std::unique_ptr< MemoryAccessPattern, AccessPatternsDeleter > | MemoryAccessPatternType |
Enumerations | |
| enum class | EdgeRemoveOption { NotRemovable , Trivially , RequiresUpdate , RemoveNodeAfter } |
| enum class | AtomicOpType { Add , Subtract , Min , Max } |
| enum | MemletType { Computational , Reference , Dereference_Src , Dereference_Dst } |
| Type of data movement represented by a memlet. More... | |
| enum | TaskletCode { assign , fp_neg , fp_add , fp_sub , fp_mul , fp_div , fp_rem , fp_fma , fp_oeq , fp_one , fp_oge , fp_ogt , fp_ole , fp_olt , fp_ord , fp_ueq , fp_une , fp_ugt , fp_uge , fp_ult , fp_ule , fp_uno , int_add , int_sub , int_mul , int_sdiv , int_srem , int_udiv , int_urem , int_and , int_or , int_xor , int_shl , int_ashr , int_lshr , int_smin , int_smax , int_scmp , int_umin , int_umax , int_ucmp , int_eq , int_ne , int_sge , int_sgt , int_sle , int_slt , int_uge , int_ugt , int_ule , int_ult , int_abs } |
| Operation codes for tasklet computations. More... | |
Functions | |
| constexpr const char * | atomic_op_type_to_string (AtomicOpType type) |
| constexpr AtomicOpType | atomic_op_type_from_string (std::string_view str) |
| LibraryNodeCode | LibraryNodeType_Call ("Call") |
| LibraryNodeCode | LibraryNodeType_Invoke ("Invoke") |
| LibraryNodeCode | LibraryNodeType_LoadConst ("LoadConst") |
| LibraryNodeCode | LibraryNodeType_Metadata ("Metadata") |
| constexpr size_t | arity (TaskletCode c) |
| Get the number of inputs for a tasklet operation. | |
| constexpr bool | is_unsigned (TaskletCode c) |
| Check if a tasklet operation is unsigned. | |
| constexpr bool | is_integer (TaskletCode c) |
| Check if a tasklet operation is an integer operation. | |
| constexpr bool | is_floating_point (TaskletCode c) |
| Check if a tasklet operation is a floating-point operation. | |
Variables | |
| ImplementationType | ImplementationType_NONE {""} |
| Default implementation type indicating no specific implementation. | |
| LibraryNodeCode | LibraryNodeType_AtomicScalarOp {"AtomicScalarOp"} |
| LibraryNodeCode | LibraryNodeType_BarrierLocal {"barrier_local"} |
Implementation type identifier for library nodes.
Determines how a library node should be implemented during code generation. Each library node can specify an implementation type that indicates:
| typedef std::unique_ptr<MemoryAccessPattern, AccessPatternsDeleter> sdfg::data_flow::MemoryAccessPatternType |
| typedef std::unique_ptr<PointerAccessMeta, PtrAccessDeleter> sdfg::data_flow::PointerAccessType |
| typedef std::vector< symbolic::Expression > sdfg::data_flow::Subset |
Type alias for a subset specification (array of symbolic expressions).
Vector of symbolic expressions describing data access pattern.
A subset specifies which portion of a data container is accessed. Each dimension is represented by a symbolic expression. Examples:
|
strong |
|
strong |
Operation codes for tasklet computations.
Defines all primitive operations that tasklets can perform, including arithmetic, logical, comparison, and type conversion operations.
|
constexpr |
Get the number of inputs for a tasklet operation.
| c | TaskletCode operation |
| InvalidSDFGException | if code is invalid |
|
constexpr |
|
constexpr |
|
constexpr |
Check if a tasklet operation is a floating-point operation.
| c | TaskletCode operation |
|
constexpr |
Check if a tasklet operation is an integer operation.
| c | TaskletCode operation |
|
constexpr |
Check if a tasklet operation is unsigned.
| c | TaskletCode operation |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Default implementation type indicating no specific implementation.
When a library node has ImplementationType_NONE, it may be code-generated using a single dispatcher or is expanded into more primitive operations during the expansion pass.
|
inline |
|
inline |