Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1237,8 +1237,8 @@ if(BUILD_TEST)
${NVFUSER_ROOT}/tests/cpp/multidevice.cpp
${NVFUSER_ROOT}/tests/cpp/test_multidevice_tutorial.cpp
)
add_test_without_main(tutorial_multidevice "${MULTIDEVICE_TUTORIAL_SRCS}" "")
list(APPEND TEST_BINARIES tutorial_multidevice)
add_test_without_main(test_multidevice_tutorial "${MULTIDEVICE_TUTORIAL_SRCS}" "")
list(APPEND TEST_BINARIES test_multidevice_tutorial)

add_test(test_reshape "${NVFUSER_ROOT}/tests/cpp/test_reshape.cpp" "")
list(APPEND TEST_BINARIES test_reshape)
Expand Down
2 changes: 1 addition & 1 deletion manual_ci.sh
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ fi
echo ""
echo "Running C++ Binary Tests..."
# Tests that require MPI
MPI_TESTS=("test_multidevice" "tutorial_multidevice")
MPI_TESTS=("test_multidevice" "test_multidevice_tutorial")

# Find all test_* and tutorial_* binaries in bin/
if [ -d "./bin" ]; then
Expand Down
7 changes: 4 additions & 3 deletions tests/cpp/test_multidevice_tutorial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ class MultiDeviceTutorial : public MultiDeviceTest {
GTEST_SKIP() << "Distributed setting not available. "
<< "Make sure you are on a node with n>1 GPUs and run "
<< "`mpirun -np n -x NVFUSER_TUTORIAL_VERBOSE=1 "
"tutorial_multidevice`";
"test_multidevice_tutorial`";
}
}

Expand All @@ -43,7 +43,7 @@ bool MultiDeviceTutorial::verbose_ = false;

// To run those tests, allocate a node with n>1 GPUs and run:
//
// mpirun -np n -x NVFUSER_TUTORIAL_VERBOSE=1 tutorial_multidevice
// mpirun -np n -x NVFUSER_TUTORIAL_VERBOSE=1 test_multidevice_tutorial
//
// We use a SPMD paradigm, where each host process manages one and only device,
// and each device executes the same program. Therefore, the number of process
Expand Down Expand Up @@ -311,6 +311,7 @@ TEST_F(MultiDeviceTutorial, SimplePipelining) {
// device 1. This implies that a network communication needs to be executed.
// More precisely, to produce tv2, we need device 0 to send tv1 to device 1.

SKIP_IF_NOT_ENOUGH_DEVICES(fusion);
MultiDeviceExecutor multidevice_executor(std::move(fusion), *communicator_);
if (verbose_ && communicator_->deviceId() < 2) {
std::cout << "Device ID = " << communicator_->deviceId() << std::endl;
Expand Down Expand Up @@ -992,7 +993,7 @@ TEST_F(MultiDeviceTutorial, HostIrGemmReduceScatter) {
| tv2[i,...] = Fusion1 (tv1_i)
*/
// To do so, we will be using new Host IRs: Stream (a Val), SetStream, ForLoop.
TEST_F(MultiDeviceTutorial, HostIrKernekPipelining) {
TEST_F(MultiDeviceTutorial, DISABLED_HostIrKernelPipelining) {
constexpr int64_t kNDims = 2;
constexpr int64_t kPipelineAxis = 0;
constexpr int64_t kNumberOfStreams = 4;
Expand Down