Arax
-8d09c51940345c86062e8ef2427c705ae66e5926
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
Loading...
Searching...
No Matches
timer.h
Go to the documentation of this file.
1
#ifndef UTILS_TIMER_H
2
#define UTILS_TIMER_H
3
4
#include <
arax.h
>
5
#include <unistd.h>
6
13
#define utils_timer_set(NAME, WHAT) clock_gettime(CLOCK_REALTIME, &((NAME).WHAT))
14
21
#define utils_timer_get_raw(NAME, WHAT) ((NAME).WHAT)
22
30
#define utils_timer_set_raw(NAME, WHAT, RAW) (NAME).WHAT = RAW
31
33
#define UTILS_TIMER_MS 1000000
35
#define UTILS_TIMER_US 1000
37
#define UTILS_TIMER_NS 1
38
45
#define utils_timer_tv_time(TV, SCALE) \
46
(((TV).tv_sec * (1000000000 / SCALE)) + (TV).tv_nsec / (SCALE))
47
55
#define utils_timer_get_time_us(NAME, WHAT) \
56
utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_US)
57
65
#define utils_timer_get_time_ns(NAME, WHAT) \
66
utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_NS)
67
73
#define utils_timer_get_duration_us(NAME) \
74
(utils_timer_tv_time((NAME).stop, UTILS_TIMER_US) \
75
- utils_timer_tv_time((NAME).start, UTILS_TIMER_US))
76
82
#define utils_timer_get_duration_ns(NAME) \
83
(utils_timer_tv_time((NAME).stop, UTILS_TIMER_NS) \
84
- utils_timer_tv_time((NAME).start, UTILS_TIMER_NS)) \
85
86
92
#define utils_timer_get_elapsed_us(NAME) \
93
({ \
94
struct timespec now; \
95
clock_gettime(CLOCK_REALTIME, &now); \
96
utils_timer_tv_time(now, UTILS_TIMER_US) \
97
- utils_timer_get_time_us(NAME, start); \
98
})
99
105
#define utils_timer_get_elapsed_ns(NAME) \
106
({ \
107
struct timespec now; \
108
clock_gettime(CLOCK_REALTIME, &now); \
109
utils_timer_tv_time(now, UTILS_TIMER_NS) \
110
- utils_timer_get_time_ns(NAME, start); \
111
})
112
113
#endif
// ifndef UTILS_TIMER_H
arax.h
src
utils
timer.h
Generated by
1.13.2