From a135895f3ae1826d46d7fe1550cc5f0918fc70cd Mon Sep 17 00:00:00 2001 From: Hendrik Groove Date: Mon, 21 Oct 2024 00:35:28 +0200 Subject: [PATCH] fix --- src/common/device_helpers.hip.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/common/device_helpers.hip.h b/src/common/device_helpers.hip.h index a27b92425..7bc7d2e8f 100644 --- a/src/common/device_helpers.hip.h +++ b/src/common/device_helpers.hip.h @@ -995,16 +995,17 @@ auto Reduce(Policy policy, InputIt first, InputIt second, Init init, Func reduce std::cerr << "Processing batch: offset=" << offset << ", batch_size=" << batch_size << std::endl; - try { - // Instead of trying to get raw pointers, let's print the iterator types + try { + // Print the iterator types std::cerr << "Iterator types - begin: " << typeid(begin_it).name() << ", end: " << typeid(end_it).name() << std::endl; // If we need to check pointer validity, we can do it like this: if (batch_size > 0) { - auto& first_element = *begin_it; + // Use thrust::raw_pointer_cast to get the underlying device pointer + auto raw_ptr = thrust::raw_pointer_cast(&(*begin_it)); hipPointerAttribute_t attrs; - hipError_t ptr_err = hipPointerGetAttributes(&attrs, &first_element); + hipError_t ptr_err = hipPointerGetAttributes(&attrs, raw_ptr); if (ptr_err != hipSuccess) { std::cerr << "Invalid pointer for first element: " << hipGetErrorString(ptr_err) << std::endl; } else {