问题标签 [boost-compute]

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 投票
1 回答
10898 浏览

c++ - VexCL、Thrust 和 Boost.Compute 的区别

通过对这些库的粗略了解,它们看起来非常相似。我知道 VexCL 和 Boost.Compute 使用 OpenCl 作为后端(尽管 v1.0 版本的 VexCL 也支持 CUDA 作为后端),而 Thrust 使用 CUDA。除了不同的后端,它们之间有什么区别。

具体来说,他们解决了哪些问题空间以及我为什么要使用其中一个。

此外,在推力常见问题解答中指出

支持 OpenCL 的主要障碍是缺乏支持 C++ 模板的 OpenCL 编译器和运行时

如果是这样,VexCL 和 Boost.Compute 怎么可能存在。

0 投票
2 回答
4365 浏览

c++ - 性能:boost.compute vs opencl c++ wrapper

以下代码分别使用 boost.compute 和 opencl c++ 包装器添加两个向量。结果显示 boost.compute 几乎比 opencl c++ 包装器慢 20 倍。我想知道我是否错过了使用 boost.compute 或者它确实很慢。平台:win7、vs2013、boost 1.55、boost.compute 0.2、ATI Radeon HD 4600

代码使用 c++ 包装器:

代码使用 boost.compute:

0 投票
3 回答
1987 浏览

c++ - Boost.Compute 比普通 CPU 慢?

我刚开始玩 Boost.Compute,想看看它能给我们带来多大的速度,我写了一个简单的程序:

这是我机器上的示例输出(win7 64 位):

我的问题是:为什么普通(非opencl)版本更快?

0 投票
1 回答
346 浏览

boost - 在 Mac OS 上安装 Boost.Compute

我正在关注此链接并尝试在 Mac OS 上安装 Boost Compute。它说它可以安装,make install但我找不到 Makefile。

我将 boost-compute 文件夹的路径添加到 Xcode 项目中的标头搜索路径中。但是现在 boost-compute 依赖于我计算机中的 boost,并且无法链接到已经安装的 boost。

提前致谢。

0 投票
1 回答
250 浏览

opencl - 如何在 Boost::Compute 和自定义内核中使用共享虚拟内存?

我编写了一个简单的内核,它对树执行递归,例如:

所以我想将这些指向自己的树项数组传递给opencl内核,而SVM似乎是最好的方法(我对opencl 2.0没有问题)。

我的问题是如何使用 boost::compute 来做到这一点,以便内核将接收整数的三倍或类似的东西。

谢谢!

0 投票
1 回答
134 浏览

c++ - Thrust中是否有boost计算功能的类比?

我想知道是否有一个模拟来提升计算功能(http://www.boost.org/doc/libs/1_61_0/libs/compute/doc/html/boost_compute/advanced_topics.html#boost_compute.advanced_topics.custom_functions)到内核​​中并且可以创建为变成内核的嵌入式内联代码?

0 投票
1 回答
449 浏览

qt - 提升计算(opencl 包装器),初始设置问题(qt,g++)

一直在尝试编译此示例代码:https ://github.com/boostorg/compute/blob/master/README.md

我使用 mingw530 安装了 QT Creator 5.7

我使用编译了boost库

我安装了 AMD SDK 3.0、2.9.1 和 2.9

我什至下载了 opencl 1.1、1.2 和 2.1 cl.hpp 并尝试将其包含在内。

编译开始,但我得到了很多错误

C:\Dev\Boost\compute-master\include\boost\compute\device.hpp:80:错误:未定义对 `clRetainDevice@4' 的引用

C:\Users\User\Documents\Projects\build-console-test-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\main.o:-1:在函数“ZN5boost7compute6deviceaSERKS1_”中:

我尝试了一个简单的 qt 控制台应用程序,使用 boost compute 提供的代码

注意:这不是特定于 qt,我也尝试过使用

对 main.cpp 中的每个包含执行 -I(见下文)

理想情况下,我想知道如何编译他们页面上给出的示例,包括包含和所有(以及相关的 amd sdk 和/或 opencl 版本)以及必要的包含库。

我的qt项目文件库

我的 main.cpp

如果我取消注释包含 cl.hpp,我会走得更远

0 投票
1 回答
160 浏览

c++ - boost::compute 是否支持 const 修饰符?

是否可以设置哪些函数参数具有“全局”或“常量”修饰符?或者如何至少在每个函数的基础上检查生成函数的代码(手动插入)?

我看到的最接近的事情是BOOST_COMPUTE_STRINGIZE_SOURCE您手动编写所有内核代码,将其保存为字符串,手动编译,调用 using set_arg(argId, wrapedItems)queue.enqueue_nd_range_kernel这看起来比:

人们希望。

0 投票
1 回答
205 浏览

boost - boost::compute 流压缩

如何使用 boost::compute 进行流压缩?

例如,如果您只想对数组中的某些元素执行繁重的操作。首先,您生成掩码数组,其中包含与您要执行操作的元素相对应的掩码数组:

然后对掩码数组进行排他扫描(前缀和)得到:

然后压缩这个数组:

要获得压缩索引(inds)的最终数组:

最终数组的大小是scan.last() + mask.last()

0 投票
0 回答
410 浏览

opencl - 用于信号处理的 OpenCL

我正在寻找编写信号处理代码,该代码将需要通常的并行原语(例如scan(),、、reduce()和)以及用于 FFT 和密集向量/矩阵运算的有效例程,以支持诸如主成分分析之类的东西map()其中包括寻找特征向量和特征值。还有大量的矩阵求逆和乘法。主机代码将是 C++11。sort()

我想使用 OpenCL 来保持与平台无关,但是几天的实验并没有让我对工具的成熟度充满信心。在编程模型和原语方面我喜欢Boost.Compute,但我不确定像clMAGMA和 FFT 库FFTcl这样的 LAPACK 库在数据类型、共享上下文和异步操作方面是否能很好地使用它。我还看到 clMAGMA 的最后一次更新是在两年前。

ViennaCL涵盖了 FFT 和一些矩阵运算,但对 LAPACK 没有帮助。VEXcl仅适用于稀疏向量/矩阵。

对于 CUDA,这一切似乎都不是什么难事——安装 Nvidia 的开发工具就可以了。所有最新的库都在那里,还有像NPP这样的东西来涵盖我可能需要的其他东西。我没有看到库之间不兼容的风险。

我很好奇是否有其他人使用 OpenCL 走这条路。我想这样做,但我觉得它比使用 CUDA 的风险更高,CUDA 似乎提供了更少的机会遇到不可预见的障碍。