| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| | |
|
| |
|
|
| |
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.
***
|