<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpu-microbench.git/Makefile, branch master</title>
<subtitle>Lightweight, hyper-accurate microbenchmarks and measurement tools for GPU scheduling examination.</subtitle>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/'/>
<entry>
<title>Include measure_startup_oh in the "all" and "clean" makefile targets</title>
<updated>2025-05-14T05:07:00+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2025-05-14T05:07:00+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=0bfe72648da989d3cee38dc6d09fa0f9145d115d'/>
<id>0bfe72648da989d3cee38dc6d09fa0f9145d115d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't assume that nvcc is available on PATH by default</title>
<updated>2025-05-14T04:45:14+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2025-05-14T04:45:14+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=0acdbe85fc1bd10160f27df847507f3e9a82f743'/>
<id>0acdbe85fc1bd10160f27df847507f3e9a82f743</id>
<content type='text'>
This change better aligns gpu-microbench with the assumptions of
the cuda_scheduling_examiner Makefile.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change better aligns gpu-microbench with the assumptions of
the cuda_scheduling_examiner Makefile.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add measure_startup_oh benchmark</title>
<updated>2025-05-13T05:19:37+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2025-05-13T05:17:45+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=0084607788a196132a1cbd9df930851e38aeba7a'/>
<id>0084607788a196132a1cbd9df930851e38aeba7a</id>
<content type='text'>
Supports ECRTS'25 partitioning paper.

To nicely parse the resultant output, one could use the following
shell pipeline:

./measure_startup_oh 2&gt;&amp;1 | cut -d "=" -s -f 2 | cut -d " " -f 2 \
                          | tr "\n" " " | sed 's/$/r - p/' | dc
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Supports ECRTS'25 partitioning paper.

To nicely parse the resultant output, one could use the following
shell pipeline:

./measure_startup_oh 2&gt;&amp;1 | cut -d "=" -s -f 2 | cut -d " " -f 2 \
                          | tr "\n" " " | sed 's/$/r - p/' | dc
</pre>
</div>
</content>
</entry>
<entry>
<title>Add measure_launch_oh benchmark and make target</title>
<updated>2024-02-27T01:29:25+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2024-02-27T01:29:25+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=340457bd5dae3624d4c92a02b84fb8206c0348a9'/>
<id>340457bd5dae3624d4c92a02b84fb8206c0348a9</id>
<content type='text'>
Benchmark supports:
=&gt; Warms up the GPU and kernel code before sampling
=&gt; Uses a flag in zero-copy memory to track when a kernel begins
=&gt; Outputs summary statistics to stderr, and sample data to stdout
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Benchmark supports:
=&gt; Warms up the GPU and kernel code before sampling
=&gt; Uses a flag in zero-copy memory to track when a kernel begins
=&gt; Outputs summary statistics to stderr, and sample data to stdout
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow custom nvcc location when running make + ignore gdb history</title>
<updated>2023-10-25T13:50:48+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2023-10-25T13:50:48+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=a1418db164af92d350234dfe6846884562c9e227'/>
<id>a1418db164af92d350234dfe6846884562c9e227</id>
<content type='text'>
To specify a custom path to nvcc when building:
`make NVCC=/my/path/to/nvcc`
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To specify a custom path to nvcc when building:
`make NVCC=/my/path/to/nvcc`
</pre>
</div>
</content>
</entry>
<entry>
<title>Add preemption_logger benchmark, make target, and fix d82c60c</title>
<updated>2023-07-06T15:45:59+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2023-07-06T15:45:59+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=e415e282be53a3d8264b67d22b4b15b518f71099'/>
<id>e415e282be53a3d8264b67d22b4b15b518f71099</id>
<content type='text'>
Benchmark supports:
=&gt; Spinning on-GPU until some number of preemptions have occured
=&gt; Monitoring GPU scheduling by logging preempt and resume times
=&gt; Logging the above as raw GPU, or converted CPU, times
=&gt; 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Benchmark supports:
=&gt; Spinning on-GPU until some number of preemptions have occured
=&gt; Monitoring GPU scheduling by logging preempt and resume times
=&gt; Logging the above as raw GPU, or converted CPU, times
=&gt; 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add a "clean" target to the Makefiles</title>
<updated>2023-07-05T20:49:03+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2023-07-05T20:49:03+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=b587ea88f62a207a18b6efa56025bc307e06d5ae'/>
<id>b587ea88f62a207a18b6efa56025bc307e06d5ae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add constant_cycles_kernel benchmark + header split and Makefile</title>
<updated>2023-06-09T23:38:01+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2023-06-09T23:38:01+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=5ba80e14efb595688a3dc3d49c212bc393840513'/>
<id>5ba80e14efb595688a3dc3d49c212bc393840513</id>
<content type='text'>
Benchmark supports:
=&gt; Looping on the GPU for a specified number of iterations
=&gt; Looping infinitely on the GPU
=&gt; 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Benchmark supports:
=&gt; Looping on the GPU for a specified number of iterations
=&gt; Looping infinitely on the GPU
=&gt; 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add copy_contender benchmark, Makefile, and copy_testbench header</title>
<updated>2023-06-09T22:55:07+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2023-06-09T22:55:07+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=e63404cfda97050b9d516232ceb4f918f48edcfc'/>
<id>e63404cfda97050b9d516232ceb4f918f48edcfc</id>
<content type='text'>
Benchmark supports:
=&gt; Generating a chain of copies in a single context
    - No timing pause between copies
=&gt; Copies to, from, or between device(s)
=&gt; Variable size and number of copies
=&gt; 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.
***
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Benchmark supports:
=&gt; Generating a chain of copies in a single context
    - No timing pause between copies
=&gt; Copies to, from, or between device(s)
=&gt; Variable size and number of copies
=&gt; 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.
***
</pre>
</div>
</content>
</entry>
</feed>
