Przeglądaj źródła

Fix flops computation in gemm

Samuel Thibault 10 lat temu
rodzic
commit
be9be0e496
1 zmienionych plików z 3 dodań i 3 usunięć
  1. 3 3
      examples/mult/xgemm.c

+ 3 - 3
examples/mult/xgemm.c

@@ -333,7 +333,7 @@ int main(int argc, char **argv)
 			task->handles[1] = starpu_data_get_sub_data(B_handle, 1, x);
 			task->handles[2] = starpu_data_get_sub_data(C_handle, 2, x, y);
 
-			task->flops = 2 * (xdim/nslicesx) * (ydim/nslicesy) * zdim;
+			task->flops = 2ULL * (xdim/nslicesx) * (ydim/nslicesy) * zdim;
 
 			ret = starpu_task_submit(task);
 			if (ret == -ENODEV)
@@ -355,8 +355,8 @@ int main(int argc, char **argv)
 
 	double timing = end - start;
 	double min;
-	double flops = 2.0*((unsigned long)niter)*((unsigned long)xdim)
-				*((unsigned long)ydim)*((unsigned long)zdim);
+	double flops = 2.0*((unsigned long long)niter)*((unsigned long long)xdim)
+		           *((unsigned long long)ydim)*((unsigned long long)zdim);
 
 	if (bound)
 	starpu_bound_compute(&min, NULL, 0);