Особенности языка mql5, тонкости и приёмы работы - страница 322

 
Rorschach #:

МТшные примеры работают? Возможно драйвера не стоят.

Не знаю, где смотреть.
 
fxsaber #:
Не знаю, где смотреть.
На свежем железе автоматически устанавливаются драйвера OpenCL. Возможно GPU железяка подустарела. 
Можно скачать бесплатную утилиту Geeks3D GPU Caps Viewer и посмотреть свою видео-карту и поддерживает ли она OpenCL. А потом в ручном режиме скачать и установить дровишки. 
 


 
Nikolai Semko #:
На свежем железе автоматически устанавливаются драйвера OpenCL. Возможно GPU железяка подустарела. 
Можно скачать бесплатную утилиту Geeks3D GPU Caps Viewer и посмотреть свою видео-карту и поддерживает ли она OpenCL. А потом в ручном режиме скачать и установить дровишки. 
 


просто к слову пришлось: юзать видяху для вычислений и CPU для отрисовок (а Blend2d это чистый CPU) это до некоторой степени мега решение :-) При всей симпатии к бленду, честно говоря думал что будет переезд на Skia, оно плотнее железо использует

современный путь

 
Edgar Akhmadeev #:

впечатляет конечно произодительность вычислений на GPU карте (NVIDIA GeForce RTX 3060) даже  стоимостью ~300 USD в сравнении с CPU. Более чем в 1000 раз. 0.017 наносекунд на вычислительную итерацию sum += (long)(sin(x) * cos(x) * 1000.0f);

Даже сложно представить себе результат на NVidia GPU кластере стоимостью ~30000USD, продажа которых строго квотируется правительством США и за которыми ведут охоту многие страны мира, особенно Китай. 
Недавно Казахстану досталась горстка таких кластеров. И, насколько я понял, Павел Дуров именно поэтому приезжал в Казахстан и встречался с президентом Токаевым. 
Дожились, что в мире по сути одна компания NVidia определяет стратегическую безопасность государств. 

PS. Надо бы убедиться, что нет оптимизации благодаря кэшированию последних вычислений, т.к. у нас массив весьма примитивен [1,2,3....100,1,2,....100,1,2............100]
пожалуйста вставьте данную строку в строку 117:

for (int i = 0; i < Size; Array[i++]=rand());

и перепроверьте результат, чтобы убедиться что кэширование здесь ни при чем. 

 
Maxim Kuznetsov #:

просто к слову пришлось: юзать видяху для вычислений и CPU для отрисовок (а Blend2d это чистый CPU) это до некоторой степени мега решение :-) При всей симпатии к бленду, честно говоря думал что будет переезд на Skia, оно плотнее железо использует

современный путь

да, согласен. Все же облачные провайдеры начинают активно заселять GPU решения в свою инфраструктуру. В основном для LLM.
Я уже имею опыт установки и использования локальной LLM LLAMA 3.1 и понимаю, насколько важна мощная GPU. Для такой LLM придется выложить 3000 USD за GPU для комфортной работы. CPU совсем не тянут

 
Nikolai Semko #:

PS. Надо бы убедиться, что нет оптимизации благодаря кэшированию последних вычислений, т.к. у нас массив весьма примитивен [1,2,3....100,1,2,....100,1,2............100]
пожалуйста вставьте данную строку в строку 117:

и перепроверьте результат, чтобы убедиться что кэширование здесь ни при чем. 

на RTX 4060 с новой строкой

13790 проц


 
lynxntech #:

на RTX 4060 с новой строкой

13790 проц


спасибо! Значит нет влияния кэширования на результат. Видео карта стоимостью ~250 USD уделывает весьма нормальный современный процессор в 700 раз по вычислительной мощности.
Короче - всем срочно апгрейдить свои GPU. В том числе и мне :))
и пора переписывать канвас с поддержкой OpenCL

