问题标签 [cuda-arrays]
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.
arrays - 如何读回 CUDA 纹理进行测试?
好的,到目前为止,我可以在主机上创建一个数组(float类型),并将其复制到gpu,然后将其作为另一个数组带回主机(通过与原始比较来测试复制是否成功)。
然后我从 GPU 上的数组创建一个 CUDA 数组。然后我将该数组绑定到 CUDA 纹理。
我现在想读回该纹理并与原始数组进行比较(再次测试它是否正确复制)。我看到了一些使用readTexel()
下面显示的函数的示例代码。它似乎对我不起作用......(基本上一切正常,除了bindToTexture(float* deviceArray)
函数中从该readTexels(SIZE, testArrayDevice)
行开始的部分)。
有什么不同方法的建议吗?还是我在代码中遗漏了一些明显的问题?
谢谢你们的帮助!
cuda - CUDA:在 GPU 上分配二维数组
我已经阅读了以下线程,但我无法让我的代码工作。
我正在尝试在 GPU 上分配一个二维数组,用值填充它,然后将其复制回 CPU。我的代码如下:
我怎样才能做到这一点?
cuda - 是否可以在 CUarray 上运行 cuMemset?
我有一个 CUarray,它是通过 cuGraphicsSubResourceGetMappedArray() 从我的 OpenGL 上下文中获得的。是否可以将它与 cuMemset*() 一起使用?
cuda - cudaMemcpyToArray
我似乎对函数 cudaMemcpyToArray 有疑问。我有以下命令:
据我了解,这应该给我一个 cuArray 中的二维数组,该数组的尺寸为 bmp.width,来自 h_data 中的数据,这是一个尺寸为 bmp.width * bmp.height 的一维数组。不幸的是,它只是在最后一个命令上出现段错误。我做错了什么可怕的事情吗?
cuda - 读取设备代码中的 cudaArray
有没有办法cudaArray
从设备中读取 a 中的值而不将其包装在纹理参考/对象中?我看过的所有示例都cudaArray
专门用于创建纹理。这是他们可以使用的唯一方法,还是我可以做类似的事情:
所以基本上,应该用什么代替tex1D
那里?此外,如果这是可能的,我会很好奇是否有人认为这样做会对性能有任何好处,但我也会运行我自己的测试来看看。
谢谢!
c++ - Cuda cudaGetTextureReference 返回“无效的纹理参考”
我正在开发一个小的 cuda lib,被这个烦人的 tex ref 问题所困扰。
这是 Cuda C 编程指南第 43~44 页的示例代码:
当我执行它时,cudaGetTextureReference(...) 行返回错误代码cudaErrorInvalidTexture
。我在互联网上找不到很多关于 cudaGetTextureReference 的其他示例,其中大多数都遵循与上面示例代码完全相同的过程。
沮丧的是,我后来尝试了高级 API:
同样的问题。如果从内核中的那个纹理读取,我得到的只是零值。
我的完整玩具测试代码,100% 重现率:(win7,cuda 5.0)
对此问题的任何见解将不胜感激。谢谢
opencv - 如何使用 cuda tex2D 访问像素的每个通道
我正在学习 cuda 纹理记忆。现在,我得到了一个 opencv Iplimage,并得到了它的图像数据。然后我将纹理绑定到这个 uchar 数组,如下所示:
现在我启动内核,我想访问该图像的每个像素,每个通道。这就是我感到困惑的地方。
我使用此代码获取像素坐标(X,Y):
我怎样才能访问这个(X,Y)的每个通道?下面的代码返回什么?
除此之外,你能告诉我纹理内存是如何使用纹理来访问数组的,以及这个变换是什么样子的吗?
cuda - CUDA 纹理对象——非标准化模式下的错误插值
来自绑定到 CUDA 数组的 CUDA 纹理对象的非归一化线性插值似乎返回了不正确的结果。插值似乎0.5
比预期的要小。归一化线性插值似乎工作正常。
这段代码有问题吗?在进行非归一化纹理插值时,我们是否期望乘以 2?
编码:
结果:
有关上述代码、makefile 和规范化插值代码,请参阅此要点。
cuda - CUDA 纹理作为类成员?
尝试定义具有每个实例纹理的类。是的,该类的实例数量会很少。为了解决 CUDA 纹理必须是全局变量的限制,我尝试了以下方法:
- 定义一个全局纹理表。
- 将实例 ID 数据成员添加到类。
- 让类方法使用其 ID 从表中选择纹理,并将其作为参数传递给 CUDA 内核。
不工作。纹理不能作为参数传递(也不能通过指针或引用传递),并且内核无法识别数组名称,除非通过索引传递。我可能可以使用 switch 语句来做到这一点,但这很难看。有什么建议么?
opengl - CUDA 立方体贴图纹理
如何在 CUDA 中处理 OpenGL 立方体贴图纹理?
当想要在 CUDA 内核中使用 OpenGL 纹理时,要做的一件事是从注册的图像和映射资源中检索一个 CUDA 数组,在这种情况下是一个纹理。在驱动程序 API 中,它是通过cuGraphicsSubResourceGetMappedArray
调用完成的,这在 2D 纹理的情况下不是问题。但是在谈到上述立方体贴图时,该函数的第三个参数需要一个面枚举(如CU_CUBEMAP_FACE_POSITIVE_X
)。因此出现了一些问题——当一个人通过这样一个枚举时,返回的纹理数组将只包含那个特定人脸的数据,对吧?那么如何将立方体纹理作为一个整体来进行立方体映射,同样:
还是在 CUDA 内核中不可能这样做,并且需要在用户代码中使用具有适当计算和采样的 2D 纹理?