MCPcopy Create free account
hub / github.com/cactus-compute/cactus / test_basic_operation

Function test_basic_operation

tests/test_utils.cpp:132–157  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

130}
131
132bool test_basic_operation(const std::string& op_name,
133 std::function<size_t(CactusGraph&, size_t, size_t)> op_func,
134 const std::vector<__fp16>& data_a,
135 const std::vector<__fp16>& data_b,
136 const std::vector<__fp16>& expected,
137 const std::vector<size_t>& shape) {
138 (void)op_name;
139 CactusGraph graph;
140 size_t input_a = graph.input(shape, Precision::FP16);
141 size_t input_b = graph.input(shape, Precision::FP16);
142 size_t result_id = op_func(graph, input_a, input_b);
143
144 graph.set_input(input_a, const_cast<void*>(static_cast<const void*>(data_a.data())), Precision::FP16);
145 graph.set_input(input_b, const_cast<void*>(static_cast<const void*>(data_b.data())), Precision::FP16);
146 graph.execute();
147
148 __fp16* output = static_cast<__fp16*>(graph.get_output(result_id));
149 for (size_t i = 0; i < expected.size(); ++i) {
150 if (std::abs(static_cast<float>(output[i]) - static_cast<float>(expected[i])) > 1e-2f) {
151 graph.hard_reset();
152 return false;
153 }
154 }
155 graph.hard_reset();
156 return true;
157}
158
159bool test_scalar_operation(const std::string& op_name,
160 std::function<size_t(CactusGraph&, size_t, float)> op_func,

Callers 4

test_basic_additionFunction · 0.85
test_basic_subtractionFunction · 0.85
test_basic_divisionFunction · 0.85

Calls 7

dataMethod · 0.80
sizeMethod · 0.80
inputMethod · 0.45
set_inputMethod · 0.45
executeMethod · 0.45
get_outputMethod · 0.45
hard_resetMethod · 0.45

Tested by

no test coverage detected