| Commit message (Collapse) | Author | Age |
| |
|
|
|
| |
This change better aligns gpu-microbench with the assumptions of
the cuda_scheduling_examiner Makefile.
|
| | |
|
| |
|
|
|
|
|
| |
=> 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
|
| |
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
| |
Performing the synchronization in a child process was fragile,
high-overhead, and unnecessary for our use cases.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
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`.
|
| |
|
|
|
| |
To specify a custom path to nvcc when building:
`make NVCC=/my/path/to/nvcc`
|
| | |
|
| | |
|
| |
|
|
| |
On-GPU copy monitoring may have been disfunctional on Maxwell-.
|
| |
|
|
|
| |
No longer requires a recompile to change the number or type of copy
monitoring threads.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
***
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
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.
***
|