| 185 | |
| 186 | template <typename Opr> |
| 187 | std::string Benchmarker<Opr>::format_result(const PerformanceResultPair& perf_result) { |
| 188 | std::stringstream ss; |
| 189 | char buffer[200]; |
| 190 | |
| 191 | ss << "case: " << perf_result.args << "\n"; |
| 192 | snprintf( |
| 193 | buffer, sizeof(buffer), |
| 194 | "megcc result time = %f ms, throughput %f Gops, %f mbps\n", |
| 195 | perf_result.megcc_performance.kernel_time_ms, |
| 196 | perf_result.megcc_performance.compute_throughput_gops, |
| 197 | perf_result.megcc_performance.memory_throughput_mbps); |
| 198 | ss << std::string(buffer); |
| 199 | snprintf( |
| 200 | buffer, sizeof(buffer), |
| 201 | "dnn result time = %f ms, throughput %f Gops, %f mbps, speedup %f\n", |
| 202 | perf_result.dnn_performance.kernel_time_ms, |
| 203 | perf_result.dnn_performance.compute_throughput_gops, |
| 204 | perf_result.dnn_performance.memory_throughput_mbps, |
| 205 | perf_result.megcc_performance.compute_throughput_gops / |
| 206 | perf_result.dnn_performance.compute_throughput_gops); |
| 207 | ss << std::string(buffer); |
| 208 | return ss.str(); |
| 209 | } |
| 210 | template class megcc::test::Benchmarker<megdnn::ElemwiseForward>; |
| 211 | template class megcc::test::Benchmarker<megdnn::ConvBiasForward>; |
| 212 | template class megcc::test::Benchmarker<megdnn::ConvolutionForward>; |