MCPcopy Create free account
hub / github.com/Samsung/ONE / evalDiff

Method evalDiff

compiler/circle-eval-diff/src/CircleEvalDiff.cpp:201–246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

199}
200
201void CircleEvalDiff::evalDiff(void) const
202{
203 auto first_input_loader = circle_eval_diff::makeDataLoader(
204 _ctx->first_input_data_path, _ctx->input_format, ::inputs_of(_first_module.get()));
205 auto second_input_loader = circle_eval_diff::makeDataLoader(
206 _ctx->second_input_data_path, _ctx->input_format, ::inputs_of(_second_module.get()));
207
208 for (uint32_t data_idx = 0; data_idx < first_input_loader->size(); data_idx++)
209 {
210 std::cout << "Evaluating " << data_idx << "'th data" << std::endl;
211
212 auto first_data = first_input_loader->get(data_idx);
213 auto second_data = second_input_loader->get(data_idx);
214
215 auto first_output = interpret(_first_module.get(), first_data);
216 auto second_output = interpret(_second_module.get(), second_data);
217
218 for (auto &metric : _metrics)
219 {
220 metric->accumulate(first_output, second_output);
221 }
222
223 if (_ctx.get()->output_prefix.empty())
224 continue;
225
226 for (uint32_t i = 0; i < first_output.size(); i++)
227 {
228 auto out = first_output[i];
229 writeDataToFile(_ctx.get()->output_prefix + "." + std::to_string(data_idx) + ".first.output" +
230 std::to_string(i),
231 (char *)(out->buffer()), out->byte_size());
232 }
233 for (uint32_t i = 0; i < second_output.size(); i++)
234 {
235 auto out = second_output[i];
236 writeDataToFile(_ctx.get()->output_prefix + "." + std::to_string(data_idx) +
237 ".second.output" + std::to_string(i),
238 (char *)(out->buffer()), out->byte_size());
239 }
240 }
241
242 for (auto &metric : _metrics)
243 {
244 std::cout << metric.get() << std::endl;
245 }
246}
247
248} // namespace circle_eval_diff

Callers 1

entryFunction · 0.80

Calls 11

makeDataLoaderFunction · 0.85
inputs_ofFunction · 0.85
interpretFunction · 0.85
byte_sizeMethod · 0.80
writeDataToFileFunction · 0.70
to_stringFunction · 0.50
getMethod · 0.45
sizeMethod · 0.45
accumulateMethod · 0.45
emptyMethod · 0.45
bufferMethod · 0.45

Tested by

no test coverage detected