问题标签 [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 投票
1 回答
1085 浏览

cuda - 是否可以在 CUarray 上运行 cuMemset?

我有一个 CUarray,它是通过 cuGraphicsSubResourceGetMappedArray() 从我的 OpenGL 上下文中获得的。是否可以将它与 cuMemset*() 一起使用?

0 投票
1 回答
1995 浏览

error-handling - 如何在陷阱指令后使用 Driver API 将 CUDA 错误重置为成功?

我有一个内核,它可能会asm("trap;")在内核内部调用。但是当这种情况发生时,CUDA 错误代码设置为启动失败,我无法重置它。

在 CUDA Runtime API 中,我们可以cudaGetLastError用来获取最后一个错误,同时将其重置为cudaSuccess.

有没有办法用 Driver API 做到这一点?

0 投票
1 回答
292 浏览

cuda - 如何找到有关 CUDA_ERROR_INVALID_VALUE 的更多详细信息?

作为将Vulkan VkImage 用作 CUDA cuArray 的一个附带问题,我如何才能获得有关返回的 CUDA 驱动程序 API 调用有什么问题的更多详细信息CUDA_ERROR_INVALID_VALUE

具体来说,调用是到cuExternalMemoryGetMappedMipmappedArray()并且文档没有CUDA_ERROR_INVALID_VALUE在它的返回值中列出。

有关如何调试此问题的任何建议?

0 投票
2 回答
541 浏览

cuda - 是什么让 cuLaunchKernel 因 CUDA_ERROR_INVALID_HANDLE 而失败?

cudLaunchKernel()我正在使用驱动程序 API 函数启动我编译的 CUDA 内核。我在kernelParams数组中传递我的参数,并传递nullptr参数extra

不幸的是,这失败了,错误:CUDA_ERROR_INVALID_HANDLE. 为什么?我检查了驱动程序 API 文档以查看函数在什么情况下可能会失败,并编辑它讨论了失败CUDA_ERROR_INVALID_VALUE(不是同一件事)。它没有讨论我得到的错误。

由于有多个参数cuLaunchKernel()是某种句柄 - 这种失败意味着什么?(如果有多种选择——它们是什么?)

0 投票
1 回答
157 浏览

cuda - cuDevicePrimaryCtxReset() 和 cudaDeviceReset() 做同样的事情吗?

阅读 CUDA Runtime API 和 Driver API 文档,似乎这两个功能:

做同样的事情(直到必须cudaSetDevice(dev)在运行时 API 调用之前):

销毁所有分配并重置主上下文上的所有状态。

对于第一个和

在当前进程中销毁所有分配并重置当前设备上的所有状态。

他们真的会这样做吗?或者是否存在我遗漏或未记录的细微差异?例如与线程与进程相关的东西?

0 投票
0 回答
89 浏览

cuda - 如何确定 CUDA 上下文是否是主要上下文 - 便宜?

cuDevicePrimaryCtxRetain()您可以(?)通过调用并将返回的指针与您拥有的上下文进行比较来确定 CUDA 上下文是否是主要上下文。但是 - 如果还没有人创建主要上下文怎么办?那么有没有更便宜的方法来获得否定的答案呢?或者 - 非主要上下文是否不可能存在而主要不存在?

0 投票
1 回答
484 浏览

cuda - cudaSetDevice() 对 CUDA 设备的上下文堆栈有什么作用?

假设我有一个与 device 关联的活动 CUDA 上下文i,我现在调用cudaSetDevice(i). 发生什么了?:

  1. 没有?
  2. 主上下文替换栈顶?
  3. 主要上下文被压入堆栈?

它实际上似乎是不一致的。我已经编写了这个程序,在一台只有一个设备的机器上运行:

我得到以下输出:

这似乎是一种行为有时是一种替代,有时是一种推动。

这是怎么回事?

0 投票
1 回答
289 浏览

cuda - 来自 cuLaunchKernel() 的意外 CUDA_ERROR_INVALID_VALUE

我正在尝试使用 CUDA 驱动程序 API 启动内核。具体来说,我在打电话

我只使用,kernelParams并传递nullptr. extra现在,对于我的一个内核,我得到CUDA_ERROR_INVALID_VALUE.

文档

CUDA_ERROR_INVALID_VALUE如果内核参数同时指定了kernelParamsand extra(即两者kernelParamsextra都是非NULL) ,则会返回错误。

好吧,我没有那样做,而且还在CUDA_ERROR_INVALID_VALUE。为了更加安全,我在启动内核之前同步了流 - 但无济于事。

CUDA_ERROR_INVALID_VALUE尝试启动时获得的其他原因是什么?

0 投票
1 回答
90 浏览

memory - 您可以使用 CU_STREAM_WAIT_VALUE_FLUSH 等待哪些“远程写入”?

当您使用 CUDA 驱动程序 API 调用执行等待值操作时cuStreamWaitValue32(),您可以指定标志CU_STREAM_WAIT_VALUE_FLUSH。这是文档所说的:

在等待操作之后刷新未完成的远程写入。这意味着,如果保证在等待满足之前远程写入操作已到达设备,则该写入保证对下游设备工作可见。

我的问题是:在这种情况下,什么算作“远程写入”?它只调用cuStreamWriteValue32()/ cuStreamWriteValue64()吗?是否有涉及不同设备或主机的任何类型的写入?包括cudaMemcpy()和朋友?

0 投票
2 回答
100 浏览

cuda - 我可以获得用作 __nv_nvrtc_builtin_header.h 的内容吗?

我正在分析使用 nvrtc 库编译的内核(带有调试和 lineinfo)。在分析结果中,许多样本被列为在__nv_nvrtc_builtin_header.h. 但是 - 磁盘上显然没有这样的文件,自然(?)NVIDIA Compute 源视图无法找到它。

我的问题:

  • 里面到底有什么__nv_nvrtc_builtin_header.h
  • 我可以查看这个神秘标题的内容吗?(如果有帮助,假设我用来执行编译的代码可以修改/添加到。)