** Description changed:
[ Impact ]
parcagpu is not available in Ubuntu 26.04 Resolute; it is currently only
available in Stonking. Resolute is the current LTS and the first LTS to
ship the new Ubuntu CUDA packages natively, which parcagpu depends on,
and is complementary to.
parcagpu is a shim / injection library which is loaded into CUDA
processes at runtime (when deliberately injected by users), interfacing
with CUDA/CUPTI to expose GPU activity via USDT probes for eBPF
consumers.
This SRU introduces parcagpu as a new multiverse package in Resolute. It
is already published for Stonking (0.3.0-0ubuntu1; Resolute version:
0.3.0-0ubuntu1~26.04.1), so users upgrading from Resolute will not lose
this package as a feature.
-
[ Test Plan ]
Testing requires an Nvidia GPU compatible with CUPTI, and a CUDA
workload to target.
1. Enable resolute-proposed (once landed), update, confirm `apt-cache
policy parcagpu` shows the candidate version from resolute-proposed, and
install packages
- sudo apt update
- apt-cache policy parcagpu # confirm version
+ sudo apt update
+ apt-cache policy parcagpu # confirm version
- sudo apt install parcagpu cuda-cupti-13-1 bpftrace
+ sudo apt install parcagpu cuda-cupti-13-1 bpftrace
2. Confirm Nvidia driver and GPU are usable, define $LIB for use in
later steps
- nvidia-smi
- LIB=/usr/lib/x86_64-linux-gnu/parcagpu/libparcagpucupti.so
- test -r "$LIB"
+ nvidia-smi
+ LIB=/usr/lib/x86_64-linux-gnu/parcagpu/libparcagpucupti.so
+ test -r "$LIB"
3. Run a CUDA workload without injection, restrict to an idle GPU, e.g.:
- CUDA_VISIBLE_DEVICES=0 <cuda-workload>
+ CUDA_VISIBLE_DEVICES=0 <cuda-workload>
4. In one terminal, start a bpftrace observer:
- sudo bpftrace -q -e \
- "usdt:$LIB:parcagpu:cuda_correlation { @correlations = count(); }
- usdt:$LIB:parcagpu:kernel_executed { @kernels = count(); }
- interval:s:30 { exit(); }"
+ sudo bpftrace -q -e \
+ "usdt:$LIB:parcagpu:cuda_correlation { @correlations = count(); }
+ usdt:$LIB:parcagpu:kernel_executed { @kernels = count(); }
+ interval:s:30 { exit(); }"
- In a second terminal, run the workload with injection enabled:
+ In a second terminal, run the workload with injection enabled:
- CUDA_VISIBLE_DEVICES=0 PARCAGPU_DEBUG=1 \
- CUDA_INJECTION64_PATH="$LIB" <cuda-workload>
+ CUDA_VISIBLE_DEVICES=0 PARCAGPU_DEBUG=1 \
+ CUDA_INJECTION64_PATH="$LIB" <cuda-workload>
- Confirm the workload succeeds, debug output includes 'Successfully
+ Confirm the workload succeeds, debug output includes 'Successfully
initialized CUPTI callbacks', and bpftrace reports non-zero correlation
and kernel counts.
5. Also, test PC sampling if on supporting hardware:
- sudo bpftrace -q -e \
- "usdt:$LIB:parcagpu:pc_sample_batch { @batches = count(); }
- usdt:$LIB:parcagpu:stall_reason_map { @maps = count(); }
- interval:s:30 { exit(); }"
+ sudo bpftrace -q -e \
+ "usdt:$LIB:parcagpu:pc_sample_batch { @batches = count(); }
+ usdt:$LIB:parcagpu:stall_reason_map { @maps = count(); }
+ interval:s:30 { exit(); }"
- In a second terminal:
+ In a second terminal:
- sudo env CUDA_VISIBLE_DEVICES=0 PARCAGPU_DEBUG=1 \
- PARCAGPU_PC_SAMPLING_RATE=10000 \
- CUDA_INJECTION64_PATH="$LIB" <cuda-workload>
+ sudo env CUDA_VISIBLE_DEVICES=0 PARCAGPU_DEBUG=1 \
+ PARCAGPU_PC_SAMPLING_RATE=10000 \
+ CUDA_INJECTION64_PATH="$LIB" <cuda-workload>
- Confirm the workload succeeds and bpftrace observes pc_sample_batch
+ Confirm the workload succeeds and bpftrace observes pc_sample_batch
and stall_reason_map events
-
[ Where problems could occur ]
The package injects a CUPTI-based shared lib into CUDA applications. A
regression could prevent a CUDA application (with parcagpu injected)
from starting, or to eventually fail.
A mismatch in the installed Nvidia driver, CUDA runtime, and CUPTI
package could cause CUPTI initialization or PC sampling setup to fail,
which would appear in parcagpu debug output or as missing USDT events.
+ [ Other Info ]
- [ Other Info ]
+ ubuntu/resolute branch:
https://code.launchpad.net/~ks0/+git/parcagpu-packaging/+ref/ubuntu/resolute
+ PPA build: https://launchpad.net/~ks0/+archive/ubuntu/parcagpu-resolute-sru
This new package SRU is based on source already published in Stonking;
the delta is only the Resolute version and changelog metadata.
parcagpu's behavior is enabled only when a user explicitly injects the
library into a CUDA application.
Pre-upload testing done as per the test plan (with a PPA build), on
NVIDIA DGX H100.
** Patch added: "parcagpu_0.3.0-0ubuntu1~26.04.1.debdiff"
https://bugs.launchpad.net/ubuntu/+source/parcagpu/+bug/2164942/+attachment/5994967/+files/parcagpu_0.3.0-0ubuntu1~26.04.1.debdiff
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2164942
Title:
Add parcagpu to Resolute
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/parcagpu/+bug/2164942/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs