Новая версия платформы MetaTrader 5 build 5430: Улучшенные графики на движке Blend2D - страница 39

 
Stanislav Korotky # :

Вот такая простая вещь не компилируется в MQL5 (в отличие от C++).

Зачем тогда вводили неймспейсы?

Исправлено. Будет включено в следующую бета-версию.
 
Здравствуйте, на билде 5501 на некоторых ПК вот такая ошибка:

Журнал:

ONNX [ort_env]: CUDA failure 801: (null) ; GPU=-1 ; hostname=TP; file=E:\workspace\external\onnx\onnx-avx2\onnxruntime\onnxruntime\core\providers\cuda\cuda_execution_provider_info.cc ; line=142 ; expr=cudaGetDeviceCount(&num_devices);

Эксперт:

M(XAUUSD,H4) cannot create ONNX session (OrtStatus: 1 'E:\workspace\external\onnx\onnx-avx2\onnxruntime\onnxruntime\core\providers\cuda\cuda_execution_provider_info.cc:142 onnxruntime::CUDAExecutionProviderInfo::FromProviderOptions [ONNXRuntimeError] : 1 : FAIL : provider_options_utils.h:189 onnxruntime::Pro…'), inspect code 'Include\MAIN_Lib\ML\RUN_CAT.mqh' (1062:13)

Диска E у меня нет поэтому путь в ошибке не мой. (E:\workspace\external\onnx\****)

Ошибка возникает именно при OnnxCreateFromBuffer.
bool InitModelHandle(
   const uchar &model_[],
)
{
   long h = OnnxCreateFromBuffer(model_, ONNX_NO_CONVERSION);
}

Ошибки просто с OnnxCreate нету, с путем на модель.. но работоспособность такого метода я никогда не проверял.

Смена флага не помогает.

Видео карта NVIDIA 3060.

Буду рад любой помощи, спасибо!
 
Gennady Sergienko #:
cannot create ONNX session

Если перестало работать то, что работало - onnx в билде 5501 обновился впервые с ноября, с версии 5395.

Я не работал с onnx в MT5, и для меня сюрприз, что он работает с cuda. Я думал, он тут работает только с CPU, поэтому я его игнорировал. Подтвердите, пожалуйста, и дайте ссылку на форуме об этом.
 
Aleksei Kuznetsov # :

Баг.
Если провести оптимизацию с форвардом, то при экспорте экспортируются 2 файла: бектеста и форвард теста. Ожидаемое поведение.

Если потом сделать оптимизацию без форварда,


то при экспорте логично экспортировать один файл, но в дополнение к нему экспортируется еще и последний форвард.

Удаляю из папки все файлы,


экспортирую и получаю в ней 2 файла.


Причем видно, что форвард файл был создан на 2+ часа раньше и хэш другой. Теоретически может быть и 2 месяца и даже года... если редко форвардом пользуешься. Хорошо бы экспортировать 1 файл, если не было в тесте форварда.

Исправлено в сборке 5505.
 

Здесь многие работают с ONNX. Неужели никто не подтвердит вопрос с CUDA?

Уверен, что в MT5 не реализовано, но прилагаемые в комплекте onnxruntime.dll, onnxruntime_providers_cuda.dll, onnxruntime_providers_shared.dll стандартны и должны работать с GPU. Понятно, что нейросетевые модели маленькие и CPU+RAM вывозят. Но с GPU можно было бы нативно работать с LLM.

Те, кто занимаются LLM, и так обходятся, но это же надо внешний сервер поднимать.

 
Edgar Akhmadeev #:

Здесь многие работают с ONNX. Неужели никто не подтвердит вопрос с CUDA?

Уверен, что в MT5 не реализовано, но прилагаемые в комплекте onnxruntime.dll, onnxruntime_providers_cuda.dll, onnxruntime_providers_shared.dll стандартны и должны работать с GPU. Понятно, что нейросетевые модели маленькие и CPU+RAM вывозят. Но с GPU можно было бы нативно работать с LLM.

