|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Снова Delphi & OpenCL + программное определение загрузки GPU & CPU (готовый пример)
Уже более года назад приводил здесь на форуме пример работы с OpenCL в связке с Delphi - http://www.delphisources.ru/forum/sh...ad.php?t=28188
------------------------------------------------------------------- Дополню его. Открываю отдельную тему, т.к. новый пример м.б. интересен и безотносительно к OpenCL , поскольку в нём есть программное (прямо из Delphi-кода) определение:
Внутри той же ссылки для скачивания 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. |