|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.04.2018, 16:41 | #11 |
Пользователь
Регистрация: 19.06.2011
Сообщений: 21
|
Да, скорее всего в этом причина. Значение -1 вместо запрашиваемого параметра видеокарты выдаётся, когда указанный параметр не удалось определить.
|
06.06.2019, 17:18 | #12 |
Пользователь
Регистрация: 19.06.2011
Сообщений: 21
|
Обновлённая ссылка на DEMO:
http://gofile.me/2Zesj/fbsharing-C0f3wb1o Последняя версия в папке: OpenCL_Demo2018 Barrier and Local_Memory REDUCT Delphi Tokyo 10.2.2 !! LAST !! |
29.12.2021, 10:31 | #13 |
Пользователь
Регистрация: 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). Последний раз редактировалось Prok186; 29.12.2021 в 10:34. |
13.01.2022, 12:07 | #14 |
Пользователь
Регистрация: 28.02.2009
Сообщений: 42
|
Prok186 Вопрос из прикладного применения.
Имеет ли смысл переложить паралленую сортировку с CPU на GPU? Сортировка "чет-нечет". основной алгоритм - метод втавок. i5 оптимально прожевывает 16 потоков на ядро. видео gt-740M. В качестве учебного процеса по OPENCL стоит попробывать. Но хотелось бы узнать мнение. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использование 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 |