summaryrefslogtreecommitdiffstats
path: root/copy_experiments
Commit message (Collapse)AuthorAge
* Don't assume that nvcc is available on PATH by defaultJoshua Bakita2025-05-14
| | | | | This change better aligns gpu-microbench with the assumptions of the cuda_scheduling_examiner Makefile.
* Ensure all benchmarks support --help and cleanupJoshua Bakita2024-02-26
|
* Add gl_copies benchmark and make targetJoshua Bakita2024-02-26
| | | | | | | => Uploads a large texture to the GPU on every frame => Requires the freeglut library (freeglut3-dev on Ubuntu) => Due to special requirements, not built by default => Written for Anderson and Bakita RTAS'24 paper
* Fix timestamping bugs and clean up CPU side of mon_cross_ctx_copiesJoshua Bakita2024-02-21
| | | | | | | | | - Add a more reliable heuristic for how long to run the CPU-side copy monitor. - Check that copies sizes are appropriately divisible. - Fix parsing issue for copies larger than 8192 GiB. - Clean up, and document bugs in, the time synchronization code. - Wait for user before logging copies.
* 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.
* Support >4 GiB copy sizes in `mon_cross_ctx_copies`Joshua Bakita2024-02-19
|
* 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`.
* Allow custom nvcc location when running make + ignore gdb historyJoshua Bakita2023-10-25
| | | | | To specify a custom path to nvcc when building: `make NVCC=/my/path/to/nvcc`
* Add a "clean" target to the MakefilesJoshua Bakita2023-07-05
|
* Comments and check for successful cleanup in mon_cross_ctx_copiesJoshua Bakita2023-07-05
|
* Fix backwards compatibility and checks in mon_cross_ctx_copiesJoshua Bakita2023-06-21
| | | | On-GPU copy monitoring may have been disfunctional on Maxwell-.
* Rewrite argument parsing for mon_cross_ctx_copiesJoshua Bakita2023-06-21
| | | | | No longer requires a recompile to change the number or type of copy monitoring threads.
* Add mon_cross_ctx_copies benchmark and make targetJoshua Bakita2023-06-13
| | | | | | | | | | | | | | | | Benchmark supports: => Generating parallel copies from CPU to GPU in seperate process => Granular timestamping of when each portion of the copy completes => Monitoring of copy process from either CPU or GPU => Tested on platforms including the GV100 and GV11B Formerly known as diff_ctx_diff_stream. *** Warning *** * The current implementation requires some hardcoded parameters * (such as the number of monitoring threads on the GPU) to be * updated and recompiled when switching test platform. ***
* Add constant_cycles_kernel benchmark + header split and MakefileJoshua Bakita2023-06-09
| | | | | | | | | | Benchmark supports: => Looping on the GPU for a specified number of iterations => Looping infinitely on the GPU => Logging the sum time (ns and ms) for all iterations to complete Also splits `testbench.h` out of `copy_testbench.h` for use in other benchmarks.
* Add copy_contender benchmark, Makefile, and copy_testbench headerJoshua Bakita2023-06-09
Benchmark supports: => Generating a chain of copies in a single context - No timing pause between copies => Copies to, from, or between device(s) => Variable size and number of copies => Logging how many milliseconds each copy takes *** Warning *** * Relies on implicit synchronization of unidirectional copies across * streams. Verify that this is still the case with CUDA before * trusting results. One can check by verifying that the runtime for * one iteration roughly matches the time for each iteration in a * multi-iteration run. ***