Введение Привет, Хабр! Предыдущая часть многим понравилась, поэтому я снова перерыл половину документации по бусту и нашел, о чем написать.
Очень странно, что вокруг boost.compute нет такого ажиотажа, как вокруг boost.asio. Ведь достаточно того, что эта библиотека является кроссплатформенной, а также предоставляет удобный (в рамках C++) интерфейс для взаимодействия с параллельными вычислениями на GPU и CPU.
Все части
- Часть 1
- Часть 2
Содержание
- Асинхронные операции
- Пользовательские функции
- Сравнение скорости разных устройств в разных режимах
- Заключение
Асинхронные операции
Казалось бы, где еще быстрее? Один из способов ускорить работу с контейнерами вычислительного пространства имен — использовать асинхронные функции.Boost.compute предоставляет нам несколько инструментов.
Из них класс Compute::future для управления использованием функций и функции copy_async(), fill_async() для копирования или заполнения массива.
Инструменты для работы с событиями, конечно, тоже есть, но рассматривать их нет необходимости.
Ниже приведен пример использования всего вышеперечисленного:
Теги: #C++ #вычисления на графическом процессоре #boost::compute #boost::computeauto device = compute::system::default_device(); auto context = compute::context::context(device); auto queue = compute::command_queue(context, device);
Вместе с данным постом часто просматривают:
-
Получение Услуг По Прокладке Кабелей Cat6
19 Oct, 24 -
Осторожно: Злоумышленники
19 Oct, 24 -
Голливудский Принцип (Ioc)
19 Oct, 24 -
Вторая Жизнь Свалок Тбо
19 Oct, 24 -
Эрланг. Что Это, Почему, Как И Для Кого.
19 Oct, 24