-
Notifications
You must be signed in to change notification settings - Fork 456
NIXLBENCH: Add test in CI #639
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
d426d28
Add nixlbench test to CI tests
ovidiusm a31c303
Fix build in AWS image
ovidiusm bdd5593
Add more tests
ovidiusm 47e86db
Cleanup test script
ovidiusm 9cde451
Cleanup test script
ovidiusm edfebbc
Merge remote-tracking branch 'dynamo/main' into nixlbench-test
ovidiusm 2ddde77
Move nixlbench tests to their own script
ovidiusm f181f98
Merge remote-tracking branch 'dynamo/main' into nixlbench-test
ovidiusm 323f528
Add nixlbench test to the CI config
ovidiusm 33fcaa2
Simplify ucx path handling in meson.build
ovidiusm 06a99ad
Use dynamic etcd port and fix CI yaml
ovidiusm 4025746
Clean up build scripts
ovidiusm 2583654
Revert "Simplify ucx path handling in meson.build"
ovidiusm 89a9553
Merge remote-tracking branch 'dynamo/main' into nixlbench-test
ovidiusm 5e9b50d
Remove sudo fron nixl installation commands since tests may need to c…
ovidiusm ccab6df
Revert the other sudo
ovidiusm 56fce85
Remove unused UCX dependency in nixlbench
ovidiusm a0787f4
Fix nixlbench build with nvshmem
ovidiusm da8a3c6
Fix CI builds
ovidiusm 81b1216
Cleanup test script
ovidiusm 5fa90a7
Merge remote-tracking branch 'dynamo/main' into nixlbench-test
ovidiusm 1ec64bf
Add tests to the build matrix
ovidiusm eb1b8c1
Merge branch 'main' into nixlbench-test
brminich 8ffd7f7
Merge remote-tracking branch 'dynamo/main' into nixlbench-test
ovidiusm 746572c
Merge branch 'main' into nixlbench-test
brminich 74090e8
Merge branch 'main' into nixlbench-test
brminich 90f6caf
Fix merge
ovidiusm 2ebbfdf
Merge remote-tracking branch 'origin/nixlbench-test' into nixlbench-test
ovidiusm 645e084
Merge remote-tracking branch 'dynamo/main' into nixlbench-test
ovidiusm File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,89 @@ | ||
| #!/bin/sh | ||
| # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
|
|
||
| # shellcheck disable=SC1091 | ||
| . "$(dirname "$0")/../.ci/scripts/common.sh" | ||
|
|
||
| set -e | ||
| set -x | ||
|
|
||
| # Parse commandline arguments with first argument being the install directory. | ||
| INSTALL_DIR=$1 | ||
|
|
||
| if [ -z "$INSTALL_DIR" ]; then | ||
| echo "Usage: $0 <install_dir>" | ||
| exit 1 | ||
| fi | ||
|
|
||
| ARCH=$(uname -m) | ||
| [ "$ARCH" = "arm64" ] && ARCH="aarch64" | ||
|
|
||
| export LD_LIBRARY_PATH=${INSTALL_DIR}/lib:${INSTALL_DIR}/lib/$ARCH-linux-gnu:${INSTALL_DIR}/lib/$ARCH-linux-gnu/plugins:/usr/local/lib:$LD_LIBRARY_PATH | ||
| export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:/usr/local/cuda-12.8/compat:$LD_LIBRARY_PATH | ||
|
brminich marked this conversation as resolved.
|
||
| export LD_LIBRARY_PATH=/usr/local/cuda/compat/lib.real:$LD_LIBRARY_PATH | ||
|
|
||
| export CPATH=${INSTALL_DIR}/include:$CPATH | ||
| export PATH=${INSTALL_DIR}/bin:$PATH | ||
| export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH | ||
| export NIXL_PLUGIN_DIR=${INSTALL_DIR}/lib/$ARCH-linux-gnu/plugins | ||
|
|
||
| echo "==== Show system info ====" | ||
| env | ||
| nvidia-smi topo -m || true | ||
| ibv_devinfo || true | ||
| uname -a || true | ||
|
|
||
| echo "==== Running ETCD server ====" | ||
| etcd_port=$(get_next_tcp_port) | ||
| etcd_peer_port=$(get_next_tcp_port) | ||
| export NIXL_ETCD_ENDPOINTS="http://127.0.0.1:${etcd_port}" | ||
| export NIXL_ETCD_PEER_URLS="http://127.0.0.1:${etcd_peer_port}" | ||
| etcd --listen-client-urls ${NIXL_ETCD_ENDPOINTS} --advertise-client-urls ${NIXL_ETCD_ENDPOINTS} \ | ||
| --listen-peer-urls ${NIXL_ETCD_PEER_URLS} --initial-advertise-peer-urls ${NIXL_ETCD_PEER_URLS} \ | ||
| --initial-cluster default=${NIXL_ETCD_PEER_URLS} & | ||
| sleep 5 | ||
|
|
||
| echo "==== Running Nixlbench tests ====" | ||
| cd ${INSTALL_DIR} | ||
|
|
||
| run_nixlbench() { | ||
| args="$@" | ||
| ./bin/nixlbench --etcd-endpoints ${NIXL_ETCD_ENDPOINTS} --initiator_seg_type DRAM --target_seg_type DRAM --filepath /tmp --total_buffer_size 80000000 --start_block_size 4096 --max_block_size 16384 --start_batch_size 1 --max_batch_size 4 $args | ||
| } | ||
|
|
||
| run_nixlbench_one_worker() { | ||
| benchmark_group=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) | ||
| args="$@" | ||
| run_nixlbench --benchmark_group $benchmark_group $args | ||
| } | ||
|
|
||
| run_nixlbench_two_workers() { | ||
| benchmark_group=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1) | ||
| args="$@" | ||
| run_nixlbench --benchmark_group $benchmark_group $args & | ||
| pid=$! | ||
| sleep 1 | ||
| run_nixlbench --benchmark_group $benchmark_group $args | ||
| wait $pid | ||
| } | ||
|
|
||
| run_nixlbench_two_workers --backend UCX --op_type READ | ||
| run_nixlbench_two_workers --backend UCX --op_type WRITE | ||
| run_nixlbench_one_worker --backend POSIX --op_type READ | ||
| run_nixlbench_one_worker --backend POSIX --op_type WRITE | ||
|
|
||
| pkill etcd | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.