Utility function to print customMatmulPerf_t structure
| 50 | |
| 51 | // Utility function to print customMatmulPerf_t structure |
| 52 | static void printPerfStructure(customMatmulPerf_t const& perf, int32_t const m, int32_t const n, int32_t const k) |
| 53 | { |
| 54 | AlgoProps p; |
| 55 | p.populate(perf.algo); |
| 56 | // Calculate GFLOPS |
| 57 | double timeAvg |
| 58 | = perf.time * 1e-3; // Convert to seconds. It has been divided by kNB_KERNEL_REPEATS in customMatmulRun(). |
| 59 | double gflop = (2 * static_cast<uint64_t>(m * n) * k) * 1e-9; // Real |
| 60 | |
| 61 | gLogVerbose << "Algo=" << p.algoId << " Tile=" << p.tile << " (" << matmulTileName[p.tile] << ") K=" << p.numSplitsK |
| 62 | << " Red.Sch.=" << p.reductionScheme << " Swiz=" << p.swizzle << " Cust=" << p.customOption |
| 63 | << " Stat=" << perf.status << " Time=" << perf.time << " WSbytes=" << perf.workspaceSize |
| 64 | << " math=" << p.numericImpl << " waves=" << perf.wavesCount << "GFlops=" << (gflop / timeAvg) |
| 65 | << std::endl; |
| 66 | } |
| 67 | |
| 68 | static bool timeCompare(customMatmulPerf_t const& perf_a, customMatmulPerf_t const& perf_b) |
| 69 | { |
no test coverage detected