/* clock.c * Support file for nvptx in newlib. */ #include /* PTX's clock64 is a cycle count, whose frequency varies with the GPU's operating frequency, which may be boosted or thermally throttled at run-time. The value provided is suitable for relative timings, but must be corrected [by the host] for accurate elapsed/wall clock times. */ /* NVidia RTX-2080 Super 1650-1815 MHz. */ /* NVidia GTX-1070 1506-1683 MHz. */ /* NVidia RTX-2070 1410 MHz. */ /* NVidia GTX-1050 Ti 1290-1392 MHz. */ /* NVidia Quadro P400 1228-1252 MHz. */ /* NVidia GTX 660 823 MHz. */ #define NVPTX_MHZ 1250 clock_t clock () { unsigned long long now; asm volatile("mov.u64 %0, %%clock64;" : "=r"(now)); return now/((NVPTX_MHZ*1000000)/CLOCKS_PER_SEC); }