问题标签 [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.
c++ - VexCL、Thrust 和 Boost.Compute 的区别
通过对这些库的粗略了解,它们看起来非常相似。我知道 VexCL 和 Boost.Compute 使用 OpenCl 作为后端(尽管 v1.0 版本的 VexCL 也支持 CUDA 作为后端),而 Thrust 使用 CUDA。除了不同的后端,它们之间有什么区别。
具体来说,他们解决了哪些问题空间以及我为什么要使用其中一个。
此外,在推力常见问题解答中指出
支持 OpenCL 的主要障碍是缺乏支持 C++ 模板的 OpenCL 编译器和运行时
如果是这样,VexCL 和 Boost.Compute 怎么可能存在。
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:
c++ - Boost.Compute 比普通 CPU 慢?
我刚开始玩 Boost.Compute,想看看它能给我们带来多大的速度,我写了一个简单的程序:
这是我机器上的示例输出(win7 64 位):
我的问题是:为什么普通(非opencl)版本更快?
boost - 在 Mac OS 上安装 Boost.Compute
我正在关注此链接并尝试在 Mac OS 上安装 Boost Compute。它说它可以安装,make install
但我找不到 Makefile。
我将 boost-compute 文件夹的路径添加到 Xcode 项目中的标头搜索路径中。但是现在 boost-compute 依赖于我计算机中的 boost,并且无法链接到已经安装的 boost。
提前致谢。
opencl - 如何在 Boost::Compute 和自定义内核中使用共享虚拟内存?
我编写了一个简单的内核,它对树执行递归,例如:
所以我想将这些指向自己的树项数组传递给opencl内核,而SVM似乎是最好的方法(我对opencl 2.0没有问题)。
我的问题是如何使用 boost::compute 来做到这一点,以便内核将接收整数的三倍或类似的东西。
谢谢!
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)到内核中并且可以创建为变成内核的嵌入式内联代码?
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,我会走得更远
c++ - boost::compute 是否支持 const 修饰符?
是否可以设置哪些函数参数具有“全局”或“常量”修饰符?或者如何至少在每个函数的基础上检查生成函数的代码(手动插入)?
我看到的最接近的事情是BOOST_COMPUTE_STRINGIZE_SOURCE
您手动编写所有内核代码,将其保存为字符串,手动编译,调用 using set_arg(argId, wrapedItems)
,queue.enqueue_nd_range_kernel
这看起来比:
人们希望。
boost - boost::compute 流压缩
如何使用 boost::compute 进行流压缩?
例如,如果您只想对数组中的某些元素执行繁重的操作。首先,您生成掩码数组,其中包含与您要执行操作的元素相对应的掩码数组:
然后对掩码数组进行排他扫描(前缀和)得到:
然后压缩这个数组:
要获得压缩索引(inds)的最终数组:
最终数组的大小是scan.last() + mask.last()
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 似乎提供了更少的机会遇到不可预见的障碍。