Orrery
A GPU-accelerated N-body gravitational simulator
Loading...
Searching...
No Matches
orrery::solvers::SyclEvaluationTimings Struct Reference

Where the last evaluation spent its time. More...

#include <orrery/solvers/sycl_direct_solver.hpp>

Public Attributes

backend::Duration staging_in {}
 Copying positions and masses into the shared allocations, and zeroing the padded tail.
backend::Duration kernel {}
 Submitting the kernel and waiting for the device.
backend::Duration staging_out {}
 Copying the accelerations back out.

Detailed Description

Where the last evaluation spent its time.

ADR-0027 argues that the staging step is O(N) against the kernel's O(N^2) and therefore stops mattering at the sizes the GPU is worth using at. That is an argument, and this is what turns it into a measurement. A reader who suspects the GPU figures are really measuring memcpy can check.

The same shape as EvaluationTimings in solvers/barnes_hut_solver.hpp and for the same reason: a phase that adds a step to a force evaluation should report what the step cost rather than leave it inside a total.

Member Data Documentation

◆ kernel

backend::Duration orrery::solvers::SyclEvaluationTimings::kernel {}

Submitting the kernel and waiting for the device.

This is the figure a GPU throughput number should be computed from.


The documentation for this struct was generated from the following file: