当我们使用 nVidia GPU 时,我们可以使用 UVA(统一虚拟寻址),如图所示。但是我们可以在不同的上下文中使用来自不同 CPU 进程的 GPU+UVA。
UVA 将在所有 CPU 进程(上下文)中为 UVA 使用相同的页表(虚拟地址 <-> 物理地址),看起来就像它为内核空间寻址所做的那样,或者将为每个 CPU 进程创建在这个进程的地址空间中拥有自己的页表(即CPU进程不能写入其他CPU进程分配的GPU-RAM中的内存(UVA))?
当我们使用 nVidia GPU 时,我们可以使用 UVA(统一虚拟寻址),如图所示。但是我们可以在不同的上下文中使用来自不同 CPU 进程的 GPU+UVA。
UVA 将在所有 CPU 进程(上下文)中为 UVA 使用相同的页表(虚拟地址 <-> 物理地址),看起来就像它为内核空间寻址所做的那样,或者将为每个 CPU 进程创建在这个进程的地址空间中拥有自己的页表(即CPU进程不能写入其他CPU进程分配的GPU-RAM中的内存(UVA))?
不同的 CPU 进程具有不同的基于进程的虚拟到物理指针映射。因此,在一个 CPU 进程中创建的(虚拟)指针不能可靠地用于另一个进程。UVA 无法控制协调单独的 CPU 进程虚拟映射。