docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
rocblas_data_transfer_extraction.h
Go to the documentation of this file.
1#pragma once
2
3#include <nlohmann/json_fwd.hpp>
4#include <string>
5
13#include "sdfg/types/pointer.h"
14
15namespace sdfg {
16namespace rocm {
17
19private:
20 math::blas::BLASNode& blas_node_;
21
22 std::string create_device_container(
24 );
25
26 void create_allocate(
30 const std::string& device_container,
31 const symbolic::Expression& size,
32 const types::Pointer& type
33 );
34 void create_deallocate(
38 const std::string& device_container,
39 const types::Pointer& type
40 );
41
42 void create_copy_to_device(
46 const std::string& host_container,
47 const std::string& device_container,
48 const symbolic::Expression& size,
49 const types::Pointer& type
50 );
51 void create_copy_from_device(
55 const std::string& host_container,
56 const std::string& device_container,
57 const symbolic::Expression& size,
58 const types::Pointer& type
59 );
60
61 void create_copy_to_device_with_allocation(
65 const std::string& host_container,
66 const std::string& device_container,
67 const symbolic::Expression& size,
68 const types::Pointer& type
69 );
70 void create_copy_from_device_with_deallocation(
74 const std::string& host_container,
75 const std::string& device_container,
76 const symbolic::Expression& size,
77 const types::Pointer& type
78 );
79
80public:
82
83 virtual std::string name() const override;
84
85 virtual bool
87
88 virtual void apply(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) override;
89
90 virtual void to_json(nlohmann::json& json) const override;
91
93};
94
95} // namespace rocm
96} // namespace sdfg
Definition analysis.h:53
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Base class for BLAS operation nodes.
Definition blas_node.h:169
ROCBLASDataTransferExtraction(math::blas::BLASNode &blas_node)
virtual void apply(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Apply this transformation to the SDFG.
virtual bool can_be_applied(builder::StructuredSDFGBuilder &builder, analysis::AnalysisManager &analysis_manager) override
Check if this transformation can be safely applied.
virtual std::string name() const override
Get the name of this transformation.
static ROCBLASDataTransferExtraction from_json(builder::StructuredSDFGBuilder &builder, const nlohmann::json &j)
virtual void to_json(nlohmann::json &json) const override
Serialize this transformation to JSON.
A control flow node representing a basic block with dataflow computations.
Definition block.h:42
A sequential container of control flow nodes.
Definition sequence.h:52
Base class for all SDFG transformations.
Definition transformation.h:25
Represents a pointer type.
Definition pointer.h:32
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
nlohmann::json json
Definition interstate_edge.h:14
Definition function_builder.h:10
Definition rocm_library_node_rewriter_pass.h:9
Definition analysis.h:7
Pointer type representation.
Symbolic system for integer-based symbol analysis.