Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-15 07:41:49

0001 #!/bin/bash
0002 # run.sh — Run async GPU launch example with apex.gdml
0003 #
0004 # Usage:
0005 #   ./run.sh [--sync]         # default is async mode
0006 #   GPU_PHOTON_FLUSH_THRESHOLD=1000000 ./run.sh   # custom threshold
0007 #
0008 # The photon flush threshold controls how many photons accumulate before
0009 # a GPU batch is submitted.  Default is 10M.  Lower values give more
0010 # overlap at the cost of smaller GPU batches.
0011 
0012 set -e
0013 
0014 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
0015 REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
0016 
0017 GDML="${REPO_ROOT}/apex.gdml"
0018 MACRO="${REPO_ROOT}/tests/run.mac"
0019 MODE="${1:---async}"
0020 
0021 if [ ! -f "$GDML" ]; then
0022     echo "ERROR: $GDML not found"
0023     echo "Run from the eic-opticks root or ensure apex.gdml exists."
0024     exit 1
0025 fi
0026 
0027 echo "=== Async GPU Launch Example ==="
0028 echo "GDML:      $GDML"
0029 echo "Macro:     $MACRO"
0030 echo "Mode:      $MODE"
0031 echo "Threshold: ${GPU_PHOTON_FLUSH_THRESHOLD:-10000000 (default)}"
0032 echo ""
0033 
0034 OPTICKS_MAX_BOUNCE=1000 \
0035 async_gpu_launch \
0036     -g "$GDML" \
0037     -m "$MACRO" \
0038     "$MODE"
0039 
0040 echo ""
0041 echo "=== Done ==="
0042 
0043 # Show output files
0044 for f in gpu_hits*.npy g4_hits.npy; do
0045     [ -f "$f" ] && echo "Output: $f ($(stat -c%s "$f") bytes)"
0046 done