22.05
|
Data Structures | |
class | AddContent |
struct | AddDescriptor |
Descriptor for Addition operation. More... | |
struct | AuxMemoryInfo |
Memory Info for a WorkloadTensor of Auxiliary memory type. More... | |
struct | ClActivationKernelDescriptor |
struct | ClAddKernel |
class | ClAuxTensorData |
Holder of any auxiliary CLTensors required by a ClWorkload. More... | |
struct | ClCodeBuilderContext |
All information required for building the ClKernelCode. More... | |
class | ClCompositeKernel |
class | ClCompositeOperator |
Operator runtime to run a ClWorkload. More... | |
struct | ClDirectConv2dKernel |
struct | ClDirectConv2dKernelDescriptor |
class | ClDirectConvolutionKernelComponent |
class | ClElementwiseAddKernelComponent |
struct | ClEltwiseAddKernelDescriptor |
struct | ClExecutionDescriptor |
Descriptor containing information required to run a single ClWorkload. More... | |
struct | ClFusedKernelGraph |
struct | ClKernel |
struct | ClKernelArgDescriptor |
Describes all the info required to add a kernel argument at run time. More... | |
class | ClKernelBlueprint |
Intermediate representation of the final, complete kernel source. More... | |
struct | ClKernelCode |
Contains kernel code to be compiled and run in a ClUnitWorkload. More... | |
struct | ClKernelConfig |
Configurations for ClKernel. More... | |
struct | ClKernelFusionGroup |
A const view of a subgraph of the ClKernelGraph to be fused together. More... | |
struct | ClKernelGraph |
struct | ClKernelTensor |
class | ClStoreBlockBoundaryAwareKernelComponent |
class | ClStoreIndirectWidthSelectKernelComponent |
struct | ClUnitWorkload |
The basic atomic unit in a ClWorkload. More... | |
struct | ClWorkload |
Workload for Cl backend. More... | |
struct | ClWorkloadContext |
Context (device capabilities, platform details) associated with a ClWorkload. More... | |
struct | ClWorkloadTensor |
A descriptor of ClWorkload Tensors. More... | |
struct | Conv2dContent |
struct | Conv2dDescriptor |
Descriptor for Conv2dDescriptor operation. More... | |
class | DependencyGraph |
The dependency graph of a workload, where the nodes are of 2 types: Tensor or Operator Represented as a doubly-linked adjacency list with the differentiation between source and destination. More... | |
struct | GpuInfo |
GPU information for ClWorkloadContext. More... | |
class | IClKernelComponent |
class | ITensorDescPack |
struct | IWorkload |
Run-time-agnostic, platform-specific graph that describes everything required to run a workload It can be configured into an Arm Compute Library runtime, integrated into the runtime of another framework, or integrated into the compilation flow. More... | |
class | Operator |
Operator Handle This can be used to further modify an existing operator. More... | |
struct | OperatorContent |
class | OperatorGraph |
Graph of operators to execute within a Workload. More... | |
class | OpTensor |
Operator Tensor Handle This can be either an argument tensor, or an intermediate tensor linking 2 Operator s. More... | |
struct | OpTensorContent |
struct | Padding2D |
Padding information for 2D operations like Conv2dDescriptor. More... | |
struct | SharedVarLink |
Specifies a shared variable link for a component. More... | |
class | SharedVarTable |
A table of all the variables used in the kernel / blueprint Because we limit the DependencyGraph in the blueprint to a Linear Sequence for now, we only allow ** a single global variable (the accumulator) **. More... | |
class | TensorPackMap |
Map a kernel (as identified by its unit workload id) to its corresponding tensor pack. More... | |
struct | TileDescriptor |
Component: Store. More... | |
struct | UnitWorkload |
The basic atomic unit in an IWorkload. More... | |
struct | UnitWorkloadStage |
Describes when a Unit Workload is run. More... | |
struct | WorkloadTensor |
A descriptor for IWorkload Tensors. More... | |
Typedefs | |
using | ClKernelArgList = std::map< int, ClKernelArgDescriptor > |
using | AuxMemoryLifetime = MemoryLifetime |
using | OpTensorBinding = std::map< OpTensor, ITensor * > |
Map OpTensor handles to their corresponding ITensor memory. More... | |
using | ArgumentID = DependencyGraph::Id |
using | ComponentID = DependencyGraph::Id |
using | ComponentList = std::vector< ComponentID > |
using | ComponentUniquePtr = std::unique_ptr< IClKernelComponent > |
using | Id = DependencyGraph::Id |
Functions | |
Status | build (ClWorkload &workload, const OperatorGraph &op_graph, const ClWorkloadContext &ctx) |
Build a ClWorkload from an OperatorGraph. More... | |
template<typename T > | |
bool | is_in (const T &v, const std::vector< T > &vec) |
Status | validate (const OperatorGraph &op_graph) |
Return the validity of op_graph , usually after performing an operation (e.g. More... | |
bool | operator< (const OpTensor &t0, const OpTensor &t1) |
Provide order of OpTensor by checking if t0 is "lower than" t1 . More... | |
OpTensor | add_tensor (OperatorGraph &graph, ITensorInfo &info) |
Associate a TensorInfo with a newly created OpTensor in the graph . More... | |
bool | operator< (const Operator &op0, const Operator &op1) |
Provide order of Operator by checking if op0 is "lower than" op1 . More... | |
Operator | add_op_conv2d (OperatorGraph &graph, const Conv2dDescriptor &desc, OpTensor input, OpTensor weights, OpTensor bias, OpTensor dst) |
Add op Conv2d to graph . More... | |
Operator | add_op_conv2d (OperatorGraph &graph, const Conv2dDescriptor &desc, OpTensor input, OpTensor weights, OpTensor dst) |
void | force_conv2d_method (OperatorGraph &graph, Operator conv2d, ConvolutionMethod method) |
(Only for Debuging and Testing) Force a conv2d method More... | |
Operator | add_op_elementwise_add (OperatorGraph &graph, const AddDescriptor &desc, OpTensor lhs, OpTensor rhs, OpTensor dst) |
Add op Add to graph , and optionally describes fusion through passing of intermediate OpTensor s. More... | |
bool | operator== (const OpTensor &t0, const OpTensor &t1) |
bool | operator== (const Padding2D &pad0, const Padding2D &pad1) |
bool | operator== (const Conv2dDescriptor &conv2d0, const Conv2dDescriptor &conv2d1) |
bool | operator== (const AddDescriptor &, const AddDescriptor &) |
Status | bind_tensors (ClAuxTensorData &aux_tensor_data, TensorPackMap &prepare_pack_map, TensorPackMap &run_pack_map, const ClWorkload &workload, const OpTensorBinding &op_tensors) |
Bind tensor memory to packs used by prepare and run methods. More... | |
Status | add_tensor (ClKernelBlueprint &kernel_blueprint, ITensorInfo *tensor_info, ArgumentID &id, ArgumentID merge_point) |
Status | add_kcomp_eltwise_add (ClKernelBlueprint &, const ClEltwiseAddKernelDescriptor &, ArgumentID src0_id, ArgumentID src1_id, ArgumentID &dst_id) |
Component: Eltwise Add. More... | |
Status | add_kcomp_activation (ClKernelBlueprint &, const ClActivationKernelDescriptor &, ArgumentID src_id, ArgumentID &dst_id) |
Component: Activation. More... | |
Status | add_kcomp_direct_conv2d (ClKernelBlueprint &, const ClDirectConv2dKernelDescriptor &, ArgumentID src_id, ArgumentID weight_id, ArgumentID bias_id, ArgumentID &dst_id) |
Component: Direct Convolution. More... | |
Status | add_kcomp_store (ClKernelBlueprint &kernel_blueprint, const StoreType &store_type, ArgumentID src_tile, ArgumentID dst_tile) |
Status | update_merge_point (ClKernelBlueprint &, ArgumentID t_id, ArgumentID merge_point) |
Update existing merge tensor merge_point to point to t_id . More... | |
Status | set_tile_info (ClKernelBlueprint &bp, const TileDescriptor &tile_info) |
Status | build (ClKernelCode &code, const ClCodeBuilderContext &, ClKernelBlueprint &) |
Build final kernel source from KernelBlueprint. More... | |
DependencyGraph | get_dependency_graph (const ClKernelBlueprint &blueprint) |
Get dependency graph. More... | |
Status | tune_static (ClExecutionDescriptor &, const ClKernelCode &) |
bool | export_to_cl_image_support (const ITensorInfo *tensor, GPUTarget gpu_target, DataLayout data_layout) |
inline ::std::ostream & | operator<< (::std::ostream &os, const CLBuildOptions::StringSet &build_opts) |
inline ::std::ostream & | operator<< (::std::ostream &os, const CLBuildOptions &cl_build_opts) |
std::string | to_string (const CLBuildOptions &cl_build_opts) |
inline ::std::ostream & | operator<< (::std::ostream &os, const ClKernelCode &code) |
std::string | to_string (const ClKernelCode &code) |
std::vector< const ClKernel * > | traverse (const ClKernelFusionGroup &group) |
std::vector< const ClKernelFusionGroup * > | traverse (const ClFusedKernelGraph &graph) |
std::vector< ClKernelFusionGroup * > | traverse (ClFusedKernelGraph &graph) |
std::pair< Status, ClFusedKernelGraph > | init_fusion_graph (const ClKernelGraph &kernel_graph) |
Status | fuse (ClFusedKernelGraph &fused_kernel_graph) |
Status | generate_store (ClKernelBlueprint &bp, const ClFusedKernelGraph &fused_kernel_graph, const ClKernelFusionGroup &fg) |
Status | generate (ClWorkload &workload, const ClWorkloadContext &ctx, const ClFusedKernelGraph &fused_kernel_graph) |
std::vector< const ClKernel * > | traverse (const ClKernelGraph &graph) |
std::vector< ClKernel * > | traverse (ClKernelGraph &graph) |
std::vector< const OperatorContent * > | traverse (const OperatorGraph::Implementation &graph) |
std::vector< OperatorContent * > | traverse (OperatorGraph::Implementation &graph) |
Status | translate (ClKernelGraph &kernel_graph, const OperatorGraph::Implementation &op_graph) |
using ArgumentID = DependencyGraph::Id |
Definition at line 41 of file ClKernelBuildingAPI.h.
using AuxMemoryLifetime = MemoryLifetime |
Definition at line 65 of file IWorkload.h.
using ClKernelArgList = std::map<int, ClKernelArgDescriptor> |
Definition at line 87 of file ClWorkload.h.
using ComponentID = DependencyGraph::Id |
using ComponentList = std::vector<ComponentID> |
using ComponentUniquePtr = std::unique_ptr<IClKernelComponent> |
using Id = DependencyGraph::Id |
Definition at line 230 of file ClKernelGraph.h.
using OpTensorBinding = std::map<OpTensor, ITensor *> |
Map OpTensor handles to their corresponding ITensor memory.
Definition at line 44 of file ClCompositeOperator.h.
|
strong |
Enumerator | |
---|---|
TOP_LEFT | |
TOP_RIGHT | |
BOTTOM_LEFT | |
BOTTOM_RIGHT |
Definition at line 61 of file ClKernelDescriptors.h.
|
strong |
Verbose and explicit way to enumerate all the tensor arguments variants used by all kernel implementations.
This avoids any ambiguity in what kernel arguments are passed
Enumerator | |
---|---|
Scalar | |
Vector | |
Image | |
Image_Reinterpret_As_3D | |
Image_Export_To_ClImage2D | |
Image_3D | |
Image_3D_Export_To_ClImage2D | |
Tensor_3D | |
Tensor_4D | |
Tensor_4D_t_Buffer | |
Tensor_4D_t_Image |
Definition at line 46 of file ClWorkload.h.
|
strong |
Enumerator | |
---|---|
Simple | |
Complex |
Definition at line 45 of file ClKernelGraph.h.
|
strong |
|
strong |
Type of memory used by a Workload Tensor.
Enumerator | |
---|---|
Core | Core memory used by the Workload Tensor, e.g. for argument tensors |
Auxiliary | Auxiliary memory required by the Workload Tensor, e.g. for temporary tensors |
Definition at line 59 of file IWorkload.h.
|
strong |
Enumerator | |
---|---|
Complex | |
Simple |
Definition at line 44 of file OperatorGraphImpl.h.
|
strong |
|
strong |
We introduce the concept of Shared Variables in the context of kernel building.
They are variables that can be accessed / shared among all the kernel components within a single kernel. For now we consider 2 groups of shared variables: Argument: The argument variables (parameters) of a kernel Automatic: The automatic variables declared inside a kernel All Shared Variables have the same kernel scope, and are thus visible to all kernel components
Enumerator | |
---|---|
Input | |
Output |
|
strong |
Enumerator | |
---|---|
VStore | |
VStorePartial | |
StoreRow | |
ConvertStoreRow | |
StoreBlock | |
ConvertStoreBlock | |
StoreRowPartial | |
StoreBlockPartial | |
StoreBlockBoundaryAware | |
StoreVectorSelect | |
TStoreIndirectWidthSelect |
Definition at line 93 of file ClKernelDescriptors.h.
Status add_kcomp_activation | ( | ClKernelBlueprint & | , |
const ClActivationKernelDescriptor & | , | ||
ArgumentID | , | ||
ArgumentID & | |||
) |
Component: Activation.
Definition at line 70 of file ClKernelBuildingAPI.cpp.
Status add_kcomp_direct_conv2d | ( | ClKernelBlueprint & | kernel_blueprint, |
const ClDirectConv2dKernelDescriptor & | direct_conv2d_desc, | ||
ArgumentID | src_id, | ||
ArgumentID | weight_id, | ||
ArgumentID | bias_id, | ||
ArgumentID & | dst_id | ||
) |
Component: Direct Convolution.
Definition at line 75 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::Implementation::add_component(), ClKernelBlueprint::impl(), Input, and Output.
Referenced by ClDirectConv2dKernel::generate().
Status add_kcomp_eltwise_add | ( | ClKernelBlueprint & | kernel_blueprint, |
const ClEltwiseAddKernelDescriptor & | , | ||
ArgumentID | src0_id, | ||
ArgumentID | src1_id, | ||
ArgumentID & | dst_id | ||
) |
Component: Eltwise Add.
Definition at line 58 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::Implementation::add_component(), ClKernelBlueprint::impl(), Input, and Output.
Referenced by ClAddKernel::generate().
Status add_kcomp_store | ( | ClKernelBlueprint & | kernel_blueprint, |
const StoreType & | store_type, | ||
ArgumentID | src_tile, | ||
ArgumentID | dst_tile | ||
) |
Definition at line 91 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::Implementation::add_component(), ARM_COMPUTE_ERROR, ClKernelBlueprint::impl(), Input, Output, StoreBlockBoundaryAware, and TStoreIndirectWidthSelect.
Referenced by generate_store().
Operator add_op_conv2d | ( | OperatorGraph & | graph, |
const Conv2dDescriptor & | desc, | ||
OpTensor | input, | ||
OpTensor | weights, | ||
OpTensor | bias, | ||
OpTensor | dst | ||
) |
Add op Conv2d to graph
.
[in,out] | graph | OperatorGraph where the operator is added to |
[in] | desc | Operator descriptor |
[in] | input | Input OpTensor |
[in] | weights | Weights OpTensor |
[in] | bias | (Optional) bias OpTensor |
[in] | dst | Destination OpTensor |
Definition at line 134 of file OperatorGraph.cpp.
References arm_compute::ACL_DST_0, arm_compute::ACL_SRC_0, arm_compute::ACL_SRC_1, arm_compute::ACL_SRC_2, ITensorDescPack< TDesc >::add_const_tensor(), OperatorGraph::Implementation::add_node(), DependencyGraph::add_operator(), arm_compute::auto_init_if_empty(), Padding2D::bottom, arm_compute::misc::shape_calculator::compute_deep_convolution_shape(), arm_compute::FLOOR, DependencyGraph::get_root_ops(), OpTensorContent::get_tensor_info(), OperatorGraph::Implementation::graph, OpTensor::id(), OperatorGraph::impl(), Padding2D::left, Conv2dDescriptor::pad, Padding2D::right, arm_compute::RUNTIME_ERROR, arm_compute::test::validation::shape, arm_compute::test::validation::src, OperatorGraph::Implementation::status, Conv2dDescriptor::stride, OperatorGraph::Implementation::tensors, Padding2D::top, ITensorInfo::total_size(), Size2D::x(), and Size2D::y().
Referenced by add_op_conv2d(), and arm_compute::test::validation::TEST_CASE().
Operator add_op_conv2d | ( | OperatorGraph & | graph, |
const Conv2dDescriptor & | desc, | ||
OpTensor | input, | ||
OpTensor | weights, | ||
OpTensor | dst | ||
) |
Definition at line 190 of file OperatorGraph.cpp.
References add_op_conv2d().
Operator add_op_elementwise_add | ( | OperatorGraph & | graph, |
const AddDescriptor & | desc, | ||
OpTensor | lhs, | ||
OpTensor | rhs, | ||
OpTensor | dst | ||
) |
Add op Add to graph
, and optionally describes fusion through passing of intermediate OpTensor s.
[in,out] | graph | OperatorGraph where the operator is added to |
[in] | desc | Operator descriptor |
[in] | lhs | Lhs OpTensor |
[in] | rhs | Rhs OpTensor |
[in] | dst | Destination OpTensor |
Definition at line 201 of file OperatorGraph.cpp.
References arm_compute::ACL_DST_0, arm_compute::ACL_SRC_0, arm_compute::ACL_SRC_1, ITensorDescPack< TDesc >::add_const_tensor(), OperatorGraph::Implementation::add_node(), DependencyGraph::add_operator(), arm_compute::auto_init_if_empty(), ITensorInfo::broadcast_shape_and_valid_region(), OpTensorContent::get_tensor_info(), OperatorGraph::Implementation::graph, OpTensor::id(), OperatorGraph::impl(), OperatorGraph::Implementation::tensors, and ITensorInfo::total_size().
Referenced by arm_compute::test::validation::TEST_CASE().
Status add_tensor | ( | ClKernelBlueprint & | kernel_blueprint, |
ITensorInfo * | tensor_info, | ||
ArgumentID & | id, | ||
ArgumentID | merge_point | ||
) |
Definition at line 52 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::Implementation::add_kernel_tensor(), and ClKernelBlueprint::impl().
OpTensor add_tensor | ( | OperatorGraph & | graph, |
ITensorInfo & | info | ||
) |
Associate a TensorInfo with a newly created OpTensor in the graph
.
info
needs to remain in scope and valid until the workload has finished building info
will be inferred from the source tensors[in,out] | graph | OperatorGraph where the tensor is added |
[in] | info | TensorInfo to be associated |
Definition at line 126 of file OperatorGraph.cpp.
References DependencyGraph::add_tensor(), OperatorGraph::Implementation::add_tensor(), OperatorGraph::Implementation::graph, and OperatorGraph::impl().
Referenced by ClDirectConv2dKernel::generate(), ClAddKernel::generate(), generate_store(), and arm_compute::test::validation::TEST_CASE().
Status bind_tensors | ( | ClAuxTensorData & | aux_tensor_data, |
TensorPackMap & | prepare_pack_map, | ||
TensorPackMap & | run_pack_map, | ||
const ClWorkload & | workload, | ||
const OpTensorBinding & | op_tensors | ||
) |
Bind tensor memory to packs used by prepare and run methods.
Create auxiliary tensor objects and their memory requirements if needed
[out] | aux_tensor_data | Auxiliary Tensors required by the workload |
[out] | prepare_pack_map | TensorPackMap used by the prepare method |
[out] | run_pack_map | TensorPackMap used by the run method |
[in] | workload | ClWorkload to bind the tensors to |
[in] | op_tensors | CLTensor memory objects mapped from Core OpTensors |
Definition at line 104 of file ClCompositeOperator.cpp.
References ClAuxTensorData::add_aux_tensor(), ARM_COMPUTE_CREATE_ERROR, ARM_COMPUTE_RETURN_ON_ERROR, Auxiliary, Core, ClWorkload::op_tensor_id_lut, arm_compute::RUNTIME_ERROR, and ClWorkload::tensors.
Referenced by arm_compute::test::validation::TEST_CASE().
Status build | ( | ClKernelCode & | code, |
const ClCodeBuilderContext & | , | ||
ClKernelBlueprint & | kernel_blueprint | ||
) |
Build final kernel source from KernelBlueprint.
Definition at line 126 of file ClKernelBuildingAPI.cpp.
References ClKernelCode::arguments, ClKernelBlueprint::Implementation::build_code(), ClKernelBlueprint::Implementation::build_config_id(), ClKernelBlueprint::Implementation::build_kernel_name(), ClKernelCode::build_options, ClKernelBlueprint::Implementation::build_options(), ClKernelCode::code, ClKernelCode::config_id, ClKernelBlueprint::Implementation::finalize(), ClKernelBlueprint::Implementation::get_arguments(), ClKernelBlueprint::Implementation::get_execution_window(), ClKernelBlueprint::impl(), ClKernelCode::name, and ClKernelCode::window.
Status build | ( | ClWorkload & | workload, |
const OperatorGraph & | op_graph, | ||
const ClWorkloadContext & | ctx | ||
) |
Build a ClWorkload from an OperatorGraph.
[out] | workload | |
[in] | op_graph | |
[in] | ctx |
Definition at line 36 of file ClWorkload.cpp.
References ARM_COMPUTE_RETURN_ON_ERROR, ClWorkload::context, DependencyGraph::dst_tensors(), fuse(), generate(), DependencyGraph::get_merge_points(), IWorkload::graph, OperatorGraph::Implementation::graph, ClKernelGraph::graph, OperatorGraph::impl(), init_fusion_graph(), ClWorkload::op_tensor_id_lut, ClFusedKernelGraph::original_graph, DependencyGraph::src_tensors(), ClWorkload::status, translate(), and validate().
Referenced by Program::binary(), generate(), and arm_compute::test::validation::TEST_CASE().
bool arm_compute::experimental::dynamic_fusion::export_to_cl_image_support | ( | const ITensorInfo * | tensor, |
GPUTarget | gpu_target, | ||
DataLayout | data_layout | ||
) |
Definition at line 251 of file ClDirectConvolutionKernelComponent.cpp.
References ITensorInfo::data_type(), arm_compute::G71, CLKernelLibrary::get(), arm_compute::get_arch_from_target(), arm_compute::get_cl_image_pitch_alignment(), CLKernelLibrary::get_device(), arm_compute::image2d_from_buffer_supported(), arm_compute::is_data_type_float(), arm_compute::MIDGARD, arm_compute::NHWC, and ITensorInfo::tensor_shape().
Referenced by ClDirectConvolutionKernelComponent::allocate_shared_vars(), ClDirectConv2dKernel::configure(), ClDirectConvolutionKernelComponent::generate_build_options(), and ClDirectConv2dKernel::run_op().
void force_conv2d_method | ( | OperatorGraph & | graph, |
Operator | conv2d, | ||
ConvolutionMethod | method | ||
) |
(Only for Debuging and Testing) Force a conv2d method
[in,out] | graph | OperatorGraph where conv2d op is located |
[in] | conv2d | Conv2d Op |
[in] | method | Forced ConvolutionMethod |
Definition at line 195 of file OperatorGraph.cpp.
References Operator::id(), OperatorGraph::impl(), and OperatorGraph::Implementation::operators.
Referenced by arm_compute::test::validation::TEST_CASE().
Status fuse | ( | ClFusedKernelGraph & | fused_kernel_graph | ) |
Definition at line 96 of file ClFusedKernelGraph.cpp.
References ClFusedKernelGraph::can_fuse(), ClFusedKernelGraph::fuse(), and traverse().
Referenced by build().
Status generate | ( | ClWorkload & | workload, |
const ClWorkloadContext & | ctx, | ||
const ClFusedKernelGraph & | fused_kernel_graph | ||
) |
Definition at line 170 of file ClFusedKernelGraph.cpp.
References ClWorkload::add_unit_workload(), ClWorkload::add_workload_tensor(), build(), ClWorkload::context, DependencyGraph::dst_tensors(), ClFusedKernelGraph::fg_dependency, generate_store(), get_dependency_graph(), ClKernelGraph::get_tensor(), ClWorkloadContext::gpu_info, ClFusedKernelGraph::original_graph, set_tile_info(), DependencyGraph::src_tensors(), and traverse().
Referenced by build(), ClAddKernel::ClAddKernel(), ClDirectConv2dKernel::ClDirectConv2dKernel(), and ClKernel::ClKernel().
Status generate_store | ( | ClKernelBlueprint & | bp, |
const ClFusedKernelGraph & | fused_kernel_graph, | ||
const ClKernelFusionGroup & | fg | ||
) |
NOTE: dst tensor must have already been added to the blueprint at this point
NOTE: the extra dst tensor is needed as the store kcomp requires 2 tensors. But this is irrelevant to the fused kernel graph since both tensors share the exact same info and kernel arg descriptor
NOTE: Update the merge point map to link dst_dst_id with dst_t->id instead. This is required because the get_arguments() returned by the blueprint returns the dst tensor added by the store component
Definition at line 132 of file ClFusedKernelGraph.cpp.
References add_kcomp_store(), add_tensor(), ClKernel::config(), DependencyGraph::dst_tensors(), ClFusedKernelGraph::fg_dependency, ClKernelFusionGroup::get_root_kernel(), ClKernelGraph::get_tensor(), ClKernelFusionGroup::id, ClFusedKernelGraph::original_graph, ClKernelConfig::store_type, and update_merge_point().
Referenced by generate().
DependencyGraph get_dependency_graph | ( | const ClKernelBlueprint & | blueprint | ) |
Get dependency graph.
Definition at line 139 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::Implementation::get_graph(), and ClKernelBlueprint::impl().
Referenced by generate().
std::pair< Status, ClFusedKernelGraph > init_fusion_graph | ( | const ClKernelGraph & | kernel_graph | ) |
Definition at line 83 of file ClFusedKernelGraph.cpp.
References ClFusedKernelGraph::original_graph, and traverse().
Referenced by build().
bool arm_compute::experimental::dynamic_fusion::is_in | ( | const T & | v, |
const std::vector< T > & | vec | ||
) |
Definition at line 41 of file DependencyGraph.h.
References arm_compute::mlgo::parser::end().
Referenced by ClFusedKernelGraph::can_fuse(), ClFusedKernelGraph::fuse(), and DependencyGraph::path_exists_from_op_to_op().
Provide order of OpTensor by checking if t0
is "lower than" t1
.
t0
is lower than t1
Definition at line 84 of file OperatorGraph.cpp.
References OpTensor::id().
Provide order of Operator by checking if op0
is "lower than" op1
.
op0
is lower than op1
Definition at line 99 of file OperatorGraph.cpp.
References Operator::id().
inline ::std::ostream& arm_compute::experimental::dynamic_fusion::operator<< | ( | ::std::ostream & | os, |
const CLBuildOptions::StringSet & | build_opts | ||
) |
inline ::std::ostream& arm_compute::experimental::dynamic_fusion::operator<< | ( | ::std::ostream & | os, |
const CLBuildOptions & | cl_build_opts | ||
) |
Definition at line 45 of file Utils.h.
References CLBuildOptions::options().
inline ::std::ostream& arm_compute::experimental::dynamic_fusion::operator<< | ( | ::std::ostream & | os, |
const ClKernelCode & | code | ||
) |
Definition at line 57 of file Utils.h.
References ClKernelCode::build_options, ClKernelCode::code, and ClKernelCode::name.
Definition at line 103 of file OperatorGraphImpl.cpp.
References OpTensor::id().
Referenced by AddContent::AddContent(), ClAddKernel::ClAddKernel(), ClDirectConv2dKernel::ClDirectConv2dKernel(), ClKernel::ClKernel(), Conv2dContent::Conv2dContent(), and OperatorContent::OperatorContent().
Definition at line 107 of file OperatorGraphImpl.cpp.
References Padding2D::bottom, Padding2D::left, Padding2D::right, and Padding2D::top.
bool operator== | ( | const Conv2dDescriptor & | conv2d0, |
const Conv2dDescriptor & | conv2d1 | ||
) |
Definition at line 111 of file OperatorGraphImpl.cpp.
References Conv2dDescriptor::dilation, Conv2dDescriptor::pad, and Conv2dDescriptor::stride.
bool operator== | ( | const AddDescriptor & | , |
const AddDescriptor & | |||
) |
Definition at line 116 of file OperatorGraphImpl.cpp.
Status set_tile_info | ( | ClKernelBlueprint & | bp, |
const TileDescriptor & | tile_info | ||
) |
Definition at line 121 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::impl(), and ClKernelBlueprint::Implementation::set_tile_info().
Referenced by generate().
|
inline |
Definition at line 51 of file Utils.h.
References caffe_data_extractor::str.
Referenced by ClKernelBlueprint::Implementation::get_graph(), ClElementwiseAddKernelComponent::name(), and ClDirectConvolutionKernelComponent::name().
|
inline |
Status translate | ( | ClKernelGraph & | kernel_graph, |
const OperatorGraph::Implementation & | op_graph | ||
) |
Definition at line 373 of file OperatorGraphImpl.cpp.
References ARM_COMPUTE_RETURN_ON_ERROR, and traverse().
Referenced by build(), AddContent::complexity(), OperatorContent::OperatorContent(), and Conv2dContent::set_method().
std::vector< const ClKernel * > traverse | ( | const ClKernelFusionGroup & | group | ) |
Definition at line 50 of file ClFusedKernelGraph.cpp.
References ClKernelFusionGroup::fused_kernels, ClKernelFusionGroup::graph, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
Referenced by ClKernelBlueprint::Implementation::build_config_id(), ClKernelBlueprint::Implementation::build_kernel_name(), ClKernelBlueprint::Implementation::build_options(), fuse(), ClFusedKernelGraph::fuse(), generate(), ClKernelBlueprint::Implementation::get_graph(), init_fusion_graph(), and translate().
std::vector< const ClKernelFusionGroup * > traverse | ( | const ClFusedKernelGraph & | graph | ) |
Definition at line 61 of file ClFusedKernelGraph.cpp.
References ClFusedKernelGraph::fg_dependency, ClFusedKernelGraph::fusion_groups, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
std::vector< ClKernelFusionGroup * > traverse | ( | ClFusedKernelGraph & | graph | ) |
Definition at line 72 of file ClFusedKernelGraph.cpp.
References ClFusedKernelGraph::fg_dependency, ClFusedKernelGraph::fusion_groups, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
std::vector< const ClKernel * > traverse | ( | const ClKernelGraph & | graph | ) |
Definition at line 195 of file ClKernelGraph.cpp.
References ClKernelGraph::graph, ClKernelGraph::kernels, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
std::vector< ClKernel * > traverse | ( | ClKernelGraph & | graph | ) |
Definition at line 205 of file ClKernelGraph.cpp.
References ClKernelGraph::graph, ClKernelGraph::kernels, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
std::vector< const OperatorContent * > traverse | ( | const OperatorGraph::Implementation & | graph | ) |
Definition at line 351 of file OperatorGraphImpl.cpp.
References OperatorGraph::Implementation::graph, OperatorGraph::Implementation::operators, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
std::vector< OperatorContent * > traverse | ( | OperatorGraph::Implementation & | graph | ) |
Definition at line 362 of file OperatorGraphImpl.cpp.
References OperatorGraph::Implementation::graph, OperatorGraph::Implementation::operators, arm_compute::test::validation::pack, and DependencyGraph::topological_sort().
Status tune_static | ( | ClExecutionDescriptor & | , |
const ClKernelCode & | |||
) |
Definition at line 143 of file ClKernelBuildingAPI.cpp.
Status update_merge_point | ( | ClKernelBlueprint & | , |
ArgumentID | t_id, | ||
ArgumentID | merge_point | ||
) |
Update existing merge tensor merge_point
to point to t_id
.
t_id | |
merge_point |
Definition at line 116 of file ClKernelBuildingAPI.cpp.
References ClKernelBlueprint::impl(), and ClKernelBlueprint::Implementation::update_merge_point().
Referenced by generate_store().
Status validate | ( | const OperatorGraph & | op_graph | ) |
Return the validity of op_graph
, usually after performing an operation (e.g.
add_tensor) on it
[in,out] | op_graph | OperatorGraph to be validated |
Definition at line 121 of file OperatorGraph.cpp.
References OperatorGraph::impl(), and OperatorGraph::Implementation::status.
Referenced by build(), ClAddKernel::ClAddKernel(), ClDirectConv2dKernel::ClDirectConv2dKernel(), CpuGemm::configure(), arm_compute::test::validation::DATA_TEST_CASE(), CpuDepthwiseConv2d::get_depthwiseconvolution_function(), arm_compute::test::validation::TEST_CASE(), CPPSplit< CLSlice, ICLTensor >::validate(), CpuDepthwiseConv2d::validate(), CLSynthetizeOperator< ClGemmMatrixMultiplyReshapedOnlyRhsKernel >::validate(), NESynthetizeFunction< K >::validate(), CLSynthetizeFunction< K >::validate(), NEQLSTMLayer::validate(), CLQLSTMLayer::validate(), arm_compute::graph::backends::detail::validate_arg_min_max_layer(), arm_compute::graph::backends::detail::validate_bounding_box_transform_layer(), arm_compute::graph::backends::detail::validate_channel_shuffle_layer(), arm_compute::graph::backends::detail::validate_convolution_layer(), arm_compute::graph::backends::detail::validate_depth_to_space_layer(), arm_compute::graph::backends::detail::validate_depthwise_convolution_layer(), arm_compute::graph::backends::detail::validate_dequantization_layer(), arm_compute::graph::backends::detail::validate_detection_output_layer(), arm_compute::graph::backends::detail::validate_detection_post_process_layer(), arm_compute::graph::backends::detail::validate_eltwise_Layer(), arm_compute::graph::backends::detail::validate_fused_convolution_with_post_op(), arm_compute::graph::backends::detail::validate_generate_proposals_layer(), arm_compute::graph::backends::detail::validate_l2_normalize_layer(), arm_compute::graph::backends::detail::validate_normalize_planar_yuv_layer(), arm_compute::graph::backends::detail::validate_pad_layer(), arm_compute::graph::backends::detail::validate_permute_layer(), arm_compute::graph::backends::detail::validate_prelu_layer(), arm_compute::graph::backends::detail::validate_priorbox_layer(), arm_compute::graph::backends::detail::validate_quantization_layer(), arm_compute::graph::backends::detail::validate_reduction_operation_layer(), arm_compute::graph::backends::detail::validate_reorg_layer(), arm_compute::graph::backends::detail::validate_reshape_layer(), arm_compute::graph::backends::detail::validate_roi_align_layer(), arm_compute::graph::backends::detail::validate_slice_layer(), arm_compute::graph::backends::detail::validate_strided_slice_layer(), and arm_compute::graph::backends::detail::validate_unary_eltwise_layer().