Selaa lähdekoodia

profiling bus: fixing display data transfer

Chiheb Sakka 8 vuotta sitten
vanhempi
commit
6c2ca8c1b6
1 muutettua tiedostoa jossa 23 lisäystä ja 13 poistoa
  1. 23 13
      src/profiling/profiling_helpers.c

+ 23 - 13
src/profiling/profiling_helpers.c

@@ -24,14 +24,19 @@ static double convert_to_byte_units(float d, unsigned max_unit, unsigned *unit)
 	const double divisor = 1024;
 
 	*unit = 0;
-	while (d > divisor && *unit < max_unit)
-	{
+	while (d > divisor && *unit < max_unit) {
 		d /= divisor;
 		(*unit)++;
 	}
 	return d;
 }
 
+static double convert_to_GB(float d)
+{
+	const double divisor = 1024;
+	return d = (((d / divisor) / divisor) / divisor);
+}
+
 void _starpu_profiling_bus_helper_display_summary(FILE *stream)
 {
 	int long long sum_transferred = 0;
@@ -58,25 +63,30 @@ void _starpu_profiling_bus_helper_display_summary(FILE *stream)
 		int long long transfer_cnt =  bus_info.transfer_count;
 		double elapsed_time = starpu_timing_timespec_to_us(&bus_info.total_time) / 1e6;
 
-		unsigned unit = 0;
-		double d = convert_to_byte_units(transferred, max_unit, &unit);
-		double avg = (transfer_cnt != 0) ? (d / transfer_cnt) : 0;
+		/* Ne pas utiliser convert_to_byte_units */
+		/* Hardcorder les unités: unit=3 "GB" */
+		unsigned unit = 3;
+		double d = convert_to_GB(transferred);
+		/* double d = convert_to_byte_units(transferred, max_unit, &unit); */
 
 		_starpu_memory_node_get_name(src, src_name, sizeof(src_name));
 		_starpu_memory_node_get_name(dst, dst_name, sizeof(dst_name));
 
 		fprintf(stream, "\t%s -> %s", src_name, dst_name);
-		fprintf(stream, "\t%.2lf %s", d, byte_units[unit]);
-		fprintf(stream, "\t%.2lf %s/s", d / elapsed_time, byte_units[unit]);
-		fprintf(stream, "\t(transfers : %lld - avg %.2lf %s)\n", transfer_cnt, avg, byte_units[unit]);
+		fprintf(stream, "\t%.4lf %s", d, byte_units[unit]);
+		fprintf(stream, "\t%.4lf %s/s", (d * 1024) / elapsed_time, byte_units[unit - 1]); /* MB/s */
+		fprintf(stream, "\t(transfers : %lld - avg %.4lf %s)\n", transfer_cnt, (d * 1024) / transfer_cnt, byte_units[unit - 1]); /* avg MB/s */
 
 		sum_transferred += transferred;
 	}
-
-	unsigned unit = 0;
-	double d = convert_to_byte_units(sum_transferred, max_unit, &unit);
-
-	fprintf(stream, "Total transfers: %.2lf %s\n", d, byte_units[unit]);
+	
+	/* Ne pas utiliser convert_to_byte_units */
+	/* Hardcorder les unités: unit=3 "GB" */
+	unsigned unit = 3;
+	/* double d = convert_to_byte_units(sum_transferred, max_unit, &unit); */
+	double d = convert_to_GB(sum_transferred);
+
+	fprintf(stream, "Total transfers: %.4lf %s\n", d, byte_units[unit]);
 	fprintf(stream, "#---------------------\n");
 }