问题标签 [cloo]
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.
opencl - openTK 和 cloo 的区别?
使用 openTk 和 cloo 开发 openCL 应用程序有什么区别?
c# - Cloo OpenCL c# 问题
我正在尝试运行一个简单的 Cloo 程序,但它不起作用,谁能告诉我为什么?
这是程序给我的错误
Cloo.dll 中出现“Cloo.InvalidBinaryComputeException”类型的未处理异常
附加信息:检测到 OpenCL 错误代码:InvalidBinary。
opencl - Cloo 中的 OpenCL 扩展
我尝试在我的 OpenCL 内核中使用双精度扩展,但它不会构建。(Cloo.BuildProgramFailureComputeException)
这是我的代码:
我检查了我的硬件是否支持双精度,它确实支持。但是,使用 cl_amd_printf 扩展是可行的。有任何想法吗?
opencl - 是否可以让 AMD APP Profiler 与 C#/Cloo 一起使用?
有谁知道如何/是否可以让 AMD APP Profiler 使用 Cloo opencl 库处理 C# 项目?我可以sprofile
在我的 .NET 应用程序上运行,但即使它运行正确,也不会输出任何结果。
编辑:嘿,它确实有效我只是有一些狡猾的 OpenCL 代码导致显示驱动程序崩溃。只需sprofile
像帮助文件中描述的那样从命令行运行,然后使用 VS2010 中的面板打开它。
opencl - clBuildProgram 产生访问冲突(使用 Cloo)
OpenCL 1.1,使用 Cloo 0.9.1.0。
对于某个 CL 模块,我在以下行出现崩溃:
Visual Studio 2010 告诉我:
Cloo.dll 中出现“System.AccessViolationException”类型的未处理异常
附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。
我已将错误追溯到某行代码。
我正在使用上面的技巧来避免分支。除了上述在编译时产生访问冲突的一种情况外,它在所有情况下都可以正常工作。如果我删除条件乘法,它会起作用。例如
我在这里面临编译器错误吗?如何解决此错误?
关于我的显卡/驱动程序的一些详细信息:
驱动封装版本:8.85.7.2-110901a1-125827C-富士通科技
解决方案提供商:ATI Technologies Inc. 2D 驱动程序版本:8.01.01.1152
c# - OpenCL 主机同步要求
我的 OpenCL 内核遇到了奇怪的错误。基本上它是双音排序升级到 N != pow of 2。我所做的是我检查主机是否正确排序了序列,而将我带到这里的是答案不是。
现在这个错误很难追踪,因为它是随机发生的。我对许多不同的序列进行排序,每次生成的序列都以相同的方式排序,只是发生一个序列未排序,然后是另一个序列。但是,高百分比的输出是正确的,而且我在 for 循环中的主机实现对相同的输入进行了正确的排序。最有趣的是,当我保持输入并再次在设备上运行它时,它突然被正确排序。
我想到这可能是竞争条件,因为它的行为就是这样。但是我在设备代码中没有这样的地方,所以唯一的可能是主机。我有有序队列,并且我的读写被阻塞,所以应该没有问题,但是在执行内核后我没有同步点。
需要这样的同步吗?OpenCL 对有序队列有什么保证?我是否可能在内核完成对同一内存块的所有操作之前阅读?
这种随机事件的唯一其他想法是设备中的内存错误,但这是我接受的最后一个选项,所以我也欢迎一些其他想法,即何时使用 OpenCL 获得随机结果/错误。
c# - 带有 Cloo 的 OpenCL:分析器不工作
我想分析我用 C# 编写的应用程序,使用 Cloo 作为 OpenCL 的包装器。我已经尝试了一些东西...... gDEBugger、AMD APP SDK、CodeXL、KernelAnalyzer......
将我的内核代码原样复制粘贴到 KernelAnalyzer 将表明瓶颈是 ALU 操作。但是,由于它只是一个内核分析器,我并不完全信任生成的信息。
为了正确分析我的应用程序,我尝试了其他工具。我尝试使用 sprofile.exe 通过控制台使用 APP SDK 进行分析,但我总是得到“无法启动应用程序:0:进程已成功终止”。我真的无法猜测问题可能是什么。
使用独立工具 CodeXL 和 gDEBugger 时,我可以在运行 .exe 时看到已调试的进程事件(线程启动、消息),仅此而已。没有函数调用、内存信息、统计信息等……就像我没有运行应用程序一样,都是空的!所以对我来说基本没用。
我真的不知道问题可能是什么。会不会是因为使用 Cloo 作为包装器会使所有执行的操作对分析器不可见?
我会很感激任何提示!提前致谢!
opengl-es - 我可以将 OpenCL 与 Monogame 一起使用吗?
我正在寻找用于开发的 Monogame。该网站提到它“在引擎盖下”有 OpenTK。这是否意味着我可以使用 Monogame 可靠地访问 OpenCL,或者 OpenCL 已被拆分为 Cloo?我的主要目标是跨平台、高性能的 OpenGL ES 和 OpenCL。
c# - Pointers and bit operators in GPU kernels
I want to perform a double threshold on a volume, using a GPU kernel. I send my volume, per slice, as read_only image2d_t. My output volume is a binary volume, where each bit specifies if its related voxel is enabled or disabled. My kernel checks if the current pixel value is within the lower/upper threshold range, and enables its corresponding bit in the binary volume.
For debugging purposes, I left the actual check commented for now. I simply use the passed slice nr to determine if the binary volume bit should be on or off. The first 14 slices are set to "on", the rest to "off". I have also verified this code on the CPU side, the code I pasted at the bottom of this post. The code shows both paths, the CPU being commented now.
The CPU code works as intended, the following image is returned after rendering the volume with the binary mask applied:
Running the exact same logic using my GPU kernel returns incorrect results (1st 3D, 2nd slice view):
What goes wrong here? I read that OpenCL does not support bit fields, but it does support bitwise operators as far as I could understand from the OpenCL specs. My bit logic, which selects the right bit from the 32 bit word and flips it, is supported right? Or is my simple flag considered a bit field. What it does is select the voxel%32 bit from the left (not the right, hence the subtract).
Another thing could be that the uint pointer passed to my kernel is different from what I expect. I assumed this would be valid use of pointers and passing data to my kernel. The logic applied to the "uint* word" part in the kernel is due to padding words per row, and paddings rows per slice. The CPU variant confirmed that the pointer calculation logic is valid though.
Below; the code
And my kernel code: