tvm
|
Timer for a specific device. More...
#include <profiling.h>
Public Member Functions | |
TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE (Timer, ObjectRef, TimerNode) | |
Static Public Member Functions | |
static Timer | Start (Device dev) |
Get a device specific timer. More... | |
Get a device specific timer.
dev | The device to time. |
Timer
that has already been started.Use this function to time runtime of arbitrary regions of code on a specific device. The code that you want to time should be running on the device otherwise the timer will not return correct results. This is a lower level interface than TimeEvaluator and only runs the timed code once (TimeEvaluator runs the code multiple times).
A default timer is used if a device specific one does not exist. This timer performs synchronization between the device and CPU, which can lead to overhead in the reported results.
Example usage:
To add a new device-specific timer, register a new function "profiler.timer.my_device" (where my_device
is the DeviceName
of your device). This function should accept a Device
and return a new Timer
that has already been started.
For example, this is how the CPU timer is implemented: