** 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

Reply via email to