From 1f3a3fb71aee19463053a823023cc515a204b2dd Mon Sep 17 00:00:00 2001 From: Artur Wojcik Date: Fri, 31 Jan 2025 14:20:54 +0100 Subject: [PATCH] hip pinned allocator --- .../core/providers/migraphx/migraphx_allocator.cc | 4 ++-- .../core/providers/migraphx/migraphx_allocator.h | 11 +++++------ .../providers/migraphx/migraphx_execution_provider.cc | 2 +- .../providers/migraphx/migraphx_provider_factory.cc | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/onnxruntime/core/providers/migraphx/migraphx_allocator.cc b/onnxruntime/core/providers/migraphx/migraphx_allocator.cc index 3d9ae2bf7e6ff..cf9f44f4cd8f0 100644 --- a/onnxruntime/core/providers/migraphx/migraphx_allocator.cc +++ b/onnxruntime/core/providers/migraphx/migraphx_allocator.cc @@ -68,7 +68,7 @@ void* MIGraphXExternalAllocator::Reserve(size_t size) { return p; } -void* HIPPinnedAllocator::Alloc(size_t size) { +void* MIGraphXPinnedAllocator::Alloc(size_t size) { void* p = nullptr; if (size > 0) { HIP_CALL_THROW(hipHostMalloc((void**)&p, size)); @@ -76,7 +76,7 @@ void* HIPPinnedAllocator::Alloc(size_t size) { return p; } -void HIPPinnedAllocator::Free(void* p) { +void MIGraphXPinnedAllocator::Free(void* p) { HIP_CALL_THROW(hipHostFree(p)); } diff --git a/onnxruntime/core/providers/migraphx/migraphx_allocator.h b/onnxruntime/core/providers/migraphx/migraphx_allocator.h index c8c935eba44ab..2a84445897391 100644 --- a/onnxruntime/core/providers/migraphx/migraphx_allocator.h +++ b/onnxruntime/core/providers/migraphx/migraphx_allocator.h @@ -49,17 +49,16 @@ class MIGraphXExternalAllocator : public MIGraphXAllocator { std::unordered_set reserved_; }; -// TODO: add a default constructor -class HIPPinnedAllocator : public IAllocator { +class MIGraphXPinnedAllocator final : public IAllocator { public: - HIPPinnedAllocator(int device_id, const char* name) + MIGraphXPinnedAllocator(const int device_id, const char* name) : IAllocator( - OrtMemoryInfo(name, OrtAllocatorType::OrtDeviceAllocator, + OrtMemoryInfo(name, OrtDeviceAllocator, OrtDevice(OrtDevice::CPU, OrtDevice::MemType::HIP_PINNED, static_cast(device_id)), device_id, OrtMemTypeCPUOutput)) {} - virtual void* Alloc(size_t size) override; - virtual void Free(void* p) override; + void* Alloc(size_t size) override; + void Free(void* p) override; }; } // namespace onnxruntime diff --git a/onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc b/onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc index eba1ca9762b28..aad3a44744e06 100644 --- a/onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc +++ b/onnxruntime/core/providers/migraphx/migraphx_execution_provider.cc @@ -334,7 +334,7 @@ std::vector MIGraphXExecutionProvider::CreatePreferredAllocators() [](OrtDevice::DeviceId device_id) { return std::make_unique(device_id, onnxruntime::CUDA); }, info_.device_id); AllocatorCreationInfo pinned_allocator_info( [](OrtDevice::DeviceId device_id) { - return std::make_unique(device_id, onnxruntime::CUDA_PINNED); + return std::make_unique(device_id, onnxruntime::CUDA_PINNED); }, 0); return std::vector{CreateAllocator(default_memory_info), CreateAllocator(pinned_allocator_info)}; diff --git a/onnxruntime/core/providers/migraphx/migraphx_provider_factory.cc b/onnxruntime/core/providers/migraphx/migraphx_provider_factory.cc index 519b8c7870092..4a3945ac680d0 100644 --- a/onnxruntime/core/providers/migraphx/migraphx_provider_factory.cc +++ b/onnxruntime/core/providers/migraphx/migraphx_provider_factory.cc @@ -40,7 +40,7 @@ struct ProviderInfo_MIGraphX_Impl final : ProviderInfo_MIGraphX { } std::unique_ptr CreateMIGraphXPinnedAllocator(int16_t device_id, const char* name) override { - return std::make_unique(device_id, name); + return std::make_unique(device_id, name); } void MIGraphXMemcpy_HostToDevice(void* dst, const void* src, size_t count) override {