MCPcopy Create free account
hub / github.com/ROCm/AMDMIGraphX / append

Method append

src/include/migraphx/op/loop.hpp:100–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98 }
99
100 void append(const std::vector<argument>& iter_state,
101 const std::vector<argument>& concatenated_outputs,
102 const std::vector<int64_t>& scan_output_dirs,
103 int64_t curr_iter,
104 int64_t num_iters) const
105 {
106 assert(iter_state.size() == concatenated_outputs.size());
107 for(auto i : range(iter_state.size()))
108 {
109 const auto& iter_stat = iter_state.at(i);
110 const auto& scan_out = concatenated_outputs.at(i);
111
112 auto dir = scan_output_dirs.empty() ? 0 : scan_output_dirs[i];
113 auto idx = (1 - dir) * curr_iter + dir * (num_iters - 1 - curr_iter);
114
115 auto* in_data = iter_stat.data();
116 auto* out_data = scan_out.data();
117 std::size_t out_size = iter_stat.get_shape().bytes();
118 assert((idx + 1) * out_size <= scan_out.get_shape().bytes());
119 std::copy(in_data, in_data + out_size, out_data + idx * out_size);
120 }
121 }
122
123 void set_zero(context&, const std::vector<argument>& concatenated_outputs, int iter) const
124 {

Callers 2

interpolate_stringFunction · 0.45
run_loopFunction · 0.45

Calls 8

atMethod · 0.80
rangeFunction · 0.50
copyFunction · 0.50
sizeMethod · 0.45
emptyMethod · 0.45
dataMethod · 0.45
bytesMethod · 0.45
get_shapeMethod · 0.45

Tested by

no test coverage detected