2
0

SWDEV-336024 - Clear device heap to 0

The heap must be cleared once per device, but ROCclr doesn't
create a queue per device in HIP. Hence, the clear operation will
be performed during the first queue creation.

Change-Id: I52ceb06d67d11cde6d019c5ab510059f426a9bfb


[ROCm/clr commit: 04bfd93569]
Este cometimento está contido em:
German Andryeyev
2022-05-06 16:12:22 -04:00
ascendente d63201c1d4
cometimento 8624574866
10 ficheiros modificados com 77 adições e 47 eliminações
+4 -13
Ver ficheiro
@@ -788,8 +788,8 @@ bool Device::create() {
if (amd::IS_HIP) {
// Allocate initial heap for device memory allocator
static constexpr size_t HeapBufferSize = 1024 * Ki;
heap_buffer_ = createMemory(HeapBufferSize);
constexpr size_t kHeapBufferSize = 128 * Ki;
heap_buffer_ = createPrivateBuffer(kHeapBufferSize);
}
return true;
@@ -1659,6 +1659,7 @@ device::VirtualDevice* Device::createVirtualDevice(amd::CommandQueue* queue) {
return virtualDevice;
}
// ================================================================================================
bool Device::globalFreeMemory(size_t* freeMemory) const {
const uint TotalFreeMemory = 0;
const uint LargestFreeBlock = 1;
@@ -1673,6 +1674,7 @@ bool Device::globalFreeMemory(size_t* freeMemory) const {
return true;
}
// ================================================================================================
bool Device::bindExternalDevice(uint flags, void* const gfxDevice[], void* gfxContext,
bool validateOnly) {
#if defined(_WIN32)
@@ -1888,17 +1890,6 @@ device::Memory* Device::createMemory(amd::Memory& owner) const {
return memory;
}
// ================================================================================================
device::Memory* Device::createMemory(size_t size) const {
auto buffer = new roc::Buffer(*this, size);
static constexpr bool LocalAlloc = true;
if ((buffer == nullptr) || !buffer->create(LocalAlloc)) {
LogError("Couldn't allocate memory on device!");
return nullptr;
}
return buffer;
}
// ================================================================================================
void* Device::hostAlloc(size_t size, size_t alignment, MemorySegment mem_seg) const {
void* ptr = nullptr;