Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.12.2017, 16:43
Prok186 Prok186 вне форума
Прохожий
 
Регистрация: 19.06.2011
Сообщения: 22
Репутация: 10
Счастье Снова Delphi & OpenCL + программное определение загрузки GPU & CPU (готовый пример)

Уже более года назад приводил здесь на форуме пример работы с OpenCL в связке с Delphi - http://www.delphisources.ru/forum/sh...ad.php?t=28188
-------------------------------------------------------------------
Дополню его. Открываю отдельную тему, т.к. новый пример м.б. интересен и безотносительно к OpenCL , поскольку в нём есть программное (прямо из Delphi-кода) определение:
  • общей загрузки CPU ;
  • загрузки CPU данной задачей ;
  • загрузки GPU (общей);
  • загрузки контроллера памяти GPU ;
  • процента использованной памяти GPU ;
  • температуры GPU .

Внутри той же ссылки для скачивания http://gofile.me/2Zesj/fbsharing-C0f3wb1o добавил папку:

OpenCL_Demo2017 Barrier and Local_Memory REDUCT

В ней новый пример под Delphi XE8 64bit (работает и при компиляции в Delphi под Win32, но с ограничениями, о которых будет сказано ниже).

Отличия:
1. Добавлен пример простейшей редукции с использованием barrier и LocalMemory с обилием комментариев внутри Kernel-файла ProgramGPU1.cpp

2. Показано, как внутри Kernel создать а-ля динамический массив (стандарт языка OpenCL 1.2 этого не позволяет).

3. Главное. На форме (см. скан экрана Reduct DEMO.tiff в указанной выше новой папке) добавлены Gauge-компоненты, показывающие перечисленные выше параметры загрузки системы (CPU-GPU).

4. Для определения загрузки GPU используется nvml.dll
( мануал 2017 здесь: https://docs.nvidia.com/deploy/pdf/N...ence_Guide.pdf ),
так что последние 4 параметра определяются только для карт NVIDIA, и при компиляции в Delphi под 64bit. Эта динамич. библиотека для каждой карты NVIDIA - своя,
обычно при установке драйвера карты она попадает в папку
C:\Program Files\NVIDIA Corporation\NVSMI\nvml.dll (этот путь прямо прописан в прилагаемом примере по ссылке).

Всё что связано с определением загрузки CPU-GPU находится в отдельном модуле ProcessorUsage.pas, который может быть применён и для других программ (без OpenCL).

5. Если есть желание попробовать OpenCL не только на видеокартах, но и на процессорах INTEL, надо поставить драйвер https://software.intel.com/en-us/art...st_CPU_runtime

6. Ещё раз напоминаю, что при запуске *.exe рядом с ним должны лежать два текстовых файла *.cpp - они будут отправлены на компиляцию драйверу видеокарты!

7. Пример делался в Delphi XE8, компилировался под 64bit. Система - Windows 10Pro. При компиляции под 32bit не будут отображаться компоненты загрузки GPU (даже если у вас карта NVIDIA, и по указанному пути удастся найти библиотеку nvml.dll). Кроме того, из-за ограничений в адресации памяти под 32bit, максимальный размер матриц 1400 x 8 (так и задано по умолчанию на форме).
---------
Буду весьма признателен , если кто-то подскажет способ измерения загрузки GPU от AMD, и самое простое - его температуры. Есть похожая DLL - как у NVIDIA, только для AMD Radeon? Может, эти: atiadlxx.dll , atiadlxy.dll , GPUPerfAPIGL.dll ?

Последний раз редактировалось Prok186, 08.06.2019 в 21:58.
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:21.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter