summaryrefslogtreecommitdiffstats
path: root/preemption_logger.cu
Commit message (Collapse)AuthorAge
* Rewrite clock rate synchronization code to increase accuracyJoshua Bakita2024-02-20
| | | | | | | | | | | | | | | | | | | | Mirrors architecture used for instantaneous clock synchronization. The PPM (parts-per-million) error after a two-second synchronization period (using results from new implementation after a 100-second synchronization period as ground truth, as after 100 seconds, the new and old implementation disagree by at most 2 PPM). GPU (machine name) Before After ------------------------------ ------ ------ GTX 1060 3 GiB (jbakita-old): 12 1 GTX 970 (jbakita-old): 9 2 GTX 1080 Ti (yamaha): 5 1 RTX 6000 Ada (yamaha): 4 2 (An error of 1 PPM is 1 microsecond per second.) Also modify `preemption_logger` to print the rate of skew as PPM, rather than just as a multiplier.
* Always synchronize GPU and CPU time in the current processJoshua Bakita2024-02-19
| | | | | Performing the synchronization in a child process was fragile, high-overhead, and unnecessary for our use cases.
* Split SAFE() macro into API-specific typed variantsJoshua Bakita2024-02-19
| | | | | | | | | Avoids incorrectly interpreting CUDA Driver Library error codes as though they were CUDA Runtime Library error codes (the numbering is similar, but not identical). Also cleans up how we initialize and terminate a context for capability checking in `mon_cross_ctx_copies`.
* Add preemption_logger benchmark, make target, and fix d82c60cJoshua Bakita2023-07-06
Benchmark supports: => Spinning on-GPU until some number of preemptions have occured => Monitoring GPU scheduling by logging preempt and resume times => Logging the above as raw GPU, or converted CPU, times => Measuring launch overheads Also imports task_host_utilities.cu from cuda_scheduling_examiner as of commit 9fc0ca898ef64b82cbc3734c60405723650bc66f. This is needed for timing logic used in both preemption_logger and mon_cross_ctx_copies, thus the latter would not compile prior to this commit. Also adds a new testbench helper, and a .gitignore for binaries.