* Page-pin packet memory for cuda Bring back recyclers and pin offset buffers * Add packet recycler to streamer * Add set_pinnable to sigverify vecs to pin them * Add packets reset test * Add test for recycler and reduce the gc lock critical section * Add comments/tests to cuda_runtime * Add recycler to recv_blobs path. * Add trace/names for debug and PacketsRecycler to bench-streamer * Predict realloc and unpin beforehand. * Add helper to reserve and pin * Cap buffered packets length * Call cuda wrapper functions
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
PERF_LIBS_VERSION=v0.15.0
 | 
						|
 | 
						|
set -e
 | 
						|
cd "$(dirname "$0")"
 | 
						|
 | 
						|
if [[ ! -f target/perf-libs/.$PERF_LIBS_VERSION ]]; then
 | 
						|
  if [[ $(uname) != Linux ]]; then
 | 
						|
    echo Performance libraries are only available for Linux
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  if [[ $(uname -m) != x86_64 ]]; then
 | 
						|
    echo Performance libraries are only available for x86_64 architecture
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
 | 
						|
  mkdir -p target/perf-libs
 | 
						|
  (
 | 
						|
    set -x
 | 
						|
    cd target/perf-libs
 | 
						|
    curl -L --retry 5 --retry-delay 2 --retry-connrefused -o solana-perf.tgz \
 | 
						|
      https://github.com/solana-labs/solana-perf-libs/releases/download/$PERF_LIBS_VERSION/solana-perf.tgz
 | 
						|
    tar zxvf solana-perf.tgz
 | 
						|
    rm -f solana-perf.tgz
 | 
						|
    touch .$PERF_LIBS_VERSION
 | 
						|
  )
 | 
						|
  echo
 | 
						|
fi
 | 
						|
 | 
						|
cat > target/perf-libs/env.sh <<'EOF'
 | 
						|
if [[ -n $SOLANA_PERF_LIBS ]]; then
 | 
						|
  echo "solana-perf-libs version: $(cat $SOLANA_PERF_LIBS/solana-perf-HEAD.txt)"
 | 
						|
  return
 | 
						|
fi
 | 
						|
SOLANA_PERF_LIBS="$(cd $(dirname "${BASH_SOURCE[0]}"); pwd)"
 | 
						|
 | 
						|
SOLANA_PERF_LIBS_CUDA=
 | 
						|
for _supported_cuda in $(cd $SOLANA_PERF_LIBS; find . -maxdepth 1 -type d -regex './cuda-.*' | sort -r); do
 | 
						|
  _supported_cuda=$(basename "$_supported_cuda")
 | 
						|
  CUDA_HOME=/usr/local/$_supported_cuda
 | 
						|
  [[ -d $CUDA_HOME ]] || {
 | 
						|
    echo "$_supported_cuda not detected: $CUDA_HOME directory does not exist"
 | 
						|
    continue
 | 
						|
  }
 | 
						|
  [[ -r $CUDA_HOME/version.txt ]] || {
 | 
						|
    echo "$_supported_cuda not detected: $CUDA_HOME/version.txt does not exist"
 | 
						|
    continue
 | 
						|
  }
 | 
						|
  echo
 | 
						|
  cat "$CUDA_HOME/version.txt"
 | 
						|
  echo "CUDA_HOME=$CUDA_HOME"
 | 
						|
  SOLANA_PERF_LIBS_CUDA=$_supported_cuda
 | 
						|
  export CUDA_HOME
 | 
						|
  export SOLANA_PERF_LIBS_CUDA
 | 
						|
  break
 | 
						|
done
 | 
						|
 | 
						|
if [[ -z $SOLANA_PERF_LIBS_CUDA ]]; then
 | 
						|
  echo No supported CUDA versions detected
 | 
						|
  echo
 | 
						|
  echo LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$LD_LIBRARY_PATH"
 | 
						|
  export LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
 | 
						|
else
 | 
						|
  echo
 | 
						|
  echo LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
 | 
						|
  export LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
 | 
						|
 | 
						|
  echo PATH="$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/bin:$PATH"
 | 
						|
  export PATH="$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/bin:$PATH"
 | 
						|
 | 
						|
  if [[ -r "$CUDA_HOME"/version.txt && -r $SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA/cuda-version.txt ]]; then
 | 
						|
    if ! diff "$CUDA_HOME"/version.txt "$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA"/cuda-version.txt > /dev/null; then
 | 
						|
        echo ==============================================
 | 
						|
        echo "Warning: possible CUDA version mismatch with $CUDA_HOME"
 | 
						|
        echo
 | 
						|
        echo "Expected version: $(cat "$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA"/cuda-version.txt)"
 | 
						|
        echo "Detected version: $(cat "$CUDA_HOME"/version.txt)"
 | 
						|
        echo ==============================================
 | 
						|
    fi
 | 
						|
  else
 | 
						|
    echo ==============================================
 | 
						|
    echo Warning: unable to validate CUDA version
 | 
						|
    echo ==============================================
 | 
						|
  fi
 | 
						|
fi
 | 
						|
echo
 | 
						|
echo "solana-perf-libs version: $(cat $SOLANA_PERF_LIBS/solana-perf-HEAD.txt)"
 | 
						|
 | 
						|
EOF
 | 
						|
 | 
						|
echo "Setup shell environment with:"
 | 
						|
echo "    source $PWD/target/perf-libs/env.sh"
 | 
						|
exit 0
 |