问题标签 [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.
c# - Cudafy 图像处理感兴趣区域
我正在浏览一些示例,以使自己更熟悉 .net 的 cudafy。这是我能够成功工作的代码。
我想要完成的是添加一个感兴趣区域。基本上,如果像素不在该区域内,只需复制不要检查匹配。出于某种原因,我很难思考如何实现这一点,因为我仍然想复制所有像素,以便将图像恢复。我在想这样的事情。
我不确定如何将它应用到我的日常生活中。有人对有效的方法有一些想法吗?
c# - 在 C# 中的结构内编组嵌入结构的数组
我正在使用 CUDAfy .NET 并希望将结构中的结构数组传递给设备。
我已经在 c# 中声明了它们,如下所示:
这会产生以下 GPU 源代码:
我尝试将其转换为 OpenCL 代码时出现此编译错误:
我意识到这可能是编组和 CUDAfy .NET 如何处理结构之间的问题,但有什么办法可以解决这个问题吗?
提前致谢
c# - 为什么 CUDA 内核中的 z 总是为零
我正在使用 Cudafy 在 NVIDIA GPU 上进行一些计算。(Quadro K1100M 功能 3.0,如果重要的话)
我的问题是,当我使用以下
当我在内核中使用它时,为什么 GThread 实例中的 z 索引总是为零?
此外,如果我必须做类似的事情
z 确实给出了不同的索引,但是由于每个块的线程数的限制, num 不能很大。关于如何解决这个问题的任何建议?
编辑
另一种表达方式。当块大小仅为 2D 时,我可以在内核中使用 thread.z(用于任何有用的东西)吗?
c# - Cudafy Win32Exception 未处理:系统找不到指定的文件
我一直试图让 cudafy 1.29 工作。它支持 Cuda 工具包 7.0。我不小心先安装了7.5,卸载它并安装了7.0。
当我运行以下行时:
km = CudafyTranslator.Cudafy();
我收到上面提到的错误,并在图片中显示如下。我尝试将以下路径添加到系统环境变量中:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64
C:\Program 文件 (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64
但可悲的是,这也不起作用。
c# - 当 BlockSize 7 和 BlockSize 8 时,Cudafy 代码结果不同
我正在使用 Cudafy.NET,我对 BlockSize 有一些困难。在某些情况下,它会产生不同的结果。很快,区别就在这里:
关于问题的详细解释:
我有 10 个项目要循环。网格大小为 1。
案例 1:当 CudafyModes.Target = eGPUType。OpenCL和 BlockSize 是1,2,3,4,5,6 和 7。结果是正确的。
案例 2:CudafyModes.Target = eGPUType。OpenCL和 BlockSize 是8,9,10,11,....等等。结果不正确。
案例 3:CudafyModes.Target = eGPUType。模拟器和 BlockSize 是1,2,3,4,5,6,7,8,9,10,11,....等等。结果是 正确的。
示例代码如下所示。初始化变量:
gpu 启动代码:
Cudafy 内核
正确的(案例 1 和案例 3)结果是:
不正确(CASE 2)的结果是:
当 BlockSize 小于 8 时,结果是正确的。但是当 BlockSize 大于 8 时,结果是不正确的。为了有效地使用 GPU,blockSize 必须大于 8。
这段代码有什么问题?
此致...
c# - Cudafy 线程已退出,代码为 259
我已经用 cudafy 测试了一些 GPU 计算样本
我有计算/创建数据的代码,并且我想对集合中的每个对象执行每个循环一些 GPU 操作代码:
此代码适用于第一次调用 CountData,但在 Count 数据循环结束程序将卡住并且控制台输出后显示
线程 0xf50 已退出,代码为 259 (0x103)。线程 0x10c 已退出,代码为 259 (0x103)。线程 0xc30 已退出,代码为 259 (0x103)。线程 0xcc0 以代码 0 (0x0) 退出。线程 0x548 以代码 0 (0x0) 退出。
有人知道哪里有问题吗?我尝试 gpu.Synchronize, CudafyHost.ClearDevices() ,但它总是以这个错误结束 谢谢你的帮助
编辑:经过一些测试,我发现
有效,但:
不是
debugging - 带有 NSight 的 Cudafy.net,调试启动后出现“错误反编译内核”
我正在使用 Cudafy.net 进行 GPU 计算。除非我尝试使用 NSight 调试内核,否则一切正常。NSight->“启动CUDA调试”后出现这个错误:
“错误反编译 System.Void Network.ActivationFunction(Cudafy.GThread, System.Single[])”
错误后应用程序崩溃。我什至尝试了我能想到的最简单的内核(与错误匹配):
我已经搜索了解决方案并发现了这个: cudafy.net with NSight, debugger not working 但是,即使在对所有步骤进行多次检查后,我仍然无法使调试器运行。我什至无法在应用程序崩溃之前设置断点。也许 nvcc 或 cl 有问题?我错过了什么吗?
谢谢。
cudafy.net - 是否可以在 Cudafy.NET 中使用 volatile 关键字?
我需要将传递给函数的数组声明为 volatile,Cudafy.NET 支持吗?
例如(在 C# 中):
c# - Return an unknown sized array in Cudafy
I have a large number of operations X to perform on a large amount of items Y. Each operation X is fairly trivial and is essentially just evaluating a bunch of AND and OR logic.
Each Func(X, Y) is naturally very quick however the sheer combination of X and Y makes the entire operation take a long time.
PLinq makes it much faster however that is still relatively slow.
I have spent several days researching various frameworks (Alea, Cudafy, GPULinq) to get this working on the GPU however I am finding that the GPU is not good for all operations.
The main problem is that in the GPU Kernel at some points is performing the intersection or the union of an integer array. This results in an unknown amount of values. Possibly 2*Length in union or 0 in intersection.
I could get around this by always using 2*Length however Length itself is not a constant either.
How can I return a variable sized int array in any GPU framework?