Кстати пробовал даже на Python писать с OpenCL для теста. Все летает намного круче нативных C++ программ, которые написаны без GPU.

 
Maxim Kuznetsov #:

просто к слову пришлось: юзать видяху для вычислений и CPU для отрисовок (а Blend2d это чистый CPU) это до некоторой степени мега решение :-) При всей симпатии к бленду, честно говоря думал что будет переезд на Skia, оно плотнее железо использует

современный путь

кстати, я тоже так думал про Skia
https://www.mql5.com/ru/forum/487541/page4#comment_56817317
Надеюсь, что не уйдет в долгострой.
Надеюсь, что не уйдет в долгострой.
  • 2025.05.29
  • www.mql5.com
Наконец-то появиться полноценная темная тема и нормальный IDE. ЗЫ Хотел начать писать несколько статей на тему высокопроизводительного чарта со сглаженностью и прозрачностью на Canvas. сейчас хороший момент уйти в open source по примеру NET
 
╔════════════════════════════════════════════════════════════╗
║          CPU vs GPU BENCHMARK (OpenCL)                     ║
╠════════════════════════════════════════════════════════════╣
║  Elements: 100M | Data size: 381 MB
╚════════════════════════════════════════════════════════════╝

▓▓▓ TEST 1: SIMPLE SUM (only +=) ▓▓▓
CPU: 31423 µs, sum = 1638263169596
--- Simple GPU ---
OpenCL: GPU device 'NVIDIA GeForce RTX 3060' selected
  GPU load:    73800 µs
  GPU compute: 1249 µs
  GPU total:   75049 µs
  Sum: 1638263169596 ✓

▓▓▓ TEST 2: HEAVY COMPUTE (sin × cos) ▓▓▓
CPU: 2541158 µs, sum = -143796
--- Heavy GPU ---
  GPU load:    78563 µs
  GPU compute: 1752 µs
  GPU total:   80315 µs
  Sum: -164921 ✗

╔════════════════════════════════════════════════════════════╗
║                    RESULTS SUMMARY                         ║
╠════════════════════════════════════════════════════════════╣
║ SIMPLE SUM (only +=):                                      ║
║   CPU:         31 ms
║   GPU total:   75 ms (load: 73 + compute: 1)
║   Winner:      CPU ✓ (2.4x faster)
║                                                            ║
║ HEAVY COMPUTE (sin × cos):                                 ║
║   CPU:         2541 ms
║   GPU total:   80 ms (load: 78 + compute: 1)
║   Winner:      GPU ✓ (31.6x faster)
╠════════════════════════════════════════════════════════════╣
║                    CONCLUSIONS                             ║
╠════════════════════════════════════════════════════════════╣
║ Memory bandwidth:                                          ║
║   CPU→GPU transfer: 5.04 GB/s
║   CPU throughput:   3.18 G elements/s
║   GPU throughput:   80.06 G elements/s
║                                                            ║
║ Recommendations:                                           ║
║   • Simple ops:    USE CPU (GPU 2.4x slower)
║   • Heavy compute: USE GPU (31.6x faster)
║                                                            ║
║ GPU is optimal when:                                       ║
║   • Data stays on GPU (pipeline)                           ║
║   • Heavy compute per element (sin, cos, sqrt, etc.)       ║
║   • Multiple passes over same data                         ║
╚════════════════════════════════════════════════════════════╝
 
Nikolai Semko #:

спасибо! Значит нет влияния кэширования на результат. Видео карта стоимостью ~250 USD уделывает весьма нормальный современный процессор в 700 раз по вычислительной мощности.
Короче - всем срочно апгрейдить свои GPU. В том числе и мне :))
и пора переписывать канвас с поддержкой OpenCL

В 2D/3D, где попадаются перемножения матриц, переход на OpenCL понятен. Но в алготрейдинге - не вижу задач. Там основной инструмент - Тестер. Как может OpenCL помочь - не понимаю.


ЗЫ