Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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



Ответ
 
Опции темы
Старый 28.12.2017, 13:49   #1
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 14
Репутация: 23
Смущение Delphi & OpenCL + программное измерение загрузки GPU-CPU

Уже более года назад приводил здесь на форуме пример работы с OpenCL в связке с Delphi - http://www.programmersforum.ru/showt...=288226http://
-------------------------------------------------------------------
Дополню его. Открываю отдельную тему, т.к. новый пример м.б. интересен и безотносительно к OpenCL , поскольку в нём есть программное (прямо из Delphi-кода) определение:

  • общей загрузки CPU ;
  • загрузки CPU данной задачей ;
  • загрузки GPU (общей);
  • загрузки контроллера памяти GPU ;
  • процента использованной памяти GPU ;
  • температуры GPU .


Внутри той же ссылки для скачивания http://gofile.me/2Zesj/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. Главное. На форме (см. вложенный скан экрана, он есть и в указанной выше новой папке) добавлены 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. Буду весьма признателен , если кто-то подскажет способ измерения загрузки GPU от AMD, и самое простое - его температуры. Есть похожая DLL - как у NVIDIA, только для AMD Radeon?

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

8. Скан фрагмента экрана при работе моей уже не тестовой научной программы-OpenCL, где используется этот-же модуль определения загрузки CPU-GPU, тоже прилагаю.

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


Всех с наступающим Новым годом !!
Изображения
Тип файла: jpg MyProgram GPU usage.jpg (72.4 Кб, 36 просмотров)
Тип файла: jpg Reduct DEMO mini JPG.jpg (58.7 Кб, 2 просмотров)

Последний раз редактировалось Prok186; 28.12.2017 в 17:16.
Prok186 вне форума   Ответить с цитированием
Старый 29.12.2017, 13:58   #2
PTyTb32
Форумчанин
 
Регистрация: 06.10.2013
Сообщений: 118
Репутация: 17

icq: 418328851
По умолчанию

Спасибо! искал подобное, будет время займусь
PTyTb32 вне форума   Ответить с цитированием
Старый 29.12.2017, 14:59   #3
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 14
Репутация: 23
По умолчанию

Для ATI-AMD надо вроде в этих библиотеках копаться: atiadlxx.dll , atiadlxy.dll , GPUPerfAPIGL.dll ? С температурой GPU там более менее понятно как разобраться, а вот как с GPUutilization - не ясно: там сессии какие-то...
Prok186 вне форума   Ответить с цитированием
Старый 30.12.2017, 16:40   #4
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 14
Репутация: 23
По умолчанию

Упсс... Уже cмог определить загрузку GPU от AMD и его текущую температуру - использовал atiadlxx.dll (пример на днях дополню и перезалью на ту же ссылку). Но вот определить, сколько процентов памяти задействовал с карты AMD под свои расчёты на OpenCL пока не смог. C NVIDIA у меня это вышло без проблем (см. пример выше).
Увы, для atiadlxx.dll нет подробного мануала, как для NVIDIA - https://docs.nvidia.com/deploy/pdf/N...ence_Guide.pdf. Может, вообще нужна для AMD другая DLL - GPUPerfAPIGL.dll для определения загрузки памяти ? А как для AMD загрузку контроллера памяти найти - вообще не знаю (даже готовые утилиты типа GPU-z 2.5.0 не показывают загрузку контроллера для AMD, только для NVIDIA). Хорошо бы пример!

Последний раз редактировалось Prok186; 30.12.2017 в 16:43.
Prok186 вне форума   Ответить с цитированием
Старый 05.01.2018, 20:40   #5
Prok186
Пользователь
 
Регистрация: 19.06.2011
Сообщений: 14
Репутация: 23
По умолчанию

Прилагаю допиленную версию (zip-файл). Дополнена измерением температуры для AMD тоже, плюс мониторинг скорости вращения вентилятора AMD-NVIDIA, частот (MHz) GPU и памяти для AMD-NVIDIA .
В папку для скачивания (ссылка выше) тоже всё перезалил. Внутри есть под-папка с Supporting Information в названии. Файлы из неё напрямую НЕ используются. Это примеры работы с nvml.dll (NVIDIA) и atiadlxx.dll (AMD) и некоторая документация к этим библиотекам. Например, для второй из них надо открыть в любом броузере ADL_SDK.html.
С процентом загрузки памяти именно AMD, увы, не удалось разобраться, хотя у того же Win10 Task Menager или у GPU-z загрузка памяти AMD отображается.
Если кто-то сможет протестировать измерение загрузки GPU-CPU этим кодом на своём сетапе - будет интересно. Особенно, если установлено 2 (или более) карты AMD или AMD + NVIDIA.
Вот скан части экрана при работе НЕ тестовой программы, где уже мониторится и использование GPU, и скорость вентилятора, и частоты GPU/памяти (в коде применялся тот же модуль ProcessorUsage.pas мониторинга CPU-GPU loading):
Изображения
Тип файла: jpg MyProgram GPU Usage FAN Frequency.jpg (79.6 Кб, 11 просмотров)
Вложения
Тип файла: zip OpenCL_Demo2017_Reduct Usage FAN Frequency Overdrive5only.zip (1.47 Мб, 1 просмотров)
Тип файла: zip ADL_SDK_V10.2.zip (2.74 Мб, 1 просмотров)

Последний раз редактировалось Prok186; 06.01.2018 в 15:46.
Prok186 вне форума   Ответить с цитированием
Ответ



Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование OpenCL в Delphi-коде под Win64 Prok186 Общие вопросы Delphi 3 10.02.2016 21:12
в чем отличие 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




22:12.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
лучший хостинг
Выбираем лучший хостинг: рейтинг ТОП 10