问题标签 [cuda-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
4 浏览

virtual-memory - cuMemAddressReserve 是特定于上下文的,还是这样的保留是全局的?

使用最新的 CUDA 版本,我们可以执行较低级别的虚拟内存管理 - 物理分配、地址范围保留和映射。我想知道这些对虚拟地址空间的操作有多“全局”。

具体来说,如果我保留此地址空间的某些部分 - 是否也会禁止系统上其他上下文的冲突使用?

更具体地说,这是否意味着这cuMemAddressReserve()是特定于上下文/上下文本地的操作?该文档似乎对此没有多说。

0 投票
2 回答
63 浏览

cuda - 为什么 cuMemAddressReserve() 因 CUDA_INVALID_VALUE 而失败?

考虑以下程序(用 C 语法编写):

尝试预订时失败:

我的论点有什么问题?是尺码吗?对齐?请求地址为 0?如果是后者 - 当我真的不在乎的时候,我怎么知道要请求哪个地址?

0 投票
1 回答
4 浏览

memory-management - 如果它具有活动映射,我必须保留虚拟地址范围保留吗?

CUDA的底层虚拟内存管理机制涉及:

  • 物理分配
  • 虚拟地址范围保留
  • 上述之间的映射

方便的是,如果您将物理分配映射到某个地址范围 - 您可以“释放”物理分配并继续使用它,直到它被取消映射。

我们也可以为虚拟地址范围保留执行此操作吗?即在映射消失之前它们会一直保持活力吗?文档没有说。

0 投票
1 回答
32 浏览

memory-management - 在一个 CUDA 上下文中 cuMemAlloc'ing 内存,并在另一个上下文中释放它 - 为什么会成功?

我创建了 2 个 cuda 上下文“ctx1”和“ctx2”并将当前上下文设置为“ctx1”并分配 8 字节的内存并将当前上下文切换到 ctx2。然后释放 ctx1 中的内存分配。为什么会返回CUDA_SUCCESS

而当我销毁 ctx1 然后释放内存时,会导致CUDA_INVALID_VALUE. 在我看来,每个上下文都包含其独特的资源,并且不允许其他上下文访问。有人可以解释这种行为吗?