libhsakmt: optimize system memory allocation
Use MAP_POPULATE when allocating anonymous system memory for later
GPU mapping as a userptr. This can speed up large allocations by
more than factor 2. I suspect populating pages in this way is more
efficient than the CPU page fault code path triggered by
get_user_pages in the kernel.
Change-Id: I188bbc1462ccb650d48cbfb1080dbb8eb7ada8b5
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
[ROCm/ROCR-Runtime commit: 8f26c0c40c]
Этот коммит содержится в:
@@ -1566,8 +1566,8 @@ static void *fmm_allocate_host_gpu(uint32_t node_id, void *address,
|
||||
|
||||
/* Map anonymous pages */
|
||||
if (mmap(mem, MemorySizeInBytes, PROT_READ | PROT_WRITE,
|
||||
MAP_ANONYMOUS | MAP_PRIVATE | MAP_FIXED, -1, 0)
|
||||
== MAP_FAILED)
|
||||
MAP_ANONYMOUS | MAP_POPULATE | MAP_PRIVATE | MAP_FIXED,
|
||||
-1, 0) == MAP_FAILED)
|
||||
goto out_release_area;
|
||||
|
||||
/* Bind to NUMA node */
|
||||
|
||||
Ссылка в новой задаче
Block a user