<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpu-microbench.git, 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>Support measuring the startup overhead of libsmctrl or nvtaskset</title>
<updated>2025-06-18T02:29:08+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2025-06-18T02:29:08+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=e8a58986e83f6505a33ce5af0a57d752b405076e'/>
<id>e8a58986e83f6505a33ce5af0a57d752b405076e</id>
<content type='text'>
Allows specifying an environment variable to only be applied to the
child, e.g.:
    ./measure_startup_oh -e LD_PRELOAD=libsmctrl.so
Or for starting the child process via a intermediate task, e.g.:
    ./measure_startup_oh ./nvtaskset 0xf ./measure_launch_oh 1

This allows for correctly measuring the startup overhead in the
evaluation of the ECRTS'25 partitioning paper.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allows specifying an environment variable to only be applied to the
child, e.g.:
    ./measure_startup_oh -e LD_PRELOAD=libsmctrl.so
Or for starting the child process via a intermediate task, e.g.:
    ./measure_startup_oh ./nvtaskset 0xf ./measure_launch_oh 1

This allows for correctly measuring the startup overhead in the
evaluation of the ECRTS'25 partitioning paper.
</pre>
</div>
</content>
</entry>
<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 a sched_yield() between each interation of measure_launch_oh</title>
<updated>2025-05-13T04:55:24+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2025-05-13T04:55:24+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=5b7b92b20fe638a400f9918b8da6e98c942ff5d1'/>
<id>5b7b92b20fe638a400f9918b8da6e98c942ff5d1</id>
<content type='text'>
This is to reduce the impact of scheduling noise when measuring a
very large number of samples.

This change is to support the ECRTS'25 partitioning paper.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is to reduce the impact of scheduling noise when measuring a
very large number of samples.

This change is to support the ECRTS'25 partitioning paper.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix unlimited iterations in constant_cycles_kernel</title>
<updated>2025-02-04T22:23:05+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2025-02-04T22:23:05+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=c28c53c3b3c58b808553ba8475147d9e1dd6e3a5'/>
<id>c28c53c3b3c58b808553ba8475147d9e1dd6e3a5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure all benchmarks support --help and cleanup</title>
<updated>2024-02-27T01:36:27+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2024-02-27T01:36:27+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=f1eb1f41ab81571d23654bb15af655c17152bcd6'/>
<id>f1eb1f41ab81571d23654bb15af655c17152bcd6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add gl_copies benchmark and make target</title>
<updated>2024-02-27T01:33:25+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>jbakita@cs.unc.edu</email>
</author>
<published>2024-02-27T01:33:25+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=d1576765658fc866bed806cbde969d39cc6a8dd8'/>
<id>d1576765658fc866bed806cbde969d39cc6a8dd8</id>
<content type='text'>
=&gt; Uploads a large texture to the GPU on every frame
=&gt; Requires the freeglut library (freeglut3-dev on Ubuntu)
=&gt; Due to special requirements, not built by default
=&gt; Written for Anderson and Bakita RTAS'24 paper
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
=&gt; Uploads a large texture to the GPU on every frame
=&gt; Requires the freeglut library (freeglut3-dev on Ubuntu)
=&gt; Due to special requirements, not built by default
=&gt; Written for Anderson and Bakita RTAS'24 paper
</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>Fix timestamping bugs and clean up CPU side of mon_cross_ctx_copies</title>
<updated>2024-02-21T19:05:34+00:00</updated>
<author>
<name>Joshua Bakita</name>
<email>bakitajoshua@gmail.com</email>
</author>
<published>2024-02-21T19:05:34+00:00</published>
<link rel='alternate' type='text/html' href='http://rtsrv.cs.unc.edu/cgit/cgit.cgi/gpu-microbench.git/commit/?id=5c65954998591bc61a4138024ba4895bed64a8a6'/>
<id>5c65954998591bc61a4138024ba4895bed64a8a6</id>
<content type='text'>
- 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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.
</pre>
</div>
</content>
</entry>
</feed>
