1 /* clock.c 2 * Support file for nvptx in newlib. 3 */ 4 #include <picolibc.h> 5 6 #include <time.h> 7 8 clock_t clock()9clock () 10 { 11 unsigned long long now; 12 #if __PTX_SM__ >= 310 13 asm volatile("mov.u64 %0, %%globaltimer;" : "=r"(now)); 14 return now/((1000000000ull)/CLOCKS_PER_SEC); 15 #else 16 asm volatile("mov.u64 %0, %%clock64;" : "=r"(now)); 17 // Assume a GPU base clock frequency of 1250MHz. 18 return now/((1250000000ull)/CLOCKS_PER_SEC); 19 #endif 20 } 21