问题标签 [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.

0 投票
2 回答
8614 浏览

arrays - 如何读回 CUDA 纹理进行测试?

好的,到目前为止,我可以在主机上创建一个数组(float类型),并将其复制到gpu,然后将其作为另一个数组带回主机(通过与原始比较来测试复制是否成功)。

然后我从 GPU 上的数组创建一个 CUDA 数组。然后我将该数组绑定到 CUDA 纹理。

我现在想读回该纹理并与原始数组进行比较(再次测试它是否正确复制)。我看到了一些使用readTexel()下面显示的函数的示例代码。它似乎对我不起作用......(基本上一切正常,除了bindToTexture(float* deviceArray)函数中从该readTexels(SIZE, testArrayDevice)行开始的部分)。

有什么不同方法的建议吗?还是我在代码中遗漏了一些明显的问题?

谢谢你们的帮助!

0 投票
4 回答
6829 浏览

cuda - CUDA:在 GPU 上分配二维数组

我已经阅读了以下线程,但我无法让我的代码工作。
我正在尝试在 GPU 上分配一个二维数组,用值填充它,然后将其复制回 CPU。我的代码如下:

我怎样才能做到这一点?

0 投票
1 回答
1085 浏览

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

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

0 投票
1 回答
2121 浏览

cuda - cudaMemcpyToArray

我似乎对函数 cudaMemcpyToArray 有疑问。我有以下命令:

据我了解,这应该给我一个 cuArray 中的二维数组,该数组的尺寸为 bmp.width,来自 h_data 中的数据,这是一个尺寸为 bmp.width * bmp.height 的一维数组。不幸的是,它只是在最后一个命令上出现段错误。我做错了什么可怕的事情吗?

0 投票
2 回答
4911 浏览

cuda - 读取设备代码中的 cudaArray

有没有办法cudaArray从设备中读取 a 中的值而不将其包装在纹理参考/对象中?我看过的所有示例都cudaArray专门用于创建纹理。这是他们可以使用的唯一方法,还是我可以做类似的事情:

所以基本上,应该用什么代替tex1D那里?此外,如果这是可能的,我会很好奇是否有人认为这样做会对性能有任何好处,但我也会运行我自己的测试来看看。

谢谢!

0 投票
2 回答
1829 浏览

c++ - Cuda cudaGetTextureReference 返回“无效的纹理参考”

我正在开发一个小的 cuda lib,被这个烦人的 tex ref 问题所困扰。

这是 Cuda C 编程指南第 43~44 页的示例代码:

当我执行它时,cudaGetTextureReference(...) 行返回错误代码cudaErrorInvalidTexture。我在互联网上找不到很多关于 cudaGetTextureReference 的其他示例,其中大多数都遵循与上面示例代码完全相同的过程。

沮丧的是,我后来尝试了高级 API:

同样的问题。如果从内核中的那个纹理读取,我得到的只是零值。

我的完整玩具测试代码,100% 重现率:(win7,cuda 5.0)

对此问题的任何见解将不胜感激。谢谢

0 投票
1 回答
5206 浏览

opencv - 如何使用 cuda tex2D 访问像素的每个通道

我正在学习 cuda 纹理记忆。现在,我得到了一个 opencv Iplimage,并得到了它的图像数据。然后我将纹理绑定到这个 uchar 数组,如下所示:

现在我启动内核,我想访问该图像的每个像素,每个通道。这就是我感到困惑的地方。

我使用此代码获取像素坐标(X,Y):

怎样才能访问这个(X,Y)的每个通道?下面的代码返回什么?

除此之外,你能告诉我纹理内存是如何使用纹理来访问数组的,以及这个变换是什么样子的吗?

在此处输入图像描述

0 投票
1 回答
1091 浏览

cuda - CUDA 纹理对象——非标准化模式下的错误插值

来自绑定到 CUDA 数组的 CUDA 纹理对象的非归一化线性插值似乎返回了不正确的结果。插值似乎0.5比预期的要小。归一化线性插值似乎工作正常。

这段代码有问题吗?在进行非归一化纹理插值时,我们是否期望乘以 2?

编码:

结果:

有关上述代码、makefile 和规范化插值代码,请参阅此要点。

0 投票
2 回答
994 浏览

cuda - CUDA 纹理作为类成员?

尝试定义具有每个实例纹理的类。是的,该类的实例数量会很少。为了解决 CUDA 纹理必须是全局变量的限制,我尝试了以下方法:

  • 定义一个全局纹理表。
  • 将实例 ID 数据成员添加到类。
  • 让类方法使用其 ID 从表中选择纹理,并将其作为参数传递给 CUDA 内核。

不工作。纹理不能作为参数传递(也不能通过指针或引用传递),并且内核无法识别数组名称,除非通过索引传递。我可能可以使用 switch 语句来做到这一点,但这很难看。有什么建议么?

0 投票
2 回答
1871 浏览

opengl - CUDA 立方体贴图纹理

如何在 CUDA 中处理 OpenGL 立方体贴图纹理?

当想要在 CUDA 内核中使用 OpenGL 纹理时,要做的一件事是从注册的图像和映射资源中检索一个 CUDA 数组,在这种情况下是一个纹理。在驱动程序 API 中,它是通过cuGraphicsSubResourceGetMappedArray调用完成的,这在 2D 纹理的情况下不是问题。但是在谈到上述立方体贴图时,该函数的第三个参数需要一个面枚举(如CU_CUBEMAP_FACE_POSITIVE_X)。因此出现了一些问题——当一个人通过这样一个枚举时,返回的纹理数组将只包含那个特定人脸的数据,对吧?那么如何将立方体纹理作为一个整体来进行立方体映射,同样:

还是在 CUDA 内核中不可能这样做,并且需要在用户代码中使用具有适当计算和采样的 2D 纹理?