MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / main

Function main

examples/getting_started/vectorize.cpp:155–192  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

153static void bench_tile2() { dist_tile2(A, B); }
154
155int 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}

Callers

nothing calls this directly

Calls 10

infoFunction · 0.85
randuFunction · 0.85
dist_naiveFunction · 0.85
dist_vecFunction · 0.85
dist_gfor1Function · 0.85
dist_gfor2Function · 0.85
dist_tile1Function · 0.85
dist_tile2Function · 0.85
timeitFunction · 0.85
absFunction · 0.50

Tested by

no test coverage detected