• Haocheng LIU's avatar
    Introduce asynchronous and device independent timer · 415252c6
    Haocheng LIU authored
    The timer class now is asynchronous and device independent. it's using an
    similiar API as vtkOpenGLRenderTimer with Start(), Stop(), Reset(), Ready(),
    and GetElapsedTime() function. For convenience and backward compability, Each
    Start() function call will call Reset() internally and each GetElapsedTime()
    function call will call Stop() function if it hasn't been called yet for keeping
    backward compatibility purpose.
    
    Bascially it can be used in two modes:
    
    * Create a Timer without any device info. vtkm::cont::Timer time;
    
      * It would enable timers for all enabled devices on the machine. Users can get a
    specific elapsed time by passing a device id into the GetElapsedtime function.
    If no device is provided, it would pick the maximum of all timer results - the
    logic behind this decision is that if cuda is disabled, openmp, serial and tbb
    roughly give the same results; if cuda is enabled it's safe to return the
    maximum elapsed time since users are more interested in the device execution
    time rather than the kernal launch time. The Ready function can be handy here
    to query the status of the timer.
    
    * Create a Timer with a device id. vtkm::cont::Timer time((vtkm::cont::DeviceAdapterTagCuda()));
    
      * It works as the old timer that times for a specific device id.
    415252c6
Name
Last commit
Last update
..
clipping Loading commit data...
contour_tree Loading commit data...
contour_tree_augmented Loading commit data...
cosmotools Loading commit data...
demo Loading commit data...
game_of_life Loading commit data...
hello_world Loading commit data...
histogram Loading commit data...
isosurface Loading commit data...
lagrangian Loading commit data...
multi_backend Loading commit data...
oscillator Loading commit data...
particle_advection Loading commit data...
redistribute_points Loading commit data...
rendering Loading commit data...
streamline Loading commit data...
tau_timing Loading commit data...
temporal_advection Loading commit data...
tetrahedra Loading commit data...
unified_memory Loading commit data...
CMakeLists.txt Loading commit data...