From dd89caede26d2212e55bc03b692d59e2d7da23ef Mon Sep 17 00:00:00 2001 From: Christian Sonnabend Date: Mon, 8 Jun 2026 14:59:02 +0200 Subject: [PATCH 1/6] Avoiding numactl execution to avoid crashes of FST in container env without accesibility to numactl --- prodtests/full-system-test/start_tmux.sh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/prodtests/full-system-test/start_tmux.sh b/prodtests/full-system-test/start_tmux.sh index 18f019573904f..e5d07e4d5f825 100755 --- a/prodtests/full-system-test/start_tmux.sh +++ b/prodtests/full-system-test/start_tmux.sh @@ -147,10 +147,17 @@ else : ${CALIB_TASKS:=""} fi +if command -v numactl >/dev/null 2>&1; then + NUMACTL_CMD="numactl --interleave=all" +else + NUMACTL_CMD="" +fi + if [ "0$FST_TMUX_BATCH_MODE" == "01" ]; then { sleep $FST_SLEEP0; eval "NUMAID=0 $GEN_TOPO_MYDIR/dpl-workflow.sh ${LOGCMD/\[REPLACE]/0}"; eval "$ENDCMD"; } & { sleep $FST_SLEEP1; eval "NUMAID=1 $GEN_TOPO_MYDIR/dpl-workflow.sh ${LOGCMD/\[REPLACE]/1}"; eval "$ENDCMD"; } & - { sleep $FST_SLEEP2; eval "SEVERITY=debug numactl --interleave=all $GEN_TOPO_MYDIR/$CMD ${LOGCMD/\[REPLACE]/2}"; eval "$KILLCMD $ENDCMD"; } & + { sleep $FST_SLEEP2; eval "SEVERITY=debug $NUMACTL_CMD $GEN_TOPO_MYDIR/$CMD ${LOGCMD/\[REPLACE]/2}"; eval "$KILLCMD $ENDCMD"; } & + for i in $CALIB_TASKS; do { eval "AGGREGATOR_TASKS=$i $CALIB_COMMAND ${LOGCMD/\[REPLACE]/3_${i}}"; eval "$ENDCMD"; } & done @@ -162,7 +169,9 @@ else for i in `seq 1 $(($NUM_DPL_WORKFLOWS - 1))`; do TMUX_COMMAND+=" $TMUX_SPLIT_COMMAND \"sleep $FST_SLEEP1; NUMAID=$i $GEN_TOPO_MYDIR/dpl-workflow.sh ${LOGCMD/\[REPLACE]/1}; $ENDCMD\" ';'" done - TMUX_COMMAND+=" $TMUX_SPLIT_COMMAND \"sleep $FST_SLEEP2; SEVERITY=debug numactl --interleave=all $GEN_TOPO_MYDIR/$CMD; $KILLCMD $ENDCMD\" ';'" + + TMUX_COMMAND+=" $TMUX_SPLIT_COMMAND \"sleep $FST_SLEEP2; SEVERITY=debug $NUMACTL_CMD $GEN_TOPO_MYDIR/$CMD; $KILLCMD $ENDCMD\" ';'" + FIRST_CALIB=1 for i in $CALIB_TASKS; do TMUX_COMMAND+=" $TMUX_SPLIT_COMMAND \"AGGREGATOR_TASKS=$i $CALIB_COMMAND ${LOGCMD/\[REPLACE]/3_${i}}; $ENDCMD\" ';'" From 95f3190a4c76b8f65f4d3ad8fdebf62df1c2d0f9 Mon Sep 17 00:00:00 2001 From: Christian Sonnabend Date: Fri, 12 Jun 2026 09:17:02 +0200 Subject: [PATCH 2/6] Adding GPU benchmark scripts and python analysis script --- .../analyze_gpu_benchmarks.py | 324 ++++++++++++++++ .../gen_single_gpu_rtc_benchmark.sh | 347 ++++++++++++++++++ 2 files changed, 671 insertions(+) create mode 100644 prodtests/full-system-test/analyze_gpu_benchmarks.py create mode 100755 prodtests/full-system-test/gen_single_gpu_rtc_benchmark.sh diff --git a/prodtests/full-system-test/analyze_gpu_benchmarks.py b/prodtests/full-system-test/analyze_gpu_benchmarks.py new file mode 100644 index 0000000000000..2320b16994dee --- /dev/null +++ b/prodtests/full-system-test/analyze_gpu_benchmarks.py @@ -0,0 +1,324 @@ +#!/usr/bin/env python3 + +import argparse +import re +from pathlib import Path + +import numpy as np +import matplotlib.pyplot as plt + +try: + from scipy.optimize import curve_fit + SCIPY_AVAILABLE = True +except ImportError: + SCIPY_AVAILABLE = False + + +LINE_RE = re.compile( + r"\[[^\]]*gpu-reconstruction[^\]]*\]:\s*" + r"\[(?P