Те, кто занимаются LLM, и так обходятся, но это же надо внешний сервер поднимать.

В чем вопрос - не понятно. Я не особо в теме, но имхо GPU однозначно поддерживались и рекомендовались в противовес CPU. Вот была какая-то статья, например. Зачем нужны указанные dll и где их взять - не в курсе ;-). На релизных билдах мне такие не ставятся (поправочка - нашел стандартные от MS в системной папке).

PS. GPU еще ведь разные бывают - под OpenCL, а не под CUDA.

Использование ONNX-моделей в MQL5
Использование ONNX-моделей в MQL5
  • 2023.03.28
  • www.mql5.com
ONNX (Open Neural Network Exchange) — открытый стандарт представления моделей нейронных сетей. В данной статье мы рассмотрим процесс создания модели СNN-LSTM для прогнозирования финансовых временных рядов и использование созданной ONNX-модели в MQL5-эксперте.
 
Stanislav Korotky #:
Вот была какая-то статья, например.
В статье говорилось о поддержке CUDA питоновской библиотекой. С этим у Питона нет проблем (есть). А я спрашивал о нативной поддержке ONNX через провайдер CUDA в MT5. В документации и в других постах заявлена только поддержка CPU. Но 
Gennady Sergienko

поднял тему, которая вроде намекает. Но на просьбу уточнить - не ответил. Да ещё и наличие в комплекте onnxruntime_providers_cuda.dll навевает. То ли для кучи добавили. То ли реализовали, но не документировали. То ли готовятся к.

Stanislav Korotky #:
Зачем нужны указанные dll и где их взять - не в курсе ;-). На релизных билдах мне такие не ставятся (поправочка - нашел стандартные от MS в системной папке).

Не в системной. Они ставятся дистрибутивом MT5 в их папку C:\ProgramData\MetaQuotes\ML\

Stanislav Korotky #:
GPU еще ведь разные бывают - под OpenCL, а не под CUDA.

А ещё ROCm, Vulkan. Но я-то спрашиваю о CUDA, потому что у меня RTX 3060.

Когда я задавал вопрос, надеялся на тех, кто с этим сталкивался. Теоретически можно рассуждать бесконечно. Я в ONNX не разбираюсь, потому что его поддержка в MT5 заявлена ограниченной. Использую внешний сервер.

 
Edgar Akhmadeev #:

Не в системной. Они ставятся дистрибутивом MT5 в их папку C:\ProgramData\MetaQuotes\ML\

У меня нет такой папки - C:\ProgramData\MetaQuotes\ML\.

Дистрибутив (имеется в виду программа setup, которая не дистрибутив а скачивальщик всего остального?) давно не запускал, использую только апдейты.

 
Edgar Akhmadeev #:

Но я-то спрашиваю о CUDA, потому что у меня RTX 3060.

А в чем особый смысл именно CUDA, если Nvidia также поддерживает OpenCL? Думаете, производительность заметно повысится?
 
Stanislav Korotky #:

У меня нет такой папки - C:\ProgramData\MetaQuotes\ML\.

Дистрибутив (имеется в виду программа setup, которая не дистрибутив а скачивальщик всего остального?) давно не запускал, использую только апдейты.

Апдейты из терминала подкачивают эти dll при их обновлении (редко). Большинство людей, которые архивируют билды, сохраняют только exe, к тому же многие запускают в портативном режиме. Возможно, из-за этого у Вас не было этой папки. Однако в билде 5501 они как раз обновились впервые за 2 месяца. Думаю, если бы Вы работали с ONNX, заметили бы их отсутствие ))

Stanislav Korotky #:
А в чем особый смысл именно CUDA, если Nvidia также поддерживает OpenCL? Думаете, производительность заметно повысится?

OpenCL не имеет отношения к запуску ИИ-моделей. Используются CUDA для NV, ROCm для топовых AMD, VULKAN - универсальный для очень старых NV, для большинства AMD и для Intel, но медленнее. Ну и экзотика для других процов.