问题标签 [opencl-c]
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 - OpenCl 中的吞吐量计算
我正在尝试计算用我的 openCL 编写的内核的吞吐量。但我不知道该怎么做,我试图找到一些编译后生成的文件,显示吞吐量为 0.435(“在 .attrb 文件中找到”),但不确定这是什么意思。有没有其他方法可以找到吞吐量?
opencl - 如何在主机程序循环中使用 opencl?
我想将输入图像写入缓冲区并在主机程序的while循环中执行内核文件(而不是在内核文件中)。我确实在 while 循环之外设置了 OpenCL 的东西(上下文、设备、缓冲区、命令队列等),将图像写入我在循环中创建的缓冲区,然后运行内核。它可以在我的桌面上运行,但是当我在 i.mx6 板上执行它时,它会在第二个 while 循环中返回分段错误错误。代码如下。
我找不到我做错的地方,因为它在我的电脑上正常工作。我应该如何解决这个问题?
opencl - 并行opencl内核执行
我正在尝试并行执行多个内核。每个内核彼此独立。我正在尝试在 GPU 上执行内核。我认为是乱序执行并将每个内核分别排入队列。这是解决这个问题的方法还是有其他方法可以解决?
c - 将 C 结构传递给 OpenCL 内核
我的主机程序中有下一个结构:
我的内核中有下一个结构:
您还可以看到这两个的枚举:
以这种方式将数据传递给 OpenCL 内核时(其中图形是正确解析的结构数组):
我有数据失真的问题,例如将数据传输到 OpenCL 内核后的颜色可以更改为非常不同的 (0xFFFFFF->0x007FC2)。光线追踪算法在每个程序执行时都以另一种方式工作。我该如何解决?我认为 gcc 编译器制作结构的方式与 openclc 不同,但如何同步呢?
opencl - OpenCL 中的二进制编译
按照这个 github 示例。我在尝试使用预构建的二进制文件时遇到了问题。
收到消息后,我成功创建了二进制文件PLATFORM [Apple] --> SUCCESS (1)
。
但是,当尝试使用二进制文件时,该函数clBuildProgram
会给出错误代码CL_BUILD_PROGRAM_FAILURE
。¿ 有什么建议吗?
我正在使用这段代码:
此外,值得注意的是,这段代码在 Sierra OS 中运行良好,但在我更新到 Mojave 后,它就不行了。
gpu - 关于 OpenCL 控制流,其中 if(false) 被读取而不是被跳过,以及一般调试 OpenCL
首先,这是我第一次真正感到有必要在 StackOverflow 上提出问题,但我解决了我的问题,同时对自己的 OpenCL 代码进行了修改和破解。然而,考虑到我在学习 OpenCL 的几个月中发现的有用且易于理解的调试信息很少,我认为写下来的努力可能会帮助我所在位置的其他人,因为我的问题的解决方案对于初学者来说并不明显。
上下文:我正在编写一个光线跟踪器,在我的 C 上具有约束,但允许在学校使用 OpenCL。我已经构建并调试了一个可以从简单内核调用的 OpenCL RNG 库,已经将一些算法移植到子函数中,但我仍在学习内存管理和将大型算法分解为有组织的内核序列以进行排队。
操作系统:Xubuntu 18.04 平台:NVIDIA CUDA | 设备:GeForce GTX 950M | 版本:OpenCL 1.2 CUDA
我的数据不连贯:printf() 告诉我,我的数据在我的第二个内核(发生问题的那个内核)中存在并且是连贯的;但它从未遇到过相应的“if”语句中的检查。更糟糕的是,它似乎清楚地读取了“错误”的 if 语句,并且考虑到 GPU 控制流的怪异,我不知所措。
互联网上的两个页面讨论的主题与我得到的最相似,但都不是我的问题(这可能是你的问题,这就是我添加它们的原因):
https://community.amd.com/thread/225707
https://computergraphics.stackexchange.com/questions/4115/gpu-branching-if-without-else
为了调试,我在子函数中使用了以下代码片段,它将像素的颜色返回给主内核(调用它)。
没有此代码段的函数返回黑屏。否则,根据以下行为,它返回一个 if 语句颜色的屏幕。分别注释掉“else”语句并一起使用这些值,我发现:只要这个片段存在,就必然会读取其中一个“return (R,G,B)”;如果其中至少一个为真,则将被读取,否则行为始终是此可变长度 if-else 序列的第一个条件。
c++ - openCL hello World 显示垃圾输出
我正在尝试一个简单的helloWorld openCL代码,它编译没有错误但显示垃圾:╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠ ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
错误函数在构建时检测到错误,因此删除了“-cl-std=CL2.1”program.build("-cl-std=CL2.1");
这是主文件:
和 hello_world.cl
你能帮我找到问题吗?
opencl - 如何在 OpenCL 中分配本地工作项大小
我在 OpenCL 中设置了一个卷积核,将 228x228x3 图像与 11x11x3x96 权重进行卷积以生成 55x55x96 过滤器。
我的代码没有分配 localWorkSize 可以完美运行,但是当我分配它时,我开始收到错误
因此,我的问题是,
1) 当我将 localWorkSize 设置为 NULL 时,启动了多少线程?我猜这是隐含的,但有没有办法得到这些数字?
2)我应该如何分配 localWorkSize 以避免错误?
我只是想了解当 localWorkSize 为 Null 并且描述 GlobalWorkSize 时创建了多少线程
c++11 - OpenCL2.0 运行时编译器不支持 c++11
我正在尝试使用 OpenCL2.0 构建 OpenCL 内核。我正在调用 cl::Program 构建函数并传递标志 -cl-std=CL2.0。g++ 编译器完成并链接没有错误。但是,当我运行程序时,构建函数会引发异常(见下文)。想看看是否有人以前见过这个并有解决方案。谢谢你。
我尝试了其他标志,例如 -cl-std=c++11、-cl-std=CL2.2,但这些都不起作用。
gpu - QueryperformanceFrequency 和 QueryperformanceCounter 快速排序 GPU 编程 OpenCL
我正在尝试使用 OpenCL 在 GPU 上执行快速排序算法。我发现了一个由 Intel 开发的包,名为“ OpenCL 2.0 中的 GPU-Quicksort:嵌套并行和工作组扫描功能”。
但是,此代码是为在 Windows 机器上而不是在 ubuntu 上运行而开发的。
在 Ubuntu 上执行后,我发现代码中使用了特定的头文件,它们只支持 windows 而不是 Ubuntu。
我尝试了互联网和 stackoverflow 上可用的一些修复程序,但只能解决一些问题。
很少有其他仍未解决的关键字是“QueryperformanceFrequency”和“QueryperformanceCounter”。
我提到了记录时间和频率的 linux 替代方案,不幸的是这些也没有工作。
到工作存储库的链接包含在上面的标题中,带有超链接。
我在 NVIDIA Gpu 上运行 1.2 版的代码。
我在执行后得到的错误如下:
‘QueryPerformanceFrequency’ was not declared in this scope
‘QueryPerformanceCounter’ was not declared in this scope
我期待您协助解决这个问题。
谢谢你。