Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Тестировать я буду так: с помощью compute для всех устройств вызову функцию compute::sort() для того чтоб отсортировать массив из 100 млн. значений типа float.
Ну и с double проблемы возникнут уже на GPU (от NVidia), а особенно интересно именно вычисление даблами…
Платформы— и как это использовать этот список платформ?
Экспериментальным путём я выяснил что собранные на моём ноутбуке программы будут запускаться лишь на устройствах таких же производителей.— тоже странно, на то эту либу и делали чтобы один раз написать а потом запускать на девайсах которые под руку попадутся.
auto device = compute::system::default_device(); //тут поменяешь на тот девайс
//который у тебя процессор
auto context = compute::context(device);
auto queue = compute::command_queue(context, device);
vector<float> host_vec = { 1, 2, 3, 4, 5};
compute::vector<float> A(host_vec.begin(), host_vec.end(), queue);
compute::vector<float> B(host_vec.begin(), host_vec.end(), queue);
compute::vector<float> C(host_vec.size(), context);
float temp_res = 0;
float res = 0;
auto B_iter = B.begin();
for (size_t i = 0; i < host_vec.size(); i++)
{
compute::transform(A.begin(), A.end(), C.begin(),
compute::_1 * B_iter.read(queue) /*+ещё какие-то вычисления*/, queue);
compute::reduce(C.begin(), C.end(), &temp_res, queue);
res += temp_res;
B_iter++;
}
cout << res << endl;
День добрый. А что-нибудь известно про судьбу/перспективы проекта Boost.compute? Репозиторий выглядит мёртвым. Хотя сама идея выглядит интересной. Не скажу, что реализация иделальна. Тут выше уже много чего интересного обсудили, да и если issues почитать, там тоже любопытного много. Может где-то в сообществе пролетали новости/рассуждения.
Boost.Compute или параллельные вычисления на GPU/CPU. Часть 2