|
1 | 1 | /*
|
2 |
| - * Copyright (c) 2020-2024, NVIDIA CORPORATION. |
| 2 | + * Copyright (c) 2020-2025, NVIDIA CORPORATION. |
3 | 3 | *
|
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
5 | 5 | * you may not use this file except in compliance with the License.
|
|
33 | 33 | #include <rmm/mr/device/managed_memory_resource.hpp>
|
34 | 34 | #include <rmm/mr/device/owning_wrapper.hpp>
|
35 | 35 | #include <rmm/mr/device/pool_memory_resource.hpp>
|
| 36 | +#include <rmm/mr/device/statistics_resource_adaptor.hpp> |
| 37 | + |
| 38 | +#include <iostream> |
36 | 39 |
|
37 | 40 | namespace CUDF_EXPORT cudf {
|
38 | 41 | namespace test {
|
@@ -226,10 +229,19 @@ inline void init_cudf_test(int argc, char** argv, cudf::test::config const& conf
|
226 | 229 | * This `main` function is a wrapper around the google test generated `main`,
|
227 | 230 | * maintaining the original functionality.
|
228 | 231 | */
|
229 |
| -#define CUDF_TEST_PROGRAM_MAIN() \ |
230 |
| - int main(int argc, char** argv) \ |
231 |
| - { \ |
232 |
| - ::testing::InitGoogleTest(&argc, argv); \ |
233 |
| - init_cudf_test(argc, argv); \ |
234 |
| - return RUN_ALL_TESTS(); \ |
| 232 | +#define CUDF_TEST_PROGRAM_MAIN() \ |
| 233 | + int main(int argc, char** argv) \ |
| 234 | + { \ |
| 235 | + ::testing::InitGoogleTest(&argc, argv); \ |
| 236 | + init_cudf_test(argc, argv); \ |
| 237 | + if (std::getenv("GTEST_CUDF_MEMORY_PEAK")) { \ |
| 238 | + auto mr = rmm::mr::statistics_resource_adaptor<rmm::mr::device_memory_resource>( \ |
| 239 | + cudf::get_current_device_resource()); \ |
| 240 | + cudf::set_current_device_resource(&mr); \ |
| 241 | + auto rc = RUN_ALL_TESTS(); \ |
| 242 | + std::cout << "Peak memory usage " << mr.get_bytes_counter().peak << " bytes" << std::endl; \ |
| 243 | + return rc; \ |
| 244 | + } else { \ |
| 245 | + return RUN_ALL_TESTS(); \ |
| 246 | + } \ |
235 | 247 | }
|
0 commit comments