Новая версия платформы MetaTrader 5 build 6180: больше ИИ-функций - страница 4

 

Столкнулся с проблемой вычисления ONNX на CUDA. На CPU вычисляется правильно, на CUDA совершенно другие значения и не те.

У меня терминал 6182.

В советнике используется одновременно две сессии ONNX с разными ONNX файлами.

Я собрал скрипт, который воспроизводит проблему и выводит ее в логи. Он запускает сначала две сессии ONNX на CPU  и выдает результат 

CPU / UP: handle=4991810717346184988 RESULT=0.475384235382080

CPU / DOWN: handle=4991810713051217692 RESULT=0.452723175287247

CPU FINAL: UP=0.475384235382080 | DOWN=0.452723175287247

Затем запускает две сессии на CUDA и выдает результат

CUDA / UP: handle=4991810708756250396 RESULT=0.561351478099823

CUDA / DOWN: handle=4991810704461283100 RESULT=0.561351478099823

CUDA FINAL: UP=0.561351478099823 | DOWN=0.561351478099823


То есть результат на CUDA и не верный и одинаковый для UP.ONNX и DOWN.ONNX, хотя это две разных модели.

Я проверял результаты на питоновском скрипте с этими моделями и они выдают нормальные результаты на cuda и cpu

============================================================
CPU
============================================================
UP.ONNX: actual providers = ['CPUExecutionProvider']
DOWN.ONNX: actual providers = ['CPUExecutionProvider']
UP providers  : ['CPUExecutionProvider']
DOWN providers: ['CPUExecutionProvider']
UP   = 0.475384235382080
DOWN = 0.452723175287247

============================================================
CUDA
============================================================
UP.ONNX: actual providers = ['CUDAExecutionProvider', 'CPUExecutionProvider']
DOWN.ONNX: actual providers = ['CUDAExecutionProvider', 'CPUExecutionProvider']
UP providers  : ['CUDAExecutionProvider', 'CPUExecutionProvider']
DOWN providers: ['CUDAExecutionProvider', 'CPUExecutionProvider']
UP   = 0.475393474102020
DOWN = 0.452721863985062

Причем питоновский скрипт выдает на CPU в точности такой-же результат как и Metatrader. И питоновский скрипт выдает точно верные значение, они проверены.

Я прикрепил скрипт для воспроизведения результата (ONNX bug.mq5), csv файл со строкой (string.zip), лог (20260910.zip), и один файл ONNX (UP.zip). Второй файл прикреплю в следующем сообщении, они по 10 мегабайт.

Файлы:
ONNX_bug.mq5  10 kb
string.zip  38 kb
20260910.zip  20 kb
UP.zip  10292 kb
 
Maxim Romanov #:

Столкнулся с проблемой вычисления ONNX на CUDA. На CPU вычисляется правильно, на CUDA совершенно другие значения и не те.

У меня терминал 6182.

В советнике используется одновременно две сессии ONNX с разными ONNX файлами.

Я собрал скрипт, который воспроизводит проблему и выводит ее в логи. Он запускает сначала две сессии ONNX на CPU  и выдает результат 

Затем запускает две сессии на CUDA и выдает результат


То есть результат на CUDA и не верный и одинаковый для UP.ONNX и DOWN.ONNX, хотя это две разных модели.

Я проверял результаты на питоновском скрипте с этими моделями и они выдают нормальные результаты на cuda и cpu

Причем питоновский скрипт выдает на CPU в точности такой-же результат как и Metatrader. И питоновский скрипт выдает точно верные значение, они проверены.

Я прикрепил скрипт для воспроизведения результата (ONNX bug.mq5), csv файл со строкой (string.zip), лог (20260910.zip), и один файл ONNX (UP.zip). Второй файл прикреплю в следующем сообщении, они по 10 мегабайт.

Тут прикрепииил второй ONNX файл (DOWN.zip). 
система
Windows 11 build 26200, 32 x AMD Ryzen 9 7945HX with Radeon, AVX2, 51 / 63 Gb memory, 457 / 1861 Gb disk, touchable, UAC, GMT+2

2026.09.10 16:06:24.409 OpenCL device #0: GPU 'NVIDIA GeForce RTX 4080 Laptop GPU' with OpenCL 3.0 (58 units, 2010 MHz, 12281 Mb, version 610.47, rating 26284)

Скрипт загружает csv файл и ONNX модели из Common\Files
Файлы:
DOWN.zip  10288 kb
 
Спасибо, разберемся.
 

Вроде как предыдущие версии DeepSeek должны перенаправляться на новую 4.1

Будет качественный сдвиг в программмировании


 
Maxim Romanov #:

Столкнулся с проблемой вычисления ONNX на CUDA. На CPU вычисляется правильно, на CUDA совершенно другие значения и не те.

У меня терминал 6182.

Спасибо за найденную ошибку.

Исправили в бете 6191, которая доступна на MetaQuotes-Demo и через Live Update.