HIP: record direct atomic PSF timings
This commit is contained in:
1 parent
7a80086f63
commit
a18ebfbf1a
9 files changed
+279
-10
No files matched your search
+25
-2
@@ -134,6 +134,7 @@ typedef struct {
|
||||
#ifdef PSF_BACKEND_HIP
|
||||
HipPsfSink *hip;
|
||||
char hip_message[256];
|
||||
HipPsfTiming hip_timing;
|
||||
#endif
|
||||
int failed;
|
||||
} PsfEventSink;
|
||||
@@ -227,6 +228,10 @@ static int psf_event_sink_resume_gpu(PsfEventSink *sink) {
|
||||
static int psf_event_sink_destroy(PsfEventSink *sink) {
|
||||
int result = psf_event_sink_finish_for_cpu(sink);
|
||||
#ifdef PSF_BACKEND_HIP
|
||||
if (sink->hip != NULL && hip_psf_sink_get_timing(sink->hip, &sink->hip_timing)) {
|
||||
psf_event_sink_mark_failed(sink, "timing collection");
|
||||
result = -1;
|
||||
}
|
||||
hip_psf_sink_destroy(sink->hip);
|
||||
#endif
|
||||
free(sink->events);
|
||||
@@ -998,6 +1003,8 @@ typedef struct {
|
||||
size_t direct_fallbacks;
|
||||
size_t cached_wing_clipped;
|
||||
size_t discarded_below_min_y;
|
||||
size_t gpu_event_count, gpu_batch_count, gpu_timed_batch_count;
|
||||
double gpu_upload_seconds, gpu_kernel_seconds, gpu_download_seconds;
|
||||
int failed;
|
||||
#ifdef GR_DEBUG
|
||||
double max_raw_magnification;
|
||||
@@ -1016,6 +1023,12 @@ static void copy_psf_splat_stats(PsfSplatStats *destination,
|
||||
.cached_wing_clipped = source.cached_wing_clipped,
|
||||
.direct_fallbacks = source.direct_fallbacks,
|
||||
.discarded_below_min_y = source.discarded_below_min_y,
|
||||
.gpu_event_count = source.gpu_event_count,
|
||||
.gpu_batch_count = source.gpu_batch_count,
|
||||
.gpu_timed_batch_count = source.gpu_timed_batch_count,
|
||||
.gpu_upload_seconds = source.gpu_upload_seconds,
|
||||
.gpu_kernel_seconds = source.gpu_kernel_seconds,
|
||||
.gpu_download_seconds = source.gpu_download_seconds,
|
||||
#ifdef GR_DEBUG
|
||||
.max_raw_magnification = source.max_raw_magnification,
|
||||
.magnification_clamped_triangles =
|
||||
@@ -1162,8 +1175,18 @@ static CatalogSplatStats splat_catalog_triangles(
|
||||
stats.cached_wing_clipped += context.cached_wing_clipped;
|
||||
stats.discarded_below_min_y += context.discarded_below_min_y;
|
||||
}
|
||||
if (owns_sink && psf_event_sink_destroy(&owned_sink))
|
||||
stats.failed = 1;
|
||||
if (owns_sink) {
|
||||
if (psf_event_sink_destroy(&owned_sink))
|
||||
stats.failed = 1;
|
||||
#ifdef PSF_BACKEND_HIP
|
||||
stats.gpu_event_count = owned_sink.hip_timing.event_count;
|
||||
stats.gpu_batch_count = owned_sink.hip_timing.batch_count;
|
||||
stats.gpu_timed_batch_count = owned_sink.hip_timing.timed_batch_count;
|
||||
stats.gpu_upload_seconds = owned_sink.hip_timing.upload_seconds;
|
||||
stats.gpu_kernel_seconds = owned_sink.hip_timing.kernel_seconds;
|
||||
stats.gpu_download_seconds = owned_sink.hip_timing.download_seconds;
|
||||
#endif
|
||||
}
|
||||
return stats;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user