| 153 | static void bench_tile2() { dist_tile2(A, B); } |
| 154 | |
| 155 | int main(int, char **) { |
| 156 | try { |
| 157 | af::info(); |
| 158 | |
| 159 | // Do not increase the sizes |
| 160 | // dist_naive and dist_vec get too slow at large sizes |
| 161 | A = randu(3, 200); |
| 162 | B = randu(3, 300); |
| 163 | |
| 164 | array d1 = dist_naive(A, B); |
| 165 | array d2 = dist_vec(A, B); |
| 166 | array d3 = dist_gfor1(A, B); |
| 167 | array d4 = dist_gfor2(A, B); |
| 168 | array d5 = dist_tile1(A, B); |
| 169 | array d6 = dist_tile2(A, B); |
| 170 | |
| 171 | printf("Max. Error for dist_vec : %f\n", max<float>(abs(d1 - d2))); |
| 172 | printf("Max. Error for dist_gfor1: %f\n", max<float>(abs(d1 - d3))); |
| 173 | printf("Max. Error for dist_gfor2: %f\n", max<float>(abs(d1 - d4))); |
| 174 | printf("Max. Error for dist_tile1: %f\n", max<float>(abs(d1 - d5))); |
| 175 | printf("Max. Error for dist_tile2: %f\n", max<float>(abs(d1 - d6))); |
| 176 | |
| 177 | printf("\n"); |
| 178 | |
| 179 | printf("Time for dist_naive: %2.2fms\n", 1000 * timeit(bench_naive)); |
| 180 | printf("Time for dist_vec : %2.2fms\n", 1000 * timeit(bench_vec)); |
| 181 | printf("Time for dist_gfor1: %2.2fms\n", 1000 * timeit(bench_gfor1)); |
| 182 | printf("Time for dist_gfor2: %2.2fms\n", 1000 * timeit(bench_gfor2)); |
| 183 | printf("Time for dist_tile1: %2.2fms\n", 1000 * timeit(bench_tile1)); |
| 184 | printf("Time for dist_tile2: %2.2fms\n", 1000 * timeit(bench_tile2)); |
| 185 | |
| 186 | } catch (const af::exception &ex) { |
| 187 | fprintf(stderr, "%s\n", ex.what()); |
| 188 | throw; |
| 189 | } |
| 190 | |
| 191 | return 0; |
| 192 | } |
nothing calls this directly
no test coverage detected