Собственный способ ускорения алгоритмов (GPU) в Qt

У меня есть работающая программа обработки изображений для 3D-сканера, построенная на многопоточной программе Qt, написанной в Visual Studio с использованием проприетарной библиотеки обработки изображений. По мере развития проекта программное обеспечение становилось все более и более тяжелым с точки зрения вычислений. Я выполнил ряд программных и аппаратных оптимизаций для повышения его производительности и пришел к выводу, что мне действительно нужно передать несколько повторяющиеся алгоритмические операции (не связанных с графикой) на GPU.

Я экспериментировал с использованием библиотек CUDA только для того, чтобы понять, что они не интегрируются с Qt чисто или, по крайней мере, на моем уровне понимания. Похоже, что в какой-то момент в прошлом OpenCL поддерживался Qt, но, похоже, не является текущим направлением развития Qt.

Я прочитал значительный объем материала по этому вопросу, и мне любопытно, какие параметры ТЕКУЩИЙ (встроенные в Qt или легко интегрируемые) предназначены для такого рода вещей?

OpenCL, вероятно, ваш лучший выбор. Вам понадобится компилятор C++ 14. Какой компилятор вы используете? Qt вообще не должен влиять на ваше использование. См .: khronos.org/opencl

Will Bickford 20.09.2018 04:37

В настоящее время я использую Visual Studio 2015

bluebass44 20.09.2018 04:39

Вы можете попробовать опубликовать некоторые из ошибок интеграции, с которыми вы столкнулись с OpenCL, в другом сообщении. См. Также: docs.microsoft.com/en-us/cpp/…

Will Bickford 20.09.2018 04:43

У меня не было ошибок интеграции с OpenCL. Я просто читал старые статьи о QT-оболочках OpenCL. Проблема, с которой я столкнулся с CUDA, была связана с вызовом ядер из кода, который находится внутри объекта QT (рабочие потоки). Все обходные пути, о которых я читал, выглядят довольно некрасиво.

bluebass44 20.09.2018 04:49

Почему Qt? Qt - это среда с графическим интерфейсом пользователя, которая не обязательно помогает со всеми возможными задачами. Рассмотрим PCL pointclouds.org и попытаемся найти в коде пространство имен pcl :: gpu. docs.pointclouds.org/trunk/namespacepcl_1_1gpu.html

Alexander V 20.09.2018 15:46

Я не зацикливаюсь на вариантах Qt only - «родной для Qt или легко интегрируемый»

bluebass44 20.09.2018 17:58

У нас есть Qt и связка PCL и несколько других, в зависимости от проекта. Не все работает даже с Qt.

Alexander V 20.09.2018 20:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
7
283
0

Другие вопросы по теме