|
docc 0.8.3 (0d44999b)
C++ API Reference
|
#include <sdfg/transformations/offloading/offload_transform.h>
Public Member Functions | |
| OffloadTransform (structured_control_flow::StructuredLoop &loop, bool allow_dynamic_sizes=false) | |
| bool | can_be_applied (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Check if this transformation can be safely applied. | |
| void | apply (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override |
| Apply this transformation to the SDFG. | |
| Public Member Functions inherited from sdfg::transformations::Transformation | |
| virtual | ~Transformation ()=default |
| virtual void | set_report (PassReportConsumer *report) |
| Set the report consumer for transformation feedback. | |
| virtual std::string | name () const =0 |
| Get the name of this transformation. | |
| virtual bool | try_apply (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) |
| Attempt to apply the transformation if possible. | |
| virtual void | to_json (nlohmann::json &j) const =0 |
| Serialize this transformation to JSON. | |
Protected Member Functions | |
| virtual types::StorageType | local_device_storage_type ()=0 |
| virtual types::StorageType | global_device_storage_type (symbolic::Expression arg_size)=0 |
| virtual ScheduleType | transformed_schedule_type ()=0 |
| virtual std::string | copy_prefix ()=0 |
| template<class Container> | |
| void | allocate_locals_on_device_stack (builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager, Container &locals) |
| virtual void | setup_device (builder::StructuredSDFGBuilder &builder, Block &global_alloc_block)=0 |
| virtual void | teardown_device (builder::StructuredSDFGBuilder &builder, Block &global_alloc_block)=0 |
| void | handle_device_setup_and_teardown (builder::StructuredSDFGBuilder &builder, const std::map< std::string, analysis::RegionArgument > &arguments, const std::unordered_map< std::string, symbolic::Expression > &argument_sizes, std::string prefix) |
| void | update_loop_containers (const std::map< std::string, analysis::RegionArgument > &arguments, std::string prefix) |
| virtual void | add_device_buffer (builder::StructuredSDFGBuilder &builder, std::string host_arg_name, std::string device_arg_name, symbolic::Expression arg_size)=0 |
| virtual void | allocate_device_arg (builder::StructuredSDFGBuilder &builder, Block &alloc_block, std::string host_arg_name, std::string device_arg_name, symbolic::Expression arg_size, symbolic::Expression page_size)=0 |
| virtual void | deallocate_device_arg (builder::StructuredSDFGBuilder &builder, Block &dealloc_block, std::string device_arg_name, symbolic::Expression arg_size, symbolic::Expression page_size)=0 |
| virtual void | copy_to_device (builder::StructuredSDFGBuilder &builder, std::string host_arg_name, std::string device_arg_name, symbolic::Expression size, symbolic::Expression page_size, Block ©_block)=0 |
| virtual void | copy_to_device_with_allocation (builder::StructuredSDFGBuilder &builder, std::string host_arg_name, std::string device_arg_name, symbolic::Expression size, symbolic::Expression page_size, Block ©_block)=0 |
| virtual void | copy_from_device (builder::StructuredSDFGBuilder &builder, Block ©_out_block, std::string host_arg_name, std::string device_arg_name, symbolic::Expression size, symbolic::Expression page_size)=0 |
| virtual void | copy_from_device_with_free (builder::StructuredSDFGBuilder &builder, Block ©_out_block, std::string host_arg_name, std::string device_arg_name, symbolic::Expression size, symbolic::Expression page_size)=0 |
Protected Attributes | |
| structured_control_flow::StructuredLoop & | loop_ |
| bool | allow_dynamic_sizes_ = false |
| bool | skip_unneeded_d2h_ = true |
| Protected Attributes inherited from sdfg::transformations::Transformation | |
| PassReportConsumer * | report_ = nullptr |
|
explicit |
|
protectedpure virtual |
|
protectedpure virtual |
|
inlineprotected |
|
overridevirtual |
Apply this transformation to the SDFG.
| builder | The SDFG builder |
| analysis_manager | The analysis manager (may be invalidated) |
Implements sdfg::transformations::Transformation.
|
overridevirtual |
Check if this transformation can be safely applied.
| builder | The SDFG builder |
| analysis_manager | The analysis manager providing necessary analyses |
Implements sdfg::transformations::Transformation.
Reimplemented in sdfg::rocm::ROCMTransform.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
Implemented in sdfg::cuda::CUDAOffloadTransform, sdfg::cuda::CUDATransform, sdfg::gpu::GPUOffloadTransform< OffloaderNodeType >, sdfg::gpu::GPUOffloadTransform< CUDADataOffloadingNode >, sdfg::gpu::GPUOffloadTransform< ROCMDataOffloadingNode >, sdfg::rocm::ROCMOffloadTransform, and sdfg::rocm::ROCMTransform.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
Implemented in sdfg::cuda::CUDAOffloadTransform, sdfg::cuda::CUDATransform, sdfg::gpu::GPUOffloadTransform< OffloaderNodeType >, sdfg::gpu::GPUOffloadTransform< CUDADataOffloadingNode >, sdfg::gpu::GPUOffloadTransform< ROCMDataOffloadingNode >, sdfg::rocm::ROCMOffloadTransform, and sdfg::rocm::ROCMTransform.
|
protected |
|
protectedpure virtual |
Implemented in sdfg::cuda::CUDAOffloadTransform, sdfg::cuda::CUDATransform, sdfg::gpu::GPUOffloadTransform< OffloaderNodeType >, sdfg::gpu::GPUOffloadTransform< CUDADataOffloadingNode >, sdfg::gpu::GPUOffloadTransform< ROCMDataOffloadingNode >, sdfg::rocm::ROCMOffloadTransform, and sdfg::rocm::ROCMTransform.
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
Implemented in sdfg::cuda::CUDAOffloadTransform, sdfg::cuda::CUDATransform, sdfg::gpu::GPUOffloadTransform< OffloaderNodeType >, sdfg::gpu::GPUOffloadTransform< CUDADataOffloadingNode >, sdfg::gpu::GPUOffloadTransform< ROCMDataOffloadingNode >, sdfg::rocm::ROCMOffloadTransform, and sdfg::rocm::ROCMTransform.
|
protected |
|
protected |
|
protected |
|
protected |