| 216 | } |
| 217 | |
| 218 | static void BM_RoundFloatToBFloat16(int iters) { |
| 219 | testing::StopTiming(); |
| 220 | static const int N = 32 << 20; |
| 221 | const int64 tot = static_cast<int64>(iters) * N; |
| 222 | testing::ItemsProcessed(tot); |
| 223 | testing::BytesProcessed(tot * (sizeof(float) + sizeof(bfloat16))); |
| 224 | |
| 225 | float* inp = new float[N]; |
| 226 | bfloat16* out = new bfloat16[N]; |
| 227 | |
| 228 | testing::StartTiming(); |
| 229 | while (iters--) { |
| 230 | RoundFloatToBFloat16(inp, out, N); |
| 231 | tensorflow::testing::DoNotOptimize(inp); |
| 232 | tensorflow::testing::DoNotOptimize(out); |
| 233 | } |
| 234 | delete[] inp; |
| 235 | delete[] out; |
| 236 | } |
| 237 | BENCHMARK(BM_RoundFloatToBFloat16); |
| 238 | |
| 239 | static void BM_BFloat16ToFloat(int iters) { |
nothing calls this directly
no test coverage detected