-
Notifications
You must be signed in to change notification settings - Fork 201
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
Attempt to address oom failures in test suite #1672
Conversation
Audit the existing MR tests and serialize those that make large allocations (specifically, a pool with 90% of the available device memory). This also allows us to remove serialization from some of the tests which don't make large allocations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for auditing the test suite and finding the root causes! I have one suggestion for us to refactor/simplify the arena test.
@@ -125,7 +125,7 @@ ConfigureTest(DEVICE_MR_REF_TEST mr/device/mr_ref_tests.cpp | |||
ConfigureTest(ADAPTOR_TEST mr/device/adaptor_tests.cpp) | |||
|
|||
# pool mr tests | |||
ConfigureTest(POOL_MR_TEST mr/device/pool_mr_tests.cpp GPUS 1 PERCENT 60) | |||
ConfigureTest(POOL_MR_TEST mr/device/pool_mr_tests.cpp GPUS 1 PERCENT 100) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: Large allocation occurs here:
rmm/tests/mr/device/pool_mr_tests.cpp
Line 74 in 9864b51
auto const ninety_percent_pool = rmm::percent_of_free_device_memory(90); |
@@ -182,7 +182,7 @@ ConfigureTest(PREFETCH_TEST prefetch_tests.cpp) | |||
ConfigureTest(LOGGER_TEST logger_tests.cpp) | |||
|
|||
# arena MR tests | |||
ConfigureTest(ARENA_MR_TEST mr/device/arena_mr_tests.cpp GPUS 1 PERCENT 60) | |||
ConfigureTest(ARENA_MR_TEST mr/device/arena_mr_tests.cpp GPUS 1 PERCENT 100) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: Large allocation occurs here:
rmm/tests/mr/device/arena_mr_tests.cpp
Lines 487 to 495 in 9864b51
TEST_F(ArenaTest, AllocateNinetyPercent) // NOLINT | |
{ | |
EXPECT_NO_THROW([]() { // NOLINT(cppcoreguidelines-avoid-goto) | |
auto const free = rmm::available_device_memory().first; | |
auto const ninety_percent = rmm::align_up( | |
static_cast<std::size_t>(static_cast<double>(free) * 0.9), rmm::CUDA_ALLOCATION_ALIGNMENT); | |
arena_mr mr(rmm::mr::get_current_device_resource(), ninety_percent); | |
}()); | |
} |
We should refactor this test to use rmm::percent_of_free_device_memory
. I think the only difference is whether it uses rmm::align_up
vs. rmm::align_down
, but that seems unimportant here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll do this one separately.
Thanks @wence- ! |
/merge |
Description
Audit the existing MR tests and serialize those that make large allocations (specifically, a pool with 90% of the available device memory). This also allows us to remove serialization from some of the tests which don't make large allocations.
Checklist