问题标签 [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 c# GPU 计算中返回一个值?
我的问题
嘿,所以我正在做这个简单的计算来找到 0 到 100 度之间的罪的总和(因为我用它作为我的系统的基准),计算不是问题我的问题是我是 Cudafy 的新手而且我不确定如何正确传递和返回值以便可以打印出来这是我的代码:
代码
我试图从 CUDAfy 部分提取的值是总数,然后将其打印出来以及打印基准测试的时间。如果有人可以发布建议,将不胜感激(任何关于摆脱任何无用线条或低效部分的建议也很好)。
c# - CUDAfy 实例化类
所以我试图在 CUDAfy 中进行复杂的计算,以便它可以减少 CPU 占用的当前时间例如,类似于 .NET Math.Sin(x) 或 Math.Cos(x) 函数的想法。我正在尝试使它工作,但是它只是从 CUDAfy 翻译器中吐出错误,那么我正在尝试做的事情是否可能/在 CUDAfy 的力量范围内,还是我走错了路来完成这项工作?
例子:
在 MathHelper.cs 文件中,它具有进行此计算的方法 DegreesToRadians:
当我这样做时,它会在 CUDAfy 翻译器上吐出错误。
c# - GPU 中的 C# 位图 GetPixel()、SetPixel()
我正在使用 Cudafy 作为 c# 包装器,我需要获取位图的颜色信息InputBitmap0.GetPixel(x, y)
并为输出制作一个新的位图。
我需要在 GPU 中完成以下工作。
中央处理器
简而言之:
如何GetPixel() 为输入Bitmap 的每个像素点,SetPixel() 为GPU 中的outputbitmap Bitmap 的每个像素点。
c# - 在类中制作静态方法和字段
我正在用 Cudafy将算法重写为 GPU。我需要从静态方法调用Execute() 。 需要在 GPU 上计算。我怎么能这样做?我应该将哪些字段或任何内容复制到静态中?
类的对象是从非静态方法调用的,并且无法更改。它创建一个对象,执行(理想情况下),并获得三角形作为结果。
类代码是:
添加:Execute 应该是静态方法,但它只能从静态调用。在其他情况下,该行:
不起作用,因为非静态调用Execute不支持它。
换句话说,我应该创建哪些字段或其他任何内容并填写新的静态方法以拥有一个独立的静态实体来调用执行?
c# - 传递给 gpu 内存的结构未定义。如何将结构传递给Cudafy?
我有一个结构和一个带有 Execute() 方法的类,一个 cudafying 方法使用该结构。
问题:Cuda 说:“.../CUDAFYSOURCETEMP.cu(3):错误:标识符“PointGPU”未定义”
CudafySourceTemp.cu 中的这一行是
asp.net - asp.net核心应用中的CUDA/OpenCL加速
我开发了一个 asp.net core 1.1 应用程序,它可以进行一些非常密集的数据处理。我想:
- GPU 加速数据处理(最好是 opencl 而不是 cuda,因为我的开发笔记本电脑没有 nvidia gpu,但这不是一个显示停止器)
- 将数据处理卸载到另一台服务器,这样 Web 服务器就不会陷入处理数据的困境。
- 坚持使用 C# 语言并尽可能避免使用 C++/C。
- 在 linux 机器/虚拟机上运行一切
执行分析所需的所有数据都存储在 PostgreSQL 数据库中(我使用 npgsql 访问它),但计算结果保存在内存中。应用程序输出动态创建的切片,这些切片被添加为 Bing 地图图层,因此如果我执行 #2(卸载数据处理),它还需要处理切片的 Web 请求,因为我希望该部分也能够进行 GPU 加速。
有没有推荐的方向来完成这个?我查看了 Cudafy.Net,但它与 .Net Core 1.1(或者我所知道的 1.0)不兼容。所以我认为在 Linux 上使用 Mono 的 asp.net 可能是最好的做法?我真的不知道..我只是一个程序员的黑客。
更新:
第 1 项和第 3 项是可能的。创建一个面向 .NET Framework 的 ASP.NET Core Web 应用程序,并通过 NuGet 添加 Cudafy.NET。安装您选择的 CUDA/OpenCL 驱动程序。
4 的前半部分是可能的,因为我使用 AMD APP SDK 3.0 在 Ubuntu VM 上成功运行了 OpenCL 测试。但是,后半部分是有问题的,因为从 VM 访问 GPU 似乎非常困难(需要 PCI-Passthrough)。当没有可用的 GPU 时,AMD 驱动程序使用 CPU,所以至少我有 CPU 加速。我想当我弄清楚如何做第 2 项时,我最好不要尝试虚拟化 GPU 加速的应用程序。
c# - Cuda/cudafy 3d 索引
试图了解 cuda,在没有掌握类似的 stackoverflow 问题后,我决定测试一个示例(我使用 cudafy.net 进行 c#,但底层 cuda 应该是可解析的)
我想做以下事情。发送一个 4x4x4 的矩阵到内核,按照这个逻辑得到一个 4x4x4 的输出:
我研究了以下 cudafy 示例。
核心:
然后尝试将其转移到3d。我无法正确建立索引。说我有以下。(这里的三个数组只是为了测试索引)
和内核:
我天真地期待以下内容:
但我得到:
这对我来说毫无意义,显然我错过了一些东西。
问题:
我开始了多少线程?
您如何在 3 维中“索引”我的示例问题(启动 4x4x4 线程并获取 flat3DArray[x * sizeY * sizeZ + y * sizeZ + z] 的变量)?
您如何在二维中“索引”我的示例问题?(启动 4x4 线程,然后让每个线程处理长度为 4 的深度列)
我发现这可能是相关的为什么 CUDA 内核中的 z 总是为零,如果这让我很困惑,我仍然很感激纯 cuda 的答案来整理我的大脑
cuda - 如何将带有嵌套 for 循环的函数转换为 Cudafy.Net
在完成所有研究和阅读之后,我不敢相信我仍然不是 100% 清楚如何做到这一点,所以我必须问.. 我试图让类似下面的东西在 gpu 卡上运行并且我正在使用 Cudafy.Net 生成 Cuda C 等效项。我想让它尽可能快地运行。
如果我有一个功能(简化),例如:
我使用 Launch() 函数调用它,如下所示:
我熟悉作为第一个参数传递的 GThread、blocksize.x、blockdim.x 和 threadize.x,以及块的 y 和 z。我很难理解 for 语句是否消失,我用类似的测试替换它们
但是不知道如何“将每次迭代与递增的 lgDY 和 lgDX 联系起来。
如果这是明显的事情,或者我没有准确地描述我正在尝试做的事情,我深表歉意。只是对如何使嵌套循环正确感到困惑。我感谢任何帮助我朝着正确的方向前进。
c# - 如何从不同的类访问 cudafied 方法?
所以我有 2 个类,两个类都调用 CudafyTranslator.Cudafy 和 cudafy 相应的方法。然后将生成的模块添加到 GPU。为什么当我从一个类中调用一个 cudafied 方法时,cudafy 总是给我一个编译异常,从另一个类的 cudafied 方法中。我知道我可以从同一个类中的其他 cudafied 方法调用 cudafied 方法,那么为什么这不起作用?
c# - 如何修复“Cudafy 在 CUDA 上出现错误 719”
我在 github 上使用 Konrad-Ziarko 的代码。但是当我把
在代码中并运行。Cuda 显示错误 719。
但如果我dev_levMatrix_1
像下面这样,它的工作原理:
我可以dev_levMatrix_1
输入一个函数吗?