You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Just wondering if this is a bug or a user error. The below is a snippet showing the issue. Trying to pass different run-time value to closure, that triggers the run-time compiling every time the transform() is called.
If this is user error or not supported, is there a workaround for supplying run-time values to algorithms?
size_t N = 100;
for (size_t i = 0; i < N-1; ++i)
{
int e = static_cast(i); // changing the 'e' here causing the transform() to compile every time is invoked
BOOST_COMPUTE_CLOSURE(int, calc, (int a, int b), (e),
{
return a + b + e;
});
boost::compute::transform(
va.begin(),
va.end(),
vb.begin(),
vc.begin(),
calc,
queue);
}
Cheers
The text was updated successfully, but these errors were encountered:
Just wondering if this is a bug or a user error. The below is a snippet showing the issue. Trying to pass different run-time value to closure, that triggers the run-time compiling every time the transform() is called.
If this is user error or not supported, is there a workaround for supplying run-time values to algorithms?
boost::compute::device gpu =
boost::compute::system::default_device();
boost::compute::context context(gpu);
boost::compute::command_queue queue(context, gpu);
size_t size = 10000;
boost::compute::vector va(size, 1, queue);
boost::compute::vector vb(size, 2, queue);
boost::compute::vector vc(size, context);
size_t N = 100;
for (size_t i = 0; i < N-1; ++i)
{
int e = static_cast(i); // changing the 'e' here causing the transform() to compile every time is invoked
}
Cheers
The text was updated successfully, but these errors were encountered: