parent
574021041d
commit
59163e2dd9
|
@ -1,13 +1,25 @@
|
||||||
steps:
|
steps:
|
||||||
|
- command: "ci/test-stable-perf.sh"
|
||||||
|
name: "stable-perf [public]"
|
||||||
|
env:
|
||||||
|
CARGO_TARGET_CACHE_NAME: "stable-perf"
|
||||||
|
timeout_in_minutes: 20
|
||||||
|
agents:
|
||||||
|
- "queue=cuda"
|
||||||
|
- command: "ci/test-bench.sh"
|
||||||
|
name: "bench [public]"
|
||||||
|
env:
|
||||||
|
CARGO_TARGET_CACHE_NAME: "nightly"
|
||||||
|
timeout_in_minutes: 30
|
||||||
- command: "ci/docker-run.sh solanalabs/rust:1.30.1 ci/test-stable.sh"
|
- command: "ci/docker-run.sh solanalabs/rust:1.30.1 ci/test-stable.sh"
|
||||||
name: "stable [public]"
|
name: "stable [public]"
|
||||||
env:
|
env:
|
||||||
CARGO_TARGET_CACHE_NAME: "stable"
|
CARGO_TARGET_CACHE_NAME: "stable"
|
||||||
timeout_in_minutes: 30
|
timeout_in_minutes: 30
|
||||||
- command: "ci/docker-run.sh solanalabs/rust-nightly:2018-11-12 ci/test-bench.sh"
|
- command: "ci/docker-run.sh solanalabs/rust:1.30.1 ci/test-checks.sh"
|
||||||
name: "bench [public]"
|
name: "checks [public]"
|
||||||
env:
|
env:
|
||||||
CARGO_TARGET_CACHE_NAME: "nightly"
|
CARGO_TARGET_CACHE_NAME: "checks"
|
||||||
timeout_in_minutes: 30
|
timeout_in_minutes: 30
|
||||||
- command: "ci/shellcheck.sh"
|
- command: "ci/shellcheck.sh"
|
||||||
name: "shellcheck [public]"
|
name: "shellcheck [public]"
|
||||||
|
@ -17,13 +29,6 @@ steps:
|
||||||
env:
|
env:
|
||||||
CARGO_TARGET_CACHE_NAME: "nightly"
|
CARGO_TARGET_CACHE_NAME: "nightly"
|
||||||
timeout_in_minutes: 30
|
timeout_in_minutes: 30
|
||||||
- command: "ci/test-stable-perf.sh"
|
|
||||||
name: "stable-perf [public]"
|
|
||||||
env:
|
|
||||||
CARGO_TARGET_CACHE_NAME: "stable-perf"
|
|
||||||
timeout_in_minutes: 20
|
|
||||||
agents:
|
|
||||||
- "queue=cuda"
|
|
||||||
# TODO: Fix and re-enable test-large-network.sh
|
# TODO: Fix and re-enable test-large-network.sh
|
||||||
# - command: "ci/test-large-network.sh || true"
|
# - command: "ci/test-large-network.sh || true"
|
||||||
# name: "large-network [public] [ignored]"
|
# name: "large-network [public] [ignored]"
|
||||||
|
|
|
@ -9,7 +9,13 @@ source ci/upload_ci_artifact.sh
|
||||||
eval "$(ci/channel-info.sh)"
|
eval "$(ci/channel-info.sh)"
|
||||||
|
|
||||||
ci/version-check.sh nightly
|
ci/version-check.sh nightly
|
||||||
export RUST_BACKTRACE=1
|
if ! ci/version-check.sh nightly; then
|
||||||
|
# This job doesn't run within a container, try once to upgrade tooling on a
|
||||||
|
# version check failure
|
||||||
|
rustup install nightly
|
||||||
|
rustup default nightly
|
||||||
|
ci/version-check.sh nightly
|
||||||
|
fi
|
||||||
|
|
||||||
_() {
|
_() {
|
||||||
echo "--- $*"
|
echo "--- $*"
|
||||||
|
@ -17,6 +23,7 @@ _() {
|
||||||
}
|
}
|
||||||
|
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
export RUST_BACKTRACE=1
|
||||||
|
|
||||||
UPLOAD_METRICS=""
|
UPLOAD_METRICS=""
|
||||||
TARGET_BRANCH=$BUILDKITE_BRANCH
|
TARGET_BRANCH=$BUILDKITE_BRANCH
|
||||||
|
@ -29,6 +36,15 @@ fi
|
||||||
BENCH_FILE=bench_output.log
|
BENCH_FILE=bench_output.log
|
||||||
BENCH_ARTIFACT=current_bench_results.log
|
BENCH_ARTIFACT=current_bench_results.log
|
||||||
_ cargo bench --features=unstable --verbose -- -Z unstable-options --format=json | tee "$BENCH_FILE"
|
_ cargo bench --features=unstable --verbose -- -Z unstable-options --format=json | tee "$BENCH_FILE"
|
||||||
_ cargo run --release --bin solana-upload-perf -- "$BENCH_FILE" "$TARGET_BRANCH" "$UPLOAD_METRICS" >"$BENCH_ARTIFACT"
|
|
||||||
|
# Run bpf_loader bench with bpf_c feature enabled
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
cd "programs/native/bpf_loader"
|
||||||
|
echo --- program/native/bpf_loader bench --features=bpf_c
|
||||||
|
cargo bench --verbose --features="bpf_c" -- -Z unstable-options --format=json --nocapture | tee -a ../../../"$BENCH_FILE"
|
||||||
|
)
|
||||||
|
|
||||||
|
_ cargo run --release --bin solana-upload-perf -- "$BENCH_FILE" "$TARGET_BRANCH" "$UPLOAD_METRICS" > "$BENCH_ARTIFACT"
|
||||||
|
|
||||||
upload_ci_artifact "$BENCH_ARTIFACT"
|
upload_ci_artifact "$BENCH_ARTIFACT"
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
ci/version-check.sh stable
|
||||||
|
export RUST_BACKTRACE=1
|
||||||
|
export RUSTFLAGS="-D warnings"
|
||||||
|
|
||||||
|
_() {
|
||||||
|
echo "--- $*"
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
_ cargo fmt -- --check
|
||||||
|
_ cargo clippy -- --version
|
||||||
|
_ cargo clippy -- --deny=warnings
|
||||||
|
|
||||||
|
_ ci/audit.sh
|
|
@ -27,14 +27,6 @@ maybe_cargo_install() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Run program/native/bpf_loader's bench with bpf_c feature
|
|
||||||
(
|
|
||||||
set -x
|
|
||||||
cd "programs/native/bpf_loader"
|
|
||||||
echo --- program/native/bpf_loader bench --features=bpf_c
|
|
||||||
cargo bench --verbose --features="bpf_c" -- --nocapture
|
|
||||||
)
|
|
||||||
|
|
||||||
maybe_cargo_install cov
|
maybe_cargo_install cov
|
||||||
|
|
||||||
# Generate coverage data and report via unit-test suite.
|
# Generate coverage data and report via unit-test suite.
|
||||||
|
|
|
@ -10,21 +10,23 @@ if ! ci/version-check.sh stable; then
|
||||||
# This job doesn't run within a container, try once to upgrade tooling on a
|
# This job doesn't run within a container, try once to upgrade tooling on a
|
||||||
# version check failure
|
# version check failure
|
||||||
rustup install stable
|
rustup install stable
|
||||||
|
rustup default stable
|
||||||
ci/version-check.sh stable
|
ci/version-check.sh stable
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export RUST_BACKTRACE=1
|
export RUST_BACKTRACE=1
|
||||||
export RUSTFLAGS="-D warnings"
|
export RUSTFLAGS="-D warnings"
|
||||||
|
|
||||||
./fetch-perf-libs.sh
|
|
||||||
# shellcheck source=/dev/null
|
|
||||||
source ./target/perf-libs/env.sh
|
|
||||||
|
|
||||||
_() {
|
_() {
|
||||||
echo "--- $*"
|
echo "--- $*"
|
||||||
"$@"
|
"$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
FEATURES=cuda,erasure,chacha
|
./fetch-perf-libs.sh
|
||||||
|
# shellcheck source=/dev/null
|
||||||
|
source ./target/perf-libs/env.sh
|
||||||
|
|
||||||
|
FEATURES=bpf_c,cuda,erasure,chacha
|
||||||
_ cargo build --all --verbose --features="$FEATURES"
|
_ cargo build --all --verbose --features="$FEATURES"
|
||||||
_ cargo test --verbose --features="$FEATURES" --lib
|
_ cargo test --verbose --features="$FEATURES" --lib
|
||||||
|
|
||||||
|
@ -32,13 +34,21 @@ _ cargo test --verbose --features="$FEATURES" --lib
|
||||||
for test in tests/*.rs; do
|
for test in tests/*.rs; do
|
||||||
test=${test##*/} # basename x
|
test=${test##*/} # basename x
|
||||||
test=${test%.rs} # basename x .rs
|
test=${test%.rs} # basename x .rs
|
||||||
_ cargo test --verbose --jobs=1 --features="$FEATURES" --test="$test"
|
_ cargo test --verbose --features="$FEATURES" --test="$test" -- --test-threads=1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Run bpf_loader test with bpf_c features enabled
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
cd "programs/native/bpf_loader"
|
||||||
|
echo --- program/native/bpf_loader test --features=bpf_c
|
||||||
|
cargo test --verbose --features="bpf_c"
|
||||||
|
)
|
||||||
|
|
||||||
echo --- ci/localnet-sanity.sh
|
echo --- ci/localnet-sanity.sh
|
||||||
(
|
(
|
||||||
set -x
|
set -x
|
||||||
# Assume |cargo build| has populated target/debug/ successfully.
|
# Assume |cargo build| has populated target/debug/ successfully.
|
||||||
export PATH=$PWD/target/debug:$PATH
|
export PATH=$PWD/target/debug:$PATH
|
||||||
USE_INSTALL=1 ci/localnet-sanity.sh
|
USE_INSTALL=1 ci/localnet-sanity.sh
|
||||||
)
|
)
|
|
@ -24,9 +24,6 @@ maybe_install() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
_ cargo fmt -- --check
|
|
||||||
_ cargo clippy -- --version
|
|
||||||
_ cargo clippy -- --deny=warnings
|
|
||||||
_ cargo build --all --verbose
|
_ cargo build --all --verbose
|
||||||
_ cargo test --verbose --lib
|
_ cargo test --verbose --lib
|
||||||
|
|
||||||
|
@ -34,10 +31,10 @@ _ cargo test --verbose --lib
|
||||||
for test in tests/*.rs; do
|
for test in tests/*.rs; do
|
||||||
test=${test##*/} # basename x
|
test=${test##*/} # basename x
|
||||||
test=${test%.rs} # basename x .rs
|
test=${test%.rs} # basename x .rs
|
||||||
_ cargo test --verbose --jobs=1 --test="$test" --features="bpf_c"
|
_ cargo test --verbose --test="$test" -- --test-threads=1
|
||||||
done
|
done
|
||||||
|
|
||||||
# Run native program's tests
|
# Run native program tests
|
||||||
for program in programs/native/*; do
|
for program in programs/native/*; do
|
||||||
echo --- "$program"
|
echo --- "$program"
|
||||||
(
|
(
|
||||||
|
@ -47,14 +44,6 @@ for program in programs/native/*; do
|
||||||
)
|
)
|
||||||
done
|
done
|
||||||
|
|
||||||
# Run program/native/bpf_loader's test with bpf_c feature
|
|
||||||
(
|
|
||||||
set -x
|
|
||||||
cd "programs/native/bpf_loader"
|
|
||||||
echo --- program/native/bpf_loader test --features=bpf_c
|
|
||||||
cargo test --verbose --features="bpf_c"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Build the HTML
|
# Build the HTML
|
||||||
export PATH=$CARGO_HOME/bin:$PATH
|
export PATH=$CARGO_HOME/bin:$PATH
|
||||||
maybe_install mdbook
|
maybe_install mdbook
|
||||||
|
@ -68,5 +57,3 @@ echo --- ci/localnet-sanity.sh
|
||||||
export PATH=$PWD/target/debug:$PATH
|
export PATH=$PWD/target/debug:$PATH
|
||||||
USE_INSTALL=1 ci/localnet-sanity.sh
|
USE_INSTALL=1 ci/localnet-sanity.sh
|
||||||
)
|
)
|
||||||
|
|
||||||
_ ci/audit.sh
|
|
||||||
|
|
|
@ -94,6 +94,7 @@ fn bench_program_alu(bencher: &mut Bencher) {
|
||||||
assert!(0f64 != summary.median);
|
assert!(0f64 != summary.median);
|
||||||
let mips = (instructions * (ns_per_s / summary.median as u64)) / one_million;
|
let mips = (instructions * (ns_per_s / summary.median as u64)) / one_million;
|
||||||
println!(" {:?} MIPS", mips);
|
println!(" {:?} MIPS", mips);
|
||||||
|
println!("{{ \"type\": \"bench\", \"name\": \"bench_program_alu_interpreted_mips\", \"median\": {:?}, \"deviation\": 0 }}", mips);
|
||||||
|
|
||||||
println!("JIT to native:");
|
println!("JIT to native:");
|
||||||
vm.jit_compile().unwrap();
|
vm.jit_compile().unwrap();
|
||||||
|
@ -112,4 +113,5 @@ fn bench_program_alu(bencher: &mut Bencher) {
|
||||||
assert!(0f64 != summary.median);
|
assert!(0f64 != summary.median);
|
||||||
let mips = (instructions * (ns_per_s / summary.median as u64)) / one_million;
|
let mips = (instructions * (ns_per_s / summary.median as u64)) / one_million;
|
||||||
println!(" {:?} MIPS", mips);
|
println!(" {:?} MIPS", mips);
|
||||||
|
println!("{{ \"type\": \"bench\", \"name\": \"bench_program_alu_jit_to_native_mips\", \"median\": {:?}, \"deviation\": 0 }}", mips);
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,8 +100,12 @@ fn main() {
|
||||||
println!("bench_name, median, last_median, deviation, last_deviation");
|
println!("bench_name, median, last_median, deviation, last_deviation");
|
||||||
for (entry, values) in results {
|
for (entry, values) in results {
|
||||||
println!(
|
println!(
|
||||||
"{}, {}, {}, {}, {}",
|
"{:#10?}, {:#10?}, {:#10?}, {:#10?}, {}",
|
||||||
entry, values.0, values.2, values.1, values.3
|
values.0,
|
||||||
|
values.2.parse::<i32>().unwrap(),
|
||||||
|
values.1,
|
||||||
|
values.3.parse::<i32>().unwrap(),
|
||||||
|
entry,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -109,7 +113,7 @@ fn main() {
|
||||||
println!("hash: {}", trimmed_hash);
|
println!("hash: {}", trimmed_hash);
|
||||||
println!("bench_name, median, deviation");
|
println!("bench_name, median, deviation");
|
||||||
for (entry, values) in results {
|
for (entry, values) in results {
|
||||||
println!("{}, {}, {}", entry, values.0, values.1);
|
println!("{:10?}, {:10?}, {}", values.0, values.1, entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
solana_metrics::flush();
|
solana_metrics::flush();
|
||||||
|
|
Loading…
Reference in New Issue