Эх сурвалжийг харах

Rework solana-validator-cuda to automatically prepare the perf-libs env (#5849)

automerge
Michael Vines 6 жил өмнө
parent
commit
ee0c570d54

+ 0 - 10
book/src/validator-monitor.md

@@ -1,14 +1,4 @@
 # Validator Monitoring
-When `validator.sh` starts, it will output a validator configuration that looks
-similar to:
-```bash
-======================[ validator configuration ]======================
-identity pubkey: 4ceWXsL3UJvn7NYZiRkw7NsryMpviaKBDYr8GK7J61Dm
-vote pubkey: 2ozWvfaXQd1X6uKh8jERoRGApDqSqcEy6fF1oN13LL2G
-ledger: ...
-accounts: ...
-======================================================================
-```
 
 ## Check Gossip
 The **identity pubkey** for your validator can also be found by running:

+ 8 - 6
book/src/validator-start.md

@@ -75,23 +75,25 @@ choice, to start the node:
 
 If this is a `solana-install`-installation:
 ```bash
-$ validator.sh --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --ledger ~/validator-config --rpc-port 8899 --poll-for-new-genesis-block --entrypoint testnet.solana.com
+$ solana-validator --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --ledger ~/validator-config --rpc-port 8899 --entrypoint testnet.solana.com
 ```
 
 Alternatively, the `solana-install run` command can be used to run the validator
 node while periodically checking for and applying software updates:
 ```bash
-$ solana-install run validator.sh -- --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --ledger ~/validator-config --rpc-port 8899 --poll-for-new-genesis-block --entrypoint testnet.solana.com
+$ solana-install run solana-validator -- --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --ledger ~/validator-config --rpc-port 8899 --entrypoint testnet.solana.com
 ```
 
 If you built from source:
 ```bash
-$ NDEBUG=1 USE_INSTALL=1 ./multinode-demo/validator.sh --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --rpc-port 8899 --poll-for-new-genesis-block --entrypoint testnet.solana.com
+$ NDEBUG=1 USE_INSTALL=1 ./multinode-demo/validator.sh --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --rpc-port 8899 --entrypoint testnet.solana.com
 ```
 
 ### Enabling CUDA
-By default CUDA is disabled.  If your machine has a GPU with CUDA installed,
-define the SOLANA_CUDA flag in your environment *before* running any of the
+If your machine has a GPU with CUDA installed (Linux-only currently), use the `solana-validator-cuda`
+executable instead of `solana-validator`.
+
+Or if you built from source, define the SOLANA_CUDA flag in your environment *before* running any of the
 previusly mentioned commands
 ```bash
 $ export SOLANA_CUDA=1
@@ -103,7 +105,7 @@ When your validator is started look for the following log message to indicate th
 ### Controlling local network port allocation
 By default the validator will dynamically select available network ports in the
 8000-10000 range, and may be overridden with `--dynamic-port-range`.  For
-example, `validator.sh --dynamic-port-range 11000-11010 ...` will restrict the
+example, `solana-validator --dynamic-port-range 11000-11010 ...` will restrict the
 validator to ports 11000-11011.
 
 ### Limiting ledger size to conserve disk space

+ 1 - 1
book/src/validator-testnet.md

@@ -61,7 +61,7 @@ Solana-gossip and solana-validator commands already require an explicit
 `--entrypoint` argument. Simply replace testnet.solana.com in the examples with
 an alternate url to interact with a different testnet. For example:
 ```bash
-$ validator.sh --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --ledger ~/validator-config --rpc-port 8899 --poll-for-new-genesis-block beta.testnet.solana.com
+$ solana-validator --identity ~/validator-keypair.json --voting-keypair ~/validator-vote-keypair.json --ledger ~/validator-config --rpc-port 8899 beta.testnet.solana.com
 ```
 
 You can also submit JSON-RPC requests to a different testnet, like:

+ 16 - 1
ci/publish-tarball.sh

@@ -90,7 +90,22 @@ echo --- Creating tarball
       cd validator
       cargo +"$rust_stable" install --path . --features=cuda --root ../solana-release-cuda
     )
-    cp solana-release-cuda/bin/solana-validator solana-release/bin/solana-validator-cuda
+
+    mkdir solana-release/.bin
+    cp solana-release-cuda/bin/solana-validator solana-release/.bin/solana-validator-cuda
+    cat > solana-release/bin/solana-validator-cuda <<'EOF'
+#!/usr/bin/env bash
+set -e
+cd "$(dirname "$0")"/..
+source target/perf-libs/env.sh
+if [[ -z $SOLANA_PERF_LIBS_CUDA ]]; then
+  echo
+  echo Error: CUDA not available
+  exit 1
+fi
+exec .bin/solana-validator-cuda "$@"
+EOF
+  chmod +x solana-release/bin/solana-validator-cuda
   fi
 
   cp -a scripts multinode-demo solana-release/

+ 1 - 1
fetch-perf-libs.sh

@@ -61,7 +61,7 @@ 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"
+  export LD_LIBRARY_PATH="$SOLANA_PERF_LIBS:$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"