Skip to content

Commit 38dcf34

Browse files
authored
Support timing Apple M1
1 parent 93843c5 commit 38dcf34

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

benchmark/bench.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ static void *huge_malloc(BLASLONG size){
7474

7575
#if defined(__WIN32__) || defined(__WIN64__) || !defined(_POSIX_TIMERS)
7676
struct timeval start, stop;
77+
#elif defined(__APPLE__)
78+
mach_timebase_info_data_t info;
79+
uint64_t start = 0, stop = 0;
7780
#else
7881
struct timespec start = { 0, 0 }, stop = { 0, 0 };
7982
#endif
@@ -82,6 +85,9 @@ double getsec()
8285
{
8386
#if defined(__WIN32__) || defined(__WIN64__) || !defined(_POSIX_TIMERS)
8487
return (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
88+
#elif defined(__APPLE__)
89+
mach_timebase_info(&info);
90+
return (double)(((stop - start) * info.numer)/info.denom) * 1.e-9;
8591
#else
8692
return (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_nsec - start.tv_nsec)) * 1.e-9;
8793
#endif
@@ -90,6 +96,8 @@ double getsec()
9096
void begin() {
9197
#if defined(__WIN32__) || defined(__WIN64__) || !defined(_POSIX_TIMERS)
9298
gettimeofday( &start, (struct timezone *)0);
99+
#elif defined(__APPLE__)
100+
start = clock_gettime_nsec_np(CLOCK_UPTIME_RAW);
93101
#else
94102
clock_gettime(CLOCK_REALTIME, &start);
95103
#endif
@@ -98,7 +106,9 @@ void begin() {
98106
void end() {
99107
#if defined(__WIN32__) || defined(__WIN64__) || !defined(_POSIX_TIMERS)
100108
gettimeofday( &stop, (struct timezone *)0);
109+
#elif defined(__APPLE__)
110+
stop = clock_gettime_nsec_np(CLOCK_UPTIME_RAW);
101111
#else
102112
clock_gettime(CLOCK_REALTIME, &stop);
103113
#endif
104-
}
114+
}

0 commit comments

Comments
 (0)