问题标签 [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++ - 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 机器上的设备内存中释放出来。
我认为这可能是驱动程序问题,但我真的不确定。
提前感谢您的帮助!埃里克
opencl - 如何使用 boost::compute::atan2?
我想使用 boost::compute 计算复数的相位
这是我的尝试,我希望结果等于 atan2(0.5f):
但我收到一个编译错误,声称“非一元函数调用了一个参数”
c++ - boost::compute,将指针传递给闭包
晚上好!我正在编写一个高性能应用程序并尝试使用 boost 来加速复杂的计算。
我的问题的本质:有没有办法将指向数组的外部指针(如float4_ *
)传递给 a BOOST_COMPUTE_CLOSURE
?我想得到类似的东西:
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 使用(因为从我读过的内容来看,我绝对认为是这样)?
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
我做错什么了吗?
c++ - 使用boost计算库在C++中累积复数
我想在 boost.compute 库中累积复数,但是当我运行以下代码时遇到编译错误。
我正在使用提升 1.65.0
PS:代码不完整。我只是总结它以显示编译错误。
和编译器输出是:
c++ - 使用 Boost C++ 库
我们可以在一个代码中使用来自不同 Boost C++ 库的函数吗?假设我正在编写代码以在 GPU 上实现图形。我可以结合 Boost Graph 库和 Boost Compute 库来做到这一点吗?
谢谢。
opencl - 在单个代码中使用 ArrayFire 和 Boost Compute
我正在尝试运行一个代码,它使用来自 boost 计算库和 arrayfire 库的函数。尝试构建代码时出现以下错误:
我正在使用的代码是一个非常简单的 helloworld,它使用了两个库中的函数。
用于构建项目的 CMakeList 是:
我没有编程背景。请指导我做错了什么。如何在一个代码中将这两个库链接在一起?
问候,哈桑
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);
有人可以告诉我这里有什么问题吗?
c++ - Boost.Compute 中是否有 For 循环?
我正在尝试执行以下操作:
- 声明并初始化 a
compute::vector
,n
每个元素为1^2
,2^2
,3^2
...n^2
- 当向量的大小 > 1 时
:对于 i = 0 到(向量的大小 - 1):n[i] += n[i+1]
b。从向量中删除最后一个元素 - 对向量中的剩余元素进行平方根。
我用 Boost.Compute 以这种方式实现了这个:
哪个有效,但经过测试它非常慢:
大小 6000 时间 551 毫秒
大小 7024 时间 1870 毫秒
大小 8048 时间 8262 毫秒
我知道编译内核以及将数据复制到 GPU 都需要时间,但结果对我来说似乎还是有点不对劲。
我只用单核 CPU 处理实现了类似的东西,它可以在 2 秒内处理大小约为 150k 的算法。
我怀疑for
循环是瓶颈,它不断编译新adjacent_difference
内核。这就是为什么我想知道它是否可以并行化?
据我了解,如果它不再adjacent_difference
为每次迭代编译新的,CPU 瓶颈应该会大大减少。