This is an automated email from the ASF dual-hosted git repository.
apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 7ecfcf034c ARROW-17421: [C++] CUDA on Windows fails to build (#13883)
7ecfcf034c is described below
commit 7ecfcf034c20089510fe96c844d436cdf6efe081
Author: Jacob Wujciak-Jens <[email protected]>
AuthorDate: Mon Aug 15 22:58:39 2022 +0200
ARROW-17421: [C++] CUDA on Windows fails to build (#13883)
Authored-by: Jacob Wujciak-Jens <[email protected]>
Signed-off-by: Antoine Pitrou <[email protected]>
---
cpp/src/arrow/gpu/cuda_context.h | 6 +++---
cpp/src/arrow/gpu/cuda_internal.h | 1 +
cpp/src/arrow/gpu/cuda_memory.h | 2 ++
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/cpp/src/arrow/gpu/cuda_context.h b/cpp/src/arrow/gpu/cuda_context.h
index 00bcf94c8b..0115ed19a1 100644
--- a/cpp/src/arrow/gpu/cuda_context.h
+++ b/cpp/src/arrow/gpu/cuda_context.h
@@ -76,7 +76,7 @@ class ARROW_EXPORT CudaDeviceManager {
static std::unique_ptr<CudaDeviceManager> instance_;
class Impl;
- std::unique_ptr<Impl> impl_;
+ std::shared_ptr<Impl> impl_;
friend class CudaContext;
friend class CudaDevice;
@@ -146,7 +146,7 @@ class ARROW_EXPORT CudaDevice : public Device {
/// \endcond
explicit CudaDevice(Impl);
- std::unique_ptr<Impl> impl_;
+ std::shared_ptr<Impl> impl_;
};
/// \brief Return whether a device instance is a CudaDevice
@@ -297,7 +297,7 @@ class ARROW_EXPORT CudaContext : public
std::enable_shared_from_this<CudaContext
uintptr_t dst, uintptr_t src, int64_t
nbytes);
class Impl;
- std::unique_ptr<Impl> impl_;
+ std::shared_ptr<Impl> impl_;
friend class CudaBuffer;
friend class CudaBufferReader;
diff --git a/cpp/src/arrow/gpu/cuda_internal.h
b/cpp/src/arrow/gpu/cuda_internal.h
index 25eb6e06ce..d70873634f 100644
--- a/cpp/src/arrow/gpu/cuda_internal.h
+++ b/cpp/src/arrow/gpu/cuda_internal.h
@@ -33,6 +33,7 @@ namespace internal {
std::string CudaErrorDescription(CUresult err);
+ARROW_EXPORT
Status StatusFromCuda(CUresult res, const char* function_name = nullptr);
#define CU_RETURN_NOT_OK(FUNC_NAME, STMT) \
diff --git a/cpp/src/arrow/gpu/cuda_memory.h b/cpp/src/arrow/gpu/cuda_memory.h
index 4efd388940..18c23a5078 100644
--- a/cpp/src/arrow/gpu/cuda_memory.h
+++ b/cpp/src/arrow/gpu/cuda_memory.h
@@ -250,10 +250,12 @@ Result<std::shared_ptr<CudaHostBuffer>>
AllocateCudaHostBuffer(int device_number
const int64_t
size);
/// Low-level: get a device address through which the CPU data be accessed.
+ARROW_EXPORT
Result<uintptr_t> GetDeviceAddress(const uint8_t* cpu_data,
const std::shared_ptr<CudaContext>& ctx);
/// Low-level: get a CPU address through which the device data be accessed.
+ARROW_EXPORT
Result<uint8_t*> GetHostAddress(uintptr_t device_ptr);
} // namespace cuda