boost::compute copy пользовательские структуры
Можно ли копировать массивы пользовательских структур с помощью boost::compute? Например
struct A { float a; };
struct AB { float a; float b; };
BOOST_COMPUTE_ADAPT_STRUCT(A, A, (a))
BOOST_COMPUTE_ADAPT_STRUCT(AB, AB, (a, b))
boost::compute::vector<A> va(100);
boost::compute::vector<AB> vab(100);
boost::compute::copy(va.begin(), va.end(), vab.begin());
1 ответ
Да, посмотрите на этот пример из тестов Boost.Compute. Помните, что:
Из-за различий в заполнении структуры между компилятором хоста и компилятором устройства, макрос BOOST_COMPUTE_ADAPT_STRUCT() требует, чтобы адаптированная структура была упакована (т.е. не было заполненных байтов между членами).
Источник: boost / compute / types / struct.hpp