问题标签 [cudafy.net]

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 投票
0 回答
439 浏览

c# - CudafyModule km = CudafyTranslator.Cudafy(); 编译错误

我试图在我的算法上获得更好的性能,所以我为此尝试了 cudafy。已经做了很多教程,但它仍然错过了一些东西。

这里发生的错误:

编译错误:C:/Users/Nuno/Desktop/KuhnPokerFinal/KuhnPokerFinal/bin/Debug/CUDAFYSOURCETEMP.cu(10):错误:标识符“random”未定义

编译“C:/Users/Nuno/AppData/Local/Temp/tmpxft_00002724_00000000-8_CUDAFYSOURCETEMP.cpp1.ii”时检测到1个错误。在此处输入代码

0 投票
1 回答
1556 浏览

c# - CUDAfy.Net / OpenCL,包含字节数组的结构导致非 blittable 异常

好的,所以我使用的是 CUDAfy.Net,我有以下 3 个结构:

现在,只要我将一组 Collider 对象发送到 GPU,使用

我收到以下错误:

有没有人对 CUDAfy.Net 或 OpenCL 有任何经验(因为它基本上可以编译成 OpenCL ),知道我该如何做到这一点吗?整个问题在于 Texture 的字节数组,因为当我没有 Texture 结构时,一切都工作得很好,据我所知,该数组是不可 blittable 部分。我发现了几个关于同一问题的问题,他们使用固定大小的数组修复了它。但是,我无法做到这一点,因为这些是纹理,其大小可能有很大差异。

编辑:现在,我正在 CPU 上执行以下操作:

然后我将此纹理结构附加到碰撞器,并将它们发送到 GPU。这一切都没有任何错误。但是,一旦我尝试在 GPU 上使用纹理,就像这样:

我收到以下错误:

顺便说一下,Texture 结构看起来像这样:

我又完全不知所措了。。

0 投票
0 回答
461 浏览

c# - Cudafy.NET编译错误:两个不同地址空间的指针之间的非法隐式转换

我在编译下面的方法时遇到问题。如果选择 CUDA 作为目标,它编译得很好,但是如果选择 OpenCL,它会抛出错误。

错误:

错误:具有不同地址空间的两个指针之间的非法隐式转换

我没有足够的知识来纠正这个问题(我刚刚开始 GPGPU 编程)。

0 投票
3 回答
967 浏览

c# - 将非托管 System.IntPtr 字节向量复制到 2D 设备字节数组的 GPU 行

我正在使用 C# 和 CUDAfy.net(是的,这个问题在带有指针的直接 C 中更容易,但考虑到更大的系统,我有使用这种方法的原因)。

我有一个视频帧采集卡,它以 30 FPS 的速度收集字节 [1024 x 1024] 图像数据。每 33.3 毫秒,它填充一个循环缓冲区中的一个槽,并返回一个System.IntPtr指向 的非托管 1D 向量的*byte; 循环缓冲区有 15 个插槽。

在 GPU 设备 (Tesla K40) 上,我想要一个全局 2D 数组,该数组被组织为密集的 2D 数组。也就是说,我想要类似循环队列的东西,但在 GPU 上组织为密集的 2D 数组。

如何每 33 毫秒填写不同的行?我是否使用类似的东西:

在我的内核头文件中是:


我确实尝试过这些方面的东西。但是 CudaFy 中没有 API 模式用于:

所以我使用 gpu.Cast 函数将 2D 设备数组更改为 1D。

我尝试了下面的代码,但我得到了 CUDA.net 异常:ErrorLaunchFailed

仅供参考:当我尝试使用 CUDA 模拟器时,它在 CopyToDevice 上中止,声称Data 不是主机分配的

0 投票
0 回答
90 浏览

emgucv - CudaFy.net 和 OpenCV

我想在 CudaFy.net 项目中使用一些 OpenCV 例程(2D 卷积、区域标记和质心)。

  1. 这是一个愚蠢的想法吗?
  2. 从开源示例中用 C# 实现算法会更好吗?
  3. OpenCV 的一些输入已经在全局 GPU 内存中,您可以将指针传递给 OpenCV GPU 例程并说矩阵已经在 GPU 中吗?
  4. 有没有这样做的简单例子

我确实看到有人使用 EMGU 和 openCV,但确实遇到了一些问题。有没有人成功做到这一点的例子?[ https://cudafy.codeplex.com/discussions/356649 ]

0 投票
2 回答
739 浏览

cuda - 使用 CUDA 压缩“稀疏数据”(CCL:连接组件标签缩减)

我有一个 500 万个 32 位整数列表(实际上是 2048 x 2560 图像),其中 90% 是零。非零单元是完全不连续或以任何方式连续的标签(例如 2049、8195、1334300、34320923、4320932)(它是我们自定义连接组件标签 CCL 算法的输出)。我正在使用 NVIDA Tesla K40,所以如果它需要任何前缀扫描工作,我会喜欢它,它使用 SHUFFLE、BALLOT 或任何更高的 CC 功能。

我不需要一个完整的例子,只是一些建议。

为了说明这一点,这里有一篇由我们的 CCL 算法标记的博客。

标记的 Blob

其他 blob 将具有不同的唯一标签(例如 13282)。但是所有都将被零包围,并且是椭圆形的。(我们针对椭圆体优化了 CCL,这就是我们不使用这些库的原因)。但一个副作用是 blob 标签不是连续的数字。我们不关心它们的编号顺序,但我们想要一个标记为#1,另一个标记为#2,最后一个标记为#n,其中n 是图像中的斑点数。

我是什么意思标签#1?我的意思是所有 2242 个单元格都应该用 1 替换。所有 13282 个单元格都应该是 #2,等等。

我们 CCL 的最大 blob 数等于 2048x2560。所以我们知道数组的大小。

实际上,罗伯特·克罗维拉(Robert Crovella)在一天前已经对此给出了很好的答案。这并不准确,但我现在看到了如何应用答案。所以我不需要更多的帮助。但他在时间和精力上非常慷慨,并要求我用示例重新编写问题,所以我这样做了。

0 投票
3 回答
1679 浏览

c# - 从向量计算相交坐标

给定一个向量(或两个点),我如何获得该向量在某个给定区间内相交的离散坐标?

我正在使用它,给定射线(矢量),我可以计算图像中与该射线相交的像素,并将这些像素用作图像的索引。在 3D 的情况下,光线始终位于图像的平面内。

此外,矢量来自另一个坐标系,而不是用于图像索引的坐标系,但这只是坐标系之间的缩放。

我正在寻找 3D 的解决方案,但可以接受 2D。

编辑:间隔是二维空间,所以解决方案是这个二维间隔中的一组点。这将在带有 CUDAfy.NET 的 GPU 上运行

0 投票
1 回答
896 浏览

c# - Cudafy 内核无法编译

使用 Cudafy 迈出第一步并尝试编写一个函数,该函数将获取其线程的位置,并在此基础上将一些 int 值保存到数组元素中。我的代码:

所以我无法计算threadY这里。如果我在计算中使用多个变量,Cudafy 翻译类会引发错误(CudafyModule cm = CudafyTranslator.Cudafy();引发 Cudafy.CudafyLanguageException)。

我究竟做错了什么?

更新:这是在 GPU 上运行内核的代码:

0 投票
1 回答
746 浏览

cudafy.net - Creating register variable arrays with CudaFy

My CUDA kernel would run much faster if instead of a shared memory array (L1) I was able to use thread register memory.

I can do this in CUDA-C with the following declaration:

but in C# when I try:

I get a run-time error about not being able to create arrays in CudaFy. I don't want a global memory array, or a shared memory. (which are most of the discussion issues). I am running with SM35 architecture.

0 投票
1 回答
2807 浏览

cuda - “未找到 CUDA 目录”

我第一次尝试安装 CUDAfy.NET,但安装后我在 CUDAfy 查看器上单击“运行 CUDA 测试”时收到此错误。我环顾四周,但在这里只能找到这个问题的一个实例:https ://cudafy.codeplex.com/workitem/953 。

当我尝试执行该方法时,我也会遇到同样的错误CudafyTranslator.Cudafy()

这可能是什么原因造成的?我需要指向目录吗?