|
@@ -1,6 +1,6 @@
|
|
|
#!/usr/bin/env bash
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
-PERF_LIBS_VERSION=v0.13.2
|
|
|
|
|
|
|
+PERF_LIBS_VERSION=v0.14.0
|
|
|
|
|
|
|
|
set -e
|
|
set -e
|
|
|
cd "$(dirname "$0")"
|
|
cd "$(dirname "$0")"
|
|
@@ -20,37 +20,39 @@ if [[ ! -f target/perf-libs/.$PERF_LIBS_VERSION ]]; then
|
|
|
(
|
|
(
|
|
|
set -x
|
|
set -x
|
|
|
cd target/perf-libs
|
|
cd target/perf-libs
|
|
|
- curl https://solana-perf.s3.amazonaws.com/$PERF_LIBS_VERSION/x86_64-unknown-linux-gnu/solana-perf.tgz | tar zxvf -
|
|
|
|
|
|
|
+ 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
|
|
touch .$PERF_LIBS_VERSION
|
|
|
)
|
|
)
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
-cat > target/perf-libs/env.sh <<'EOF'
|
|
|
|
|
|
|
+
|
|
|
|
|
+write_env() {
|
|
|
|
|
+ rm -f target/perf-libs/env.sh
|
|
|
|
|
+ cat >> target/perf-libs/env.sh <<EOF
|
|
|
|
|
+export CUDA_HOME="$CUDA_HOME"
|
|
|
|
|
+export SOLANA_PERF_LIBS_CUDA="$SOLANA_PERF_LIBS_CUDA"
|
|
|
|
|
+EOF
|
|
|
|
|
+cat >> target/perf-libs/env.sh <<'EOF'
|
|
|
SOLANA_PERF_LIBS="$(cd $(dirname "${BASH_SOURCE[0]}"); pwd)"
|
|
SOLANA_PERF_LIBS="$(cd $(dirname "${BASH_SOURCE[0]}"); pwd)"
|
|
|
|
|
|
|
|
echo "solana-perf-libs version: $(cat $SOLANA_PERF_LIBS/solana-perf-HEAD.txt)"
|
|
echo "solana-perf-libs version: $(cat $SOLANA_PERF_LIBS/solana-perf-HEAD.txt)"
|
|
|
-
|
|
|
|
|
-if [[ -r "$SOLANA_PERF_LIBS"/solana-perf-CUDA_HOME.txt ]]; then
|
|
|
|
|
- CUDA_HOME=$(cat "$SOLANA_PERF_LIBS"/solana-perf-CUDA_HOME.txt)
|
|
|
|
|
-else
|
|
|
|
|
- CUDA_HOME=/usr/local/cuda
|
|
|
|
|
-fi
|
|
|
|
|
-
|
|
|
|
|
echo CUDA_HOME="$CUDA_HOME"
|
|
echo CUDA_HOME="$CUDA_HOME"
|
|
|
-export CUDA_HOME="$CUDA_HOME"
|
|
|
|
|
|
|
|
|
|
-echo LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
|
|
|
|
|
-export LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
|
|
|
|
|
|
|
+echo LD_LIBRARY_PATH="$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
|
|
|
|
|
+export LD_LIBRARY_PATH="$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA:$CUDA_HOME/lib64:$LD_LIBRARY_PATH"
|
|
|
|
|
|
|
|
-echo PATH="$SOLANA_PERF_LIBS:$CUDA_HOME/bin:$PATH"
|
|
|
|
|
-export PATH="$SOLANA_PERF_LIBS:$CUDA_HOME/bin:$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/cuda-version.txt ]]; then
|
|
|
|
|
- if ! diff "$CUDA_HOME"/version.txt "$SOLANA_PERF_LIBS"/cuda-version.txt > /dev/null; then
|
|
|
|
|
|
|
+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 ==============================================
|
|
|
echo "Warning: possible CUDA version mismatch with $CUDA_HOME"
|
|
echo "Warning: possible CUDA version mismatch with $CUDA_HOME"
|
|
|
echo
|
|
echo
|
|
|
- echo "Expected version: $(cat "$SOLANA_PERF_LIBS"/cuda-version.txt)"
|
|
|
|
|
|
|
+ echo "Expected version: $(cat "$SOLANA_PERF_LIBS/$SOLANA_PERF_LIBS_CUDA"/cuda-version.txt)"
|
|
|
echo "Detected version: $(cat "$CUDA_HOME"/version.txt)"
|
|
echo "Detected version: $(cat "$CUDA_HOME"/version.txt)"
|
|
|
echo ==============================================
|
|
echo ==============================================
|
|
|
fi
|
|
fi
|
|
@@ -60,7 +62,30 @@ else
|
|
|
echo ==============================================
|
|
echo ==============================================
|
|
|
fi
|
|
fi
|
|
|
EOF
|
|
EOF
|
|
|
|
|
+ echo
|
|
|
|
|
+ echo "source $PWD/target/perf-libs/env.sh to setup environment"
|
|
|
|
|
+ exit 0
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+for cuda in $(cd target/perf-libs; find . -maxdepth 1 -type d -regex './cuda-.*' | sort -r); do
|
|
|
|
|
+ cuda=$(basename "$cuda")
|
|
|
|
|
+ CUDA_HOME=/usr/local/$cuda
|
|
|
|
|
+ SOLANA_PERF_LIBS_CUDA=$cuda
|
|
|
|
|
+ [[ -d $CUDA_HOME ]] || {
|
|
|
|
|
+ echo "$cuda not detected: $CUDA_HOME directory does not exist"
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ [[ -r $CUDA_HOME/version.txt ]] || {
|
|
|
|
|
+ echo "$cuda not detected: $CUDA_HOME/version.txt does not exist"
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ echo
|
|
|
|
|
+ cat "$CUDA_HOME/version.txt"
|
|
|
|
|
+ echo "CUDA_HOME=$CUDA_HOME"
|
|
|
|
|
+ write_env
|
|
|
|
|
+done
|
|
|
|
|
|
|
|
echo
|
|
echo
|
|
|
-echo "source $PWD/target/perf-libs/env.sh to setup environment"
|
|
|
|
|
-exit 0
|
|
|
|
|
|
|
+echo No supported CUDA versions detected
|
|
|
|
|
+exit 1
|