问题标签 [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 投票
0 回答
48 浏览

c++ - Boost Compute 缓冲区解构器在不同操作系统上的行为不同

我在两台机器上运行的一些 boost 计算代码存在问题。我的开发机器使用 radeon WX9100 gpu 运行 Windows 7,一切运行良好。我正在使用的另一台实验室机器几乎相同,但运行的是 Windows 10 并具有 Windows 10 版本的 radeon 驱动程序。

windows 7机器显示openCL设备名称为“GFX900”,windows 10机器显示名称为“GFX901”。我发现的一个比特币挖矿网站说这对那个模型来说很好。

不好的是,即使(尤其是)我使用“BUFFERNAME.~buffer()”,boost 计算/opencl 内存缓冲区也不会从 Windows 10 机器上的设备内存中释放出来。

我认为这可能是驱动程序问题,但我真的不确定。

提前感谢您的帮助!埃里克

0 投票
3 回答
271 浏览

opencl - 如何使用 boost::compute::atan2?

我想使用 boost::compute 计算复数的相位

这是我的尝试,我希望结果等于 atan2(0.5f):

但我收到一个编译错误,声称“非一元函数调用了一个参数”

0 投票
2 回答
114 浏览

c++ - boost::compute,将指针传递给闭包

晚上好!我正在编写一个高性能应用程序并尝试使用 boost 来加速复杂的计算。

我的问题的本质:有没有办法将指向数组的外部指针(如float4_ *)传递给 a BOOST_COMPUTE_CLOSURE?我想得到类似的东西:

0 投票
1 回答
171 浏览

c++ - 如何在 GPU 上 Thrust 使用的仿函数中使用 boost.compute 函数?

我正在尝试在推力算法中使用 boost.math 提供的特殊功能。

基本上,我想做一个转换,就像这样

由哪里myfunctor()给出

我一直在仿函数中调用warning: calling a __host__ function from a __host__ __device__ function is not allowed的那一行。ellint_1

我做错了什么还是 boost.math 不适合 GPGPU 使用(因为从我读过的内容来看,我绝对认为是这样)?

0 投票
2 回答
481 浏览

c++11 - 以编程方式使用 openCL 选择最佳可用 GPU 的问题

我正在使用此处给出的建议为我的算法选择最佳 GPU。 https://stackoverflow.com/a/33488953/5371117

我查询我的 MacBook Pro 上的设备,使用boost::compute::system::devices();它返回以下设备列表。

我想AMD Radeon Pro 560X Compute Engine用于我的目的,但是当我迭代找到具有最大评级=的设备时CL_DEVICE_MAX_CLOCK_FREQUENCY * CL_DEVICE_MAX_COMPUTE_UNITS。我得到以下结果:

AMD GPU 的评分最低。我还查看了规格,在我看来,它CL_DEVICE_MAX_CLOCK_FREQUENCY没有返回正确的值。

根据 AMD 芯片规格https://www.amd.com/en/products/graphics/radeon-rx-560x,我的 AMD GPU 的基本频率为 1175 MHz,而不是 300MHz

根据英特尔芯片规格https://en.wikichip.org/wiki/intel/uhd_graphics/630,我的英特尔 GPU 的基本频率为 300 MHz,而不是 1150MHz,但它的升压频率为 1150MHz

我做错什么了吗?

0 投票
0 回答
168 浏览

c++ - 使用boost计算库在C++中累积复数

我想在 boost.compute 库中累积复数,但是当我运行以下代码时遇到编译错误。

我正在使用提升 1.65.0

PS:代码不完整。我只是总结它以显示编译错误。

和编译器输出是:

0 投票
0 回答
89 浏览

c++ - 使用 Boost C++ 库

我们可以在一个代码中使用来自不同 Boost C++ 库的函数吗?假设我正在编写代码以在 GPU 上实现图形。我可以结合 Boost Graph 库和 Boost Compute 库来做到这一点吗?

谢谢。

0 投票
0 回答
50 浏览

opencl - 在单个代码中使用 ArrayFire 和 Boost Compute

我正在尝试运行一个代码,它使用来自 boost 计算库和 arrayfire 库的函数。尝试构建代码时出现以下错误:

我正在使用的代码是一个非常简单的 helloworld,它使用了两个库中的函数。

用于构建项目的 CMakeList 是:

我没有编程背景。请指导我做错了什么。如何在一个代码中将这两个库链接在一起?

问候,哈桑

0 投票
0 回答
12 浏览

c++ - Boost.Compute 静态断言失败:设备迭代器

我目前正在使用 GPU 的 boost.compute 库编写一个经过调整的点积内核。我只想使用一个内核调用,使用 transform_reduce。我的目标是计算 (x+y)(xy) 的点积,其中 x,y 是等长向量。

'''

然而我得到一个奇怪的错误:

/usr/include/boost/compute/algorithm/transform.hpp:69:5:错误:静态断言失败:is_device_iterator::value 69 | BOOST_STATIC_ASSERT(is_device_iterator::value);

有人可以告诉我这里有什么问题吗?

0 投票
0 回答
52 浏览

c++ - Boost.Compute 中是否有 For 循环?

我正在尝试执行以下操作:

  1. 声明并初始化 a compute::vectorn每个元素为1^2, 2^2, 3^2...n^2
  2. 当向量的大小 > 1 时
    :对于 i = 0 到(向量的大小 - 1):n[i] += n[i+1]
    b。从向量中删除最后一个元素
  3. 对向量中的剩余元素进行平方根。

我用 Boost.Compute 以这种方式实现了这个:

哪个有效,但经过测试它非常慢:
大小 6000 时间 551 毫秒
大小 7024 时间 1870 毫秒
大小 8048 时间 8262 毫秒

我知道编译内核以及将数据复制到 GPU 都需要时间,但结果对我来说似乎还是有点不对劲。
我只用单核 CPU 处理实现了类似的东西,它可以在 2 秒内处理大小约为 150k 的算法。

我怀疑for循环是瓶颈,它不断编译新adjacent_difference内核。这就是为什么我想知道它是否可以并行化?
据我了解,如果它不再adjacent_difference为每次迭代编译新的,CPU 瓶颈应该会大大减少。