SWDEV-240804 - Remove AMD_HMM_SUPPORT define
Use dynamic logic for HMM based on it's availability
Change-Id: I63751d94571d5af6eb57bef2cb0e071120bfa103
[ROCm/clr commit: 3f7a6b01e3]
Tento commit je obsažen v:
@@ -632,13 +632,13 @@ void Buffer::destroy() {
|
||||
if (kind_ != MEMORY_KIND_PTRGIVEN) {
|
||||
if (isFineGrain) {
|
||||
if (memFlags & CL_MEM_ALLOC_HOST_PTR) {
|
||||
#if AMD_HMM_SUPPORT
|
||||
// AMD HMM path. Destroy system memory
|
||||
amd::Os::uncommitMemory(deviceMemory_, size());
|
||||
amd::Os::releaseMemory(deviceMemory_, size());
|
||||
#else
|
||||
dev().hostFree(deviceMemory_, size());;
|
||||
#endif // AMD_HMM_SUPPORT
|
||||
if (dev().info().hmmSupported_) {
|
||||
// AMD HMM path. Destroy system memory
|
||||
amd::Os::uncommitMemory(deviceMemory_, size());
|
||||
amd::Os::releaseMemory(deviceMemory_, size());
|
||||
} else {
|
||||
dev().hostFree(deviceMemory_, size());
|
||||
}
|
||||
} else if (memFlags & ROCCLR_MEM_HSA_SIGNAL_MEMORY) {
|
||||
if (HSA_STATUS_SUCCESS != hsa_signal_destroy(signal_)) {
|
||||
ClPrint(amd::LOG_DEBUG, amd::LOG_MEM,
|
||||
@@ -727,17 +727,20 @@ bool Buffer::create() {
|
||||
if (owner()->getSvmPtr() == reinterpret_cast<void*>(1)) {
|
||||
if (isFineGrain) {
|
||||
if (memFlags & CL_MEM_ALLOC_HOST_PTR) {
|
||||
#if AMD_HMM_SUPPORT
|
||||
// AMD HMM path. Just allocate system memory and KFD will manage it
|
||||
deviceMemory_ = amd::Os::reserveMemory(
|
||||
0, size(), amd::Os::pageSize(), amd::Os::MEM_PROT_RW);
|
||||
amd::Os::commitMemory(deviceMemory_, size(), amd::Os::MEM_PROT_RW);
|
||||
// Currently HMM requires cirtain initial calls to mark sysmem allocation as
|
||||
// GPU accessible or prefetch memory into GPU
|
||||
dev().SvmAllocInit(deviceMemory_, size());
|
||||
#else
|
||||
deviceMemory_ = dev().hostAlloc(size(), 1, Device::MemorySegment::kNoAtomics);
|
||||
#endif // AMD_HMM_SUPPORT
|
||||
if (dev().info().hmmSupported_) {
|
||||
// AMD HMM path. Just allocate system memory and KFD will manage it
|
||||
deviceMemory_ = amd::Os::reserveMemory(
|
||||
0, size(), amd::Os::pageSize(), amd::Os::MEM_PROT_RW);
|
||||
amd::Os::commitMemory(deviceMemory_, size(), amd::Os::MEM_PROT_RW);
|
||||
// Currently HMM requires cirtain initial calls to mark sysmem allocation as
|
||||
// GPU accessible or prefetch memory into GPU
|
||||
if (!dev().SvmAllocInit(deviceMemory_, size())) {
|
||||
ClPrint(amd::LOG_ERROR, amd::LOG_MEM, "SVM init in ROCr failed!");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
deviceMemory_ = dev().hostAlloc(size(), 1, Device::MemorySegment::kNoAtomics);
|
||||
}
|
||||
} else if (memFlags & CL_MEM_FOLLOW_USER_NUMA_POLICY) {
|
||||
deviceMemory_ = dev().hostNumaAlloc(size(), 1, (memFlags & CL_MEM_SVM_ATOMICS) != 0);
|
||||
} else if (memFlags & ROCCLR_MEM_HSA_SIGNAL_MEMORY) {
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele