Новая версия платформы MetaTrader 5 build 3620: улучшения веб-терминала, поддержка ONNX и ускоренное умножение матриц в MQL5 - страница 9

 

MetaQuotes:

MQL5: Добавлена поддержка нового алгоритма умножения матриц General Matrix Multiplication (GeMM). Он позволяет значительно ускорить вычисления на большинстве процессоров за счет распараллеливания задач и более правильного использования кэшей L1/L2/L3. Скорость вычисления при этом сравнима с такими известными пакетами, как Math Kernel Library (MKL) и OpenBLAS. В ближайшее время мы опубликуем подробные сравнительные тесты.

Новый алгоритм на данный момент поддерживается в методе matrix::GeMM. Если ваш процессор поддерживает инструкции AVX и FMA (большинство процессоров, выпущенных после 2013 года), алгоритм будет задействован автоматически.


Подскажите пожалуйста, процессор должен обязательно поддерживать две инструкции AVX и FMA  ?
Мой процессор i7-3770k хоть и старенький, но оказалось что поддерживает AVX.
Затестил в рабочем коде метод GeMM ускорения не было совсем, наоборот замедление по отношению к методу MatMul.   

 
Roman #:


Подскажите пожалуйста, процессор должен обязательно поддерживать две инструкции AVX и FMA  ?
Мой процессор i7-3770k хоть и старенький, но оказалось что поддерживает AVX.
Затестил метод GeMM ускорения не было совсем, наоборот замедление по отношению к методу MatMul.   

Посмотрите набор инструкций утилитой CpuInfo. Скорее всего FMA нет.

Еще проверьте наличие AVX в стартовом баннере терминала на старте: используется оптимизированная под AVX версия терминала или упрощенная без этого набора команд

....-Core, AVX, ....


При тестировании таких функций надо обязательно сообщать размеры матриц, иначе легко получить неправильный вывод, проверяя расходы на перемножениях маленьких матриц типа 8х8.

В общем случае, в матричной математике процам старее 5 лет не место. И пусть показатели и близость гигагерцев тогда и сегодня не обманывают. Векторные инструкции, кеши, скорость памяти и IPC совершенно другие, что дает многократную разницу с вроде бы близкими частотами старых процессоров.

 
Renat Fatkhullin #:

Посмотрите набор инструкций утилитой CpuInfo. Скорее всего FMA нет.

Еще проверьте наличие AVX в стартовом баннере терминала на старте: используется оптимизированная под AVX версия терминала или упрощенная без этого набора команд


При тестировании таких функций надо обязательно сообщать размеры матриц, иначе легко получить неправильный вывод, проверяя расходы на перемножениях маленьких матриц типа 8х8.

В общем случае, в матричной математике процам старее 5 лет не место. И пусть показатели и близость гигагерцев тогда и сегодня не обманывают. Векторные инструкции, кеши, скорость памяти и IPC совершенно другие, что дает многократную разницу с вроде бы близкими частотами старых процессоров.

AVX есть, FMA нет.
Про это и был вопрос обязательно нужна поддержка обеих инструкций AVX и FMA ?

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 3620: улучшения веб-терминала, поддержка ONNX и ускоренное умножение матриц в MQL5

fxsaber, 2023.03.04 08:09

В Тестере нажатие на кнопку Старт ничего не вызывает. Все Агенты ready, в логах пусто, даже кратковременного переключения Старт->Стоп не происходит.

Просьба посмотреть по коду, какая гипотетическая ситуация может вызывать подобное. И сделать, чтобы всегда при нажатии хоть что-то выводилось в лог для возможности анализа.


В обоих случаях помогала перезагрузка Терминала.

b3620. Снова нарываюсь на это же поведение. Прошу разработчиков сообщить, что мне сделать (memory dump или что-то еще), когда в очередной раз столкнусь с этим недугом?

 
JRandomTrader #:

Аварийным завершением может быть и BSOD, и пропадание питания.

Совершенно верно! Именно поэтому профили можно и нужно использовать для резервоного сохранения раскладки чартов на как на случай сбоевс ОС, так и на случай сбоев при обновлении.

Однако для полноценной автоматизации сохраения резервного профиля по расписанию нужна программная функция. Тогда такую вполне можно будет разместить в советнике, исполняюшим функции бэк-офсиной системы, вызывать с заданной переодичностью и раз и навсегда решить вопрос с наличием актуальных резервных копий профиля. Сейчас мне например приходится вручную сохранять резервные профили в 15ть терминалах перед каждой перезагрузкой сервера и/или обновленем терминала, что конечно немного напрягает.

Большая просьбе разработчиков включить в след. релиз терминала реализацию функции сохранения профиля.

 
Gladiator WXT #:

Большая просьбе разработчиков включить в след. релиз терминала реализацию функции сохранения профиля.

tpl (шаблон) и chr (единица профиля) форматы совпадают. Нет технических ограничений написать сохранение и загрузку профиля в виде Сервиса.

 
Ilyas #:

Спасибо, проверим

Здравствуйте, Ilyas.

Ошибку с отчётом тестера посмотрите пожалуйста. Писал в прошлой ветке.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления

Andrey Kaunov, 2023.03.06 20:36

Коллеги, объясните пожалуйста как считает тестер стратегий свой отчёт (версия 3550).

Если убыточных трейдов два, и самый большой -12.46, то откуда Средний убыточный трейд -17.67, и общий убыток -35.33 ?

Причём, по истории сделок самый большой убыток есть

А второй убыток, вот такой -1.59

Архив отчёта прилагаю.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления

Andrey Kaunov, 2023.03.07 07:30

Вот .tst файл.

Но среднее значение никак не может быть больше самого большого. А у меня почти на каждом прогоне такое вылезает

Ну и так далее...

Да, действительно, так и выходит, что он общий убыток (включая DEAL_ENTRY_IN сделки с комиссией) делит на два убыточных трейда, это же косяк какой то в расчётах.  DEAL_ENTRY_IN сделки с комиссией вообще не должны учитываться.


P.S. Только сейчас дошло, что и убыточную сделку он неправильно считает. Он учитывает только комиссию за закрытие, а комиссия за открытие не учитывается

Возможно и в прибыльных трейдах учитывается только одна комиссия, сейчас проверю.

P.P.S. Ну соответственно да, и в расчёте самой прибыльной сделки считает только одну комиссию. В отчёте она 19.10



 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 3550: улучшения и исправления

fxsaber, 2023.03.02 07:04

Спасибо, что посмотрели. Я обновил терминал до b3589, и ситуация разного поведения повторилась.
#define SIZE 74

double OnTesterValue = 0;
double OnTester() { return(SIZE); }

void OnTick()
{
  static const double Array[SIZE] = {};
     
  for (int j = 0; j < 74 * 75 * 10 / SIZE; j++)
    for (int i = 0; i < SIZE; i++)
      OnTesterValue += Array[i];
}
OnTester result 74
EURCAD,M1: 192394 ticks, 1440 bars generated. Environment synchronized in 0:00:00.019. Test passed in 0:00:00.251 (including ticks preprocessing 0:00:00.016).
OnTester result 75
EURCAD,M1: 192394 ticks, 1440 bars generated. Environment synchronized in 0:00:00.035. Test passed in 0:00:08.814.


Настройки компилятора.

b3624 - актуально.

 

Под Windows 11 (лицензионная) вообще не звучат некоторые звуковые файлы, идущие в комплекте, а некоторые выдают лишь какой-то жалкий щелчок.

Причём такое же явление наблюдается в "Четвёрке".

Впрочем, не звучат они и в проигрывателе типа VLC.

 
fxsaber #:

b3620. Снова нарываюсь на это же поведение. Прошу разработчиков сообщить, что мне сделать (memory dump или что-то еще), когда в очередной раз столкнусь с этим недугом?

Повторяю вопрос.

Вот такое в конце лога Агента.

CS      0       08:06:24.467    127.0.0.1       login (build 3621)
CS      0       08:06:24.489    127.0.0.1       tester forced to stop
CS      0       08:11:52.424    Server  MetaTester 5 stopped
После этого Старт не нажимается. Нигде ничего не пишется. Происходит несколько раз в день. Приходится перегружать Терминал - временно помогает.
Причина обращения: