From 1007af4b7778e6c64d8f0833486a5e660f6aa9ca Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay Date: Fri, 1 Mar 2024 11:29:40 +0100 Subject: [PATCH] Disabling some test setups on Windows. It seems that the implementation of CUDA managed memory is a bit more fragile on Windows than on Linux. --- tests/cuda/test_cuda_copy.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tests/cuda/test_cuda_copy.cpp b/tests/cuda/test_cuda_copy.cpp index 1755fa7a..c4ab06c6 100644 --- a/tests/cuda/test_cuda_copy.cpp +++ b/tests/cuda/test_cuda_copy.cpp @@ -63,7 +63,11 @@ class AsyncCUDACopyEnvironment : public ::testing::Environment { static ::testing::Environment* const async_cuda_copy_env = ::testing::AddGlobalTestEnvironment(new AsyncCUDACopyEnvironment{}); -/// The configurations to run the tests with. +/// The configurations to run the tests with. Skip tests with asynchronous +/// copies on "managed host memory" on Windows. (Using managed memory as +/// "device memory" does seem to be fine.) There seems to be some issue with +/// CUDA, which results in SEH exceptions when scheduling an asynchronous +/// copy in such a setup, while a previous asynchronous copy is still running. static const auto cuda_copy_configs = testing::Values( std::tie(cuda_device_copy_ptr, cuda_host_copy_ptr, cuda_device_resource_ptr, cuda_host_resource_ptr), @@ -75,12 +79,18 @@ static const auto cuda_copy_configs = testing::Values( cuda_managed_resource_ptr, cuda_host_resource_ptr), std::tie(cuda_device_copy_ptr, cuda_host_copy_ptr, cuda_managed_resource_ptr, cuda_managed_resource_ptr), +#ifndef _WIN32 std::tie(cuda_async_device_copy_ptr, cuda_host_copy_ptr, cuda_managed_resource_ptr, cuda_managed_resource_ptr), +#endif std::tie(cuda_device_copy_ptr, cuda_host_copy_ptr, cuda_device_resource_ptr, - cuda_managed_resource_ptr), + cuda_managed_resource_ptr) +#ifndef _WIN32 + , std::tie(cuda_async_device_copy_ptr, cuda_host_copy_ptr, - cuda_device_resource_ptr, cuda_managed_resource_ptr)); + cuda_device_resource_ptr, cuda_managed_resource_ptr) +#endif +); // Instantiate the test suite(s). INSTANTIATE_TEST_SUITE_P(cuda_copy_tests, copy_tests, cuda_copy_configs);