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:
German Andryeyev
2021-05-13 16:03:36 -04:00
rodič 6b6b4c0d57
revize 2b409b7e57
4 změnil soubory, kde provedl 251 přidání a 233 odebrání
+21 -18
Zobrazit soubor
@@ -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) {