我正在尝试使用 nvidia_video_codec_sdk 解码 h.265 帧,视频大小为 192x168,但 cuvidCreateDecoder 断言 CUDA_ERROR_INVALID_VALUE。 我的环境 NVIDIA GeForce RTX 3060 NVIDIA-SMI 470 ...
我正在尝试使用 nvidia_video_codec_sdk 解码 h.265 帧,视频大小为 192x168,但 cuvidCreateDecoder 断言 CUDA_ERROR_INVALID_VALUE。 我的环境 NVIDIA GeForce RTX 3060 NVIDIA-SMI 470 ...
CUDA 图 API 公开了一个 function 调用,用于将“批处理 memory 操作”节点添加到图中: 但是这个 API 调用的文档没有解释...的标志字段的用途,以及应该将标志设置为什么。 那么我应该传递什么价值呢? ...
cuDeviceGetGraphMemAttribute()采用指向结果变量的空指针。 但是 - 它期望指向的值是什么类型? 文档(针对 CUDA v12.0) 没有说. 我猜它是一个无符号的 64 位类型,但我想确定一下。 ...
考虑 CUDA 图 API 函数cuFindNodeInClone() 。 文件说,它: 退货: CUDA_SUCCESS , CUDA_ERROR_INVALID_VALUE 这对我来说似乎有问题。 我如何判断搜索是否失败(例如,因为图中没有传递节点的副本),或者节点或图是否只是无效的(例如 ...
从 CUDA 驱动程序 API 文档: 枚举 CUmemAllocationHandleType 什么是HANDLE类型? 即它的定义是什么? 并且 - 我可以手动定义它,还是必须为其包含一些 Windows 标头? ...
我们都应该知道(但没有足够多的人这样做),当您使用 NVCC 构建 CUDA 程序并在二进制文件中不包含特定设备的完全编译 (SASS) 代码的设备上运行它时 - 中间PTX 代码是 JITed,其结果实际上用于运行您的内核。 在这个 JITing 期间, JIT 编译缓存启动,因此,下次运行相同的 ...
假设我有一个 cubin 文件,或者为了更容易,我将一个 cubin 文件加载到 memory(这样我就有了一个void*数据)。 使用CUDA Driver API for modules ,我可以尝试将数据加载到当前上下文中的模块中; 如果编译后的代码不可用于相关目标(并且没有 PTX 可以改 ...
假设我调用cuEventRecord(0, my_event_handle) 。 cuEventRecord()要求 stream 和事件属于同一上下文。 现在,可以将0解释为“在适当的上下文中的默认值 stream”——满足要求,这应该可以工作; 但也可以将其解释为“当前上下文中的默认 str ...
CUDA 驱动程序 API 定义了CUDA_VERSION (在cuda.h中),CUDA 运行时 API 定义了CUDART_VERSION (在cuda_runtime_api.h中)。 但是 - CUDART_VERSION未定义为CUDA_VERSION而是直接定义为数字。 它们是否总是 ...
我创建了 2 个 cuda 上下文“ctx1”和“ctx2”并将当前上下文设置为“ctx1”并分配 8 个字节的 memory 并将当前上下文切换到 ctx2。 然后释放 ctx1 中的 Memory alloc。 为什么这会返回CUDA_SUCCESS ? 当我销毁 ctx1 然后释放 Memo ...
CUDA的低级虚拟memory管理机制涉及: 物理分配虚拟地址范围保留上述之间的映射方便的是,如果您 map 对某个地址范围进行物理分配 - 您可以“释放”物理分配并继续使用它,直到它被取消映射。 我们也可以为虚拟地址范围保留执行此操作吗? 即在映射消失之前它们会一直保持活力吗? 文档没有说。 ...
考虑以下程序(用 C 语法编写):#include <cuda.h> #include <stdio.h> #include <stdlib.h> int main() { CUresult result; unsigned int init_ ...
我想知道是否可以使用选项 CU_JIT_LTO 在即时 (JIT) 链接期间改进链接时间优化 (LTO)。 如果是这样,我该如何指定这个选项? 我在 NVIDIA 开发者博客中找到了以下代码,但我不明白为什么将 walltime 赋予 CU_JIT_LTO。 博客中没有定义 walltime 变量 ...
如何以编程方式获取实际的 CUDA 驱动程序版本(例如 470.57.02,而不是像相应的 CUDA 版本或 11040 那样的 11.4)? 我们知道这不是cudaDriverGetVersion() ... ...
CUDA 运行时 API 具有函数cudaGetSymbolAddress()和cudaGetSymbolSize()用于处理来自主机端代码的设备端全局变量,使用它们的名称(源代码标识符)作为句柄。 在驱动程序 API 中,我们有cuModuleGetGlobal() ,它可以让我们做同样的事情 ...
CUDA 运行时具有“当前设备”的概念,而 CUDA 驱动程序没有。 相反,驱动程序有一个上下文堆栈,其中“当前上下文”位于堆栈的顶部。 两者如何互动? 即 Driver API 调用如何影响 Runtime API 的当前设备,更改当前设备如何影响 Driver API 的上下文堆栈或其他 s ...
cuGetPointerAttribute()传递一个指向多种类型之一的指针,根据请求的实际属性填充。 其中一些类型是明确说明的,或者可以隐含地推导出来推导,但有些类型 - 不是那么多。 具体来说......必须为属性传递指针的类型是什么: CU_POINTER_ATTRIBUTE_BUFFE ...
我正在尝试使用 CUDA 驱动程序 API 在下面列出的程序中将数据复制到二维数组中,但是当我传递我的复制参数时出现“无效值”错误。 它们的什么价值是错误的?#include <cuda.h> #include <iostream> #include <iomani ...
在 CUDA 11.2 中引入设备链接时优化 (DLTO) 之前,确保前向兼容性相对容易,而无需过多担心性能差异。 您通常只需为可能的最低架构创建一个包含 PTX 的胖二进制文件,并为您通常针对的特定架构创建 SASS。 对于任何未来的 GPU 架构,JIT 编译器随后会将 PTX 组装到针对特定 ...
我正在尝试构建以下程序: 编译总是很顺利; 但是,使用 CUDA 10.2,链接工作,而使用 CUDA 11.2,我得到: 为什么会发生这种情况,我该如何解决? 注意:我正在使用带有驱动程序版本 440.82 的 Devuan Beowulf(尚未为 CUDA 11.2 安装新驱动程序)。 ...