Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2018, 16:41   #11
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 21
По умолчанию

Да, скорее всего в этом причина. Значение -1 вместо запрашиваемого параметра видеокарты выдаётся, когда указанный параметр не удалось определить.
Prok186 вне форума Ответить с цитированием
Старый 06.06.2019, 17:18   #12
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 21
По умолчанию

Обновлённая ссылка на DEMO:
http://gofile.me/2Zesj/fbsharing-C0f3wb1o
Последняя версия в папке:
OpenCL_Demo2018 Barrier and Local_Memory REDUCT Delphi Tokyo 10.2.2 !! LAST !!
Prok186 вне форума Ответить с цитированием
Старый 29.12.2021, 10:31   #13
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 21
По умолчанию MULTI GPUs Demo 2021

Уже несколько лет прошло, как выкладывал здесь свои примеры использования OpenCL в Delphi...Сейчас наконец-то появились драйверы и для карт Nvidia, где взамен устаревшей версии OpenCL 1.2 идёт последняя версия OpenCL 3.0. Кое-что из неё используется в новой DEMO-программе, которая может распараллеливать расчёты на несколько GPU (хотя DEMO идёт и на старой версии OpenCL 1.2). Например, при наличии в системе версии OpenCL 2.0 и выше используются неоднородные рабочие группы:
https://habr.com/ru/company/intel/blog/246091/
По этой ссылке есть пример с "размытием изображения": нечто похожее делается в новой DEMO на границах расчётной области, когда при её "нарезке" на разные GPU надо иметь информацию (на границе) из соседнего GPU: нужна "склейка".
===
И в довесок, в новой Demo используется память всех GPU, если оперативки одного GPU недостаточно.
===
Исходники для Delphi 10.2 (Tokyo) - здесь:
http://gofile.me/2Zesj/ZO2YWyyuy
Все DEMO-версии, включая новую для Multi-GPUs, собраны в папке:
http://gofile.me/2Zesj/qZDKNrpU8
===
Версия Win10, 64bit.
Напомню (а лучше для начала почитать старое описание в этой ветке выше):
===
1) Рядом с исполняемым файлом Project_OpenCL_Demo2021_MultiGPU.ex e должен лежать текстовый файл ProgramPress.cpp
===
2) Расчёты выполняются с квадратной "матрицей" (их там всего 17 штук!), размер стороны которой MatrixSize задаётся на основной форме. По умолчанию это 2500. Кол-во расчётных слоёв по 3-ей координате - это Layers, по умолчанию это 8. При запуске выдаётся общий размер памяти, который требуется от всех GPU. Если памяти железа не хватит - вылетим, и надо уменьшить кол-во слоёв либо размер матрицы.
===
Версия драйвера для Nvidia, с которой тестировал:
472.12-desktop-win10-win11-64bit-international-whql
===
3) Тестировал с одной видеокартой AMD и с парой Nvidia 1080ti. Если у вас есть больше видеокарт в системе, либо пара AMD - интересно будет обсудить результат.
===
4) Когда в системе несколько видеокарт, и вы задали работу "со всеми", вся расчётная область режется на куски по индексу i, после каждой итерации - сшивание GPU0 --> Host --> GPU1 (это быстро!) и наоборот - по границам нарезки с помощью "небольших" обновляемых при расчётах массивов Connector. Сшивание можно отрубить, убрав галку на основной форме.
===
5) По окончании расчёта выдаётся форма, где видна погрешность расчёта Pogr = (д.б. порядка 1E-7): она определяется по сравнению результатов расчёта на CPU и на GPUs.
===
6) Изначально исходные данные заполняются рандомно. При след. запуске результат м.б. иной. Главное, чтобы погрешность Pogr была малой. Например, при отключении Connector она сразу станет большой. Но это когда есть в системе и вы задали при запуске несколько видеокарт: с одним GPU эти "коннекторы" не используются.
===
7) Можете сравнить время расчётов на 1 GPU и на 2,3... Для 2-х своих Nvidia 1080 ti (см. вложенный рисунок) я задавал MatrixSize = 5400 и Layers = 8 (что требует порядка 17Gb памяти на оба GPU).
Изображения
Тип файла: jpg Multi GPUs.jpg (99.3 Кб, 0 просмотров)

Последний раз редактировалось Prok186; 29.12.2021 в 10:34.
Prok186 вне форума Ответить с цитированием
Старый 13.01.2022, 12:07   #14
stalkernet
Пользователь
 
Регистрация: 28.02.2009
Сообщений: 42
По умолчанию

Prok186 Вопрос из прикладного применения.
Имеет ли смысл переложить паралленую сортировку с CPU на GPU?
Сортировка "чет-нечет". основной алгоритм - метод втавок.
i5 оптимально прожевывает 16 потоков на ядро.
видео gt-740M.

В качестве учебного процеса по OPENCL стоит попробывать. Но хотелось бы узнать мнение.
stalkernet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование OpenCL в Delphi-коде под Win64 Prok186 Общие вопросы Delphi 10 05.01.2019 18:00
в чем отличие gpu core clock и gpu clock почему значания разные? gpu0 Компьютерное железо 0 10.06.2012 05:17
Связь загрузки CPU с Task Manager ? spamer Свободное общение 11 19.01.2012 11:31
CPU Internal Cache, программное управление SunKnight Свободное общение 0 11.05.2010 22:30
ИИ в играх-GPU. Что будут делать CPU? Levsha100 Свободное общение 17 03.07.2009 14:54