Add fine grain vram pool.

Part 1 of 2.
Enables fine grain vram over PCIe based on env flag.
Part 2 will extend to XGMI.

Change-Id: I8ad506e004b398d56d462b0200274eae2293a461


[ROCm/ROCR-Runtime commit: c56d86100b]
Tento commit je obsažen v:
Sean Keely
2018-11-28 20:47:23 -06:00
rodič c66675d192
revize f7dbaf103b
3 změnil soubory, kde provedl 11 přidání a 1 odebrání
@@ -302,6 +302,9 @@ void GpuAgent::InitRegionList() {
if (region->IsLocalMemory()) {
local_region_ = region;
// Expose VRAM as uncached/fine grain over PCIe (if enabled) or XGMI.
if (core::Runtime::runtime_singleton_->flag().fine_grain_pcie())
regions_.push_back(new MemoryRegion(true, false, this, mem_props[mem_idx]));
}
break;
}
@@ -279,7 +279,8 @@ hsa_status_t MemoryRegion::GetInfo(hsa_region_info_t attribute,
break;
case HSA_HEAPTYPE_FRAME_BUFFER_PRIVATE:
case HSA_HEAPTYPE_FRAME_BUFFER_PUBLIC:
*((uint32_t*)value) = HSA_REGION_GLOBAL_FLAG_COARSE_GRAINED;
*((uint32_t*)value) = fine_grain() ? HSA_REGION_GLOBAL_FLAG_FINE_GRAINED
: HSA_REGION_GLOBAL_FLAG_COARSE_GRAINED;
break;
default:
*((uint32_t*)value) = 0;
+6
Zobrazit soubor
@@ -103,6 +103,9 @@ class Flag {
var = os::GetEnvVar("HSA_REV_COPY_DIR");
rev_copy_dir_ = (var == "1") ? true : false;
var = os::GetEnvVar("HSA_FORCE_FINE_GRAIN_PCIE");
fine_grain_pcie_ = (var == "1") ? true : false;
}
bool check_flat_scratch() const { return check_flat_scratch_; }
@@ -125,6 +128,8 @@ class Flag {
bool rev_copy_dir() const { return rev_copy_dir_; }
bool fine_grain_pcie() const { return fine_grain_pcie_; }
std::string enable_sdma() const { return enable_sdma_; }
std::string visible_gpus() const { return visible_gpus_; }
@@ -146,6 +151,7 @@ class Flag {
bool report_tool_load_failures_;
bool disable_fragment_alloc_;
bool rev_copy_dir_;
bool fine_grain_pcie_;
std::string enable_sdma_;