创建统一内存时是否需要提供Gpu上下文?

时间:2017-05-25 13:26:03

标签: cuda unified-memory

问题1)

当我调用CUDA驱动程序API时,通常我需要先将上下文(代表GPU运行时)推送到当前线程。对于普通cuMalloc,内存将在上下文指定的GPU上分配。但是,如果我尝试调用cuMallocManaged来创建统一内存,我还需要推送GPU上下文吗?

问题2)

假设我有2个GPU,每个GPU有1 GB DRAM。那么我可以分配2 GB的统一内存吗?每个GPU拥有一半吗?

1 个答案:

答案 0 :(得分:3)

  1. 遵循既定的驱动程序API编程方法。明确建立CUDA背景。

  2. 不,这不是托管内存的工作原理。托管分配完全可见于系统中的所有GPU。无论我们是在讨论pre-pascal UM制度还是纯粹的pascal UM制度,这都是正确的,尽管具体的可见性方法各不相同。请参阅UM with multi-GPU上的编程指南部分。