3

问题1)

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

问题2)

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

4

1 回答 1

3
  1. 遵循已建立的驱动程序 API 编程方法。显式建立一个 CUDA 上下文。

  2. 不,这不是托管内存的工作方式。托管分配对系统中的所有 GPU 都是可见的。无论我们谈论的是前帕斯卡 UM 机制还是纯帕斯卡 UM 机制,这都是正确的,尽管可见性的具体方法有所不同。请参阅UM with multi-GPU的编程指南部分。

于 2017-05-25T14:56:08.253 回答