问题标签 [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 回答
789 浏览

cuda - 如何在 CUDA 中创建和使用一维分层纹理

我是 CUDA 的新手。我已经弄清楚如何在 CUDA 中制作 1D 和 2D 纹理。但是,我正在为如何使用 1D 分层纹理而苦苦挣扎。使用纹理的内核的输出全为零,这绝对是不正确的。但是,我不确定我做错了什么。我严重怀疑我是否正确设置了这个纹理,但我到处检查 cuda 错误,找不到任何问题。有人可以告诉我如何正确设置一维分层纹理并使用它。这是我的代码。提前致谢:

0 投票
1 回答
1406 浏览

cuda - 如何在 CUDA 中为一维数组使用纹理内存

我编写了以下代码来查看如何将纹理内存用于 1D 数组。但是 tex1D 函数没有从数组中获取相应线程 id 的值。请更正此代码并告诉我如何有效地为 1D 数组使用纹理内存。

0 投票
1 回答
578 浏览

memory - 将 cuda 纹理变量作为参数传递

我已经设置了cudaArray, 并将其绑定到纹理:

现在我想知道,如果 and 中的内容在cuArray计算tex过程中一直保持不变,我可以传递tex和/或传递cuArray给另一个函数,这样我就不必每次都进行绑定了吗?

像这样的东西:

0 投票
1 回答
149 浏览

c++ - cuda和opencv:我只想要原图一样

我只是想把test.jpg放到纹理内存中,然后通过text2D()来显示图片,结果却很奇怪。“result”应该和“gray”一样。点击获取图片:window:graywindow:result。“gray”被缩小到原来的四分之一,并排成一排。

这是我正在使用的代码

谁能告诉我为什么?

0 投票
0 回答
168 浏览

cuda - CUDA表面内存解绑

在 CUDA 中使用纹理内存时,我们调用cudaBindTextureToArray(texRef, cuArray, channelDesc),使用纹理,然后解除绑定:

对于表面记忆,有一个类似的cudaBindSurfaceToArray(surfRef, cuArray);

但是在文档中我没有发现任何关于解除绑定表面的内容,我的猜测cudaUnbindSurface(surfRef);是抛出一个错误。表面参考解除绑定是否不必要/不可能,为什么这与纹理参考不同?

0 投票
1 回答
50 浏览

cuda - 使用驱动程序 API 创建纹理对象时 JCuda 访问冲突

我有一个 JCuda 项目,它在尝试使用驱动程序 API 创建纹理对象时遇到访问冲突。Java HotSpot 声称该错误来自 nvcuda.dll。

从中创建纹理的底层 CUarray 似乎已正确填充;将其内容复制回主机端浮点数组会生成一个与初始主机端数据相同的数组。这意味着错误本身必须是纹理声明中的某些内容,对吗?

使用 cuda-memcheck 运行代码不会显示任何错误。

这是遇到错误的代码:

我在这里做错了什么?

0 投票
1 回答
229 浏览

c++ - Cuda 从黑白图像创建纹理对象

我正在尝试逐帧处理视频。为此,我想创建一个包含当前帧的纹理并将其传递给内核。这些帧是 1440*1080 像素,每个像素由一个无符号字符表示,例如 8 位。

我按照说明进行操作,但是我的程序总是在创建纹理时失败。错误代码 0x11:“无效参数”。

这是我的代码:

0 投票
1 回答
1717 浏览

cuda - 使用 Vulkan VkImage 作为 CUDA cuArray

使用 Vulkan VkImage 作为 CUDA cuArray 的正确方法是什么?

我一直在尝试遵循一些示例,但是我在调​​用 CUDA_ERROR_INVALID_VALUEcuExternalMemoryGetMappedMipmappedArray()

以有序的方式提供信息。

我正在使用 CUDA 10.1

基本代码来自https://github.com/SaschaWillems/Vulkan,特别是我使用的是01 - Vulkan Gears演示,丰富了 saveScreenshot 方法09 - 捕获屏幕截图

我不会将快照图像保存到文件中,而是将快照图像作为 CUarray 发送到 CUDA。

我启用了以下实例和设备扩展:

我有一个 VkImage,创建如下:

从那里我会:

获取 Vulkan 内存处理程序:

导入内存:

并映射内存:这是它失败的步骤。

我一直在尝试参数的多种组合,但到目前为止都失败了。错误指向一个无效的参数,但我不确定如何找出问题所在。

唯一可行的方法是将 Vulkan 映像内存映射到主机缓冲区,然后将其复制到 CUDA 数组中……但我想这很昂贵,如果可能的话我想避免它。

0 投票
1 回答
329 浏览

julia - 使用 CuArrays 限制 Julia 中的 GPU 内存

我对 julia 还很陌生,我目前正在尝试一些具有循环结构的深度卷积网络。我正在使用 CuArrays(CUDA 9.0 版)在 GPU 上训练网络。

拥有两个独立的 GPU,我启动了两个具有不同数据集的实例。经过一些训练后不久,两个 julia 实例都分配了所有可用内存(2 x 11GB),我什至无法使用 CuArrays 自己启动另一个实例(内存分配错误)。这成了一个相当大的问题,因为它运行在许多人共享的服务器上。

我假设这是使用所有可用内存尽可能快地训练的正常行为。但是,在这种情况下,我想限制可以分配给同时运行两个实例的内存,并且不要阻止我或其他人使用 GPU。令我惊讶的是,我只发现了非常非常少的信息。

我知道 CUDA_VISIBLE_DEVICES 选项,但这无济于事,因为我想在两个设备上同时训练。另一个建议调用 GC.gc() 和 CuArrays.clearpool() 第二个调用会引发未知函数错误,并且似乎不再包含在 CuArray 包中。我目前正在测试的第一个,但不完全是我需要的。是否有可能使用 CuArrays 和 Julia 限制 GPU 上的 RAM 分配?在此先感谢我的 Batchsize 是 100,一批应该少于 1MB...

0 投票
1 回答
201 浏览

cuda - 用于表面内存的 memset cuArray

假设您有一个cuArray用于绑定表面对象的方法。

某种形式的东西:

现在,我想将其初始化cuArray为零。显然没有memset对象cuArray类型。最好的方法是什么?也许有多种选择,有些可能有更好或更差的功能。这些选项是什么?

我能想到

  1. 分配和归零主机内存并使用cudaMemcpy3D().

  2. 创建一个初始化内核并用surf3Dwrite()