Вот что можно сделать с OpenCL прямо в терминале MetaTrader 5 без всяких DLL - страница 14

 
kaus_bonus:


если при регистрации выдал ошибку сайт,проверьте почту свою все равно. мне письмо в итоге пришло.

При регистрации пишет "Invalid format" при вводе любого вида пароля

вот ссылка, там 300мб, тянуть туда-сюда долго. возможно,заработает без кукисов.

http://registrationcenter-download.intel.com/akdlm/irc_nas/vcp/11058/intel_sdk_for_opencl_setup_6.3.0.1904.exe

Вытягивается, Спасибо!
 
После устрановки Intel SDK for OpenCL Applications появилось новое устройство
OpenCL  Device #0: CPU GenuineIntel  Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz with OpenCL 1.1 (8 units, 3510 MHz, 16301 Mb, version 2.0, rating 25)
OpenCL  Device #1: CPU Intel(R) Corporation  Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz with OpenCL 2.1 (8 units, 3500 MHz, 16301 Mb, version 6.3.0.1904)

Но ошибка осталась

OpenCL not found. Error code=5114
 
fxsaber:
После устрановки Intel SDK for OpenCL Applications появилось новое устройство

Но ошибка осталась

Кстати, добавились новые коды ошибок -  Ошибки времени выполнения

ERR_MATH_OVERFLOW

4019

При вычислении математической функции произошло переполнение


ERR_GLOBALVARIABLE_NOT_MODIFIED

4503

Не было модификаций глобальных переменных

ERR_GLOBALVARIABLE_CANNOTREAD

4504

Не удалось открыть и прочитать файл со значениями глобальных переменных

ERR_GLOBALVARIABLE_CANNOTWRITE

4505

Не удалось записать файл со значениями глобальных переменных


ERR_TRADE_CALC_FAILED

4758

Не удалось вычислить значение прибыли или маржи


ERR_STRING_ARRAY_ONLY

5063

Должен быть массив типа string


ERR_OPENCL_TOO_MANY_OBJECTS

5113

Превышено максимальное число OpenCL объектов

ERR_OPENCL_SELECTDEVICE

5114

Ошибка выбора OpenCL устройства

 
Rashid Umarov:

Кстати, добавились новые коды ошибок -  Ошибки времени выполнения

На хватает примеров, которые генерируют каждый тип ошибки.
 
Rashid Umarov:
Поправьте Справку на случай, когда входной параметр CLContextCreate задан не явно.
Документация по MQL5: Работа с OpenCL / CLContextCreate
Документация по MQL5: Работа с OpenCL / CLContextCreate
  • www.mql5.com
Работа с OpenCL / CLContextCreate - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Баг так до сих пор и не исправлен - интегрированные в процессоры Intel графические IGP не выбираются в контекст как единственный GPU-девайс с фильтром по типу устройства:

CLContextCreate(CL_USE_GPU_ONLY)
или
CLContextCreate()
Scripts script Seascape (GBPUSD,H1) loaded successfully
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 67)
OpenCL  device performance test started
OpenCL  device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL  device performance test finished with error(s)
OpenCL  device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 4400 with OpenCL 1.2 (20 units, 400 MHz, 1425 Mb, version 10.18.14.5117)
OpenCL  device #1: CPU Intel(R) Corporation Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 67)
Scripts script Seascape (GBPUSD,H1) removed

Забавно, что в этот же момент по Print выдается код другой ошибки:

Seascape (GBPUSD,H1)    OpenCL not found. Error=5114

Ежели задать девайс явно:

CLContextCreate(0)

или так

   long dCount = CLGetInfoInteger(0,CL_DEVICE_COUNT);
   for(int i = 0; i<dCount; i++)
     {
      int clCtx=CLContextCreate(i);

то усё работает - графический сопроцессор отрабатывает в поте лица, в т.ч. признается, что он таки графический:

0: Intel(R) HD Graphics 4400
OpenCL platform ver: OpenCL 1.2 
OpenCL platform profile: FULL_PROFILE
OpenCL device name: Intel(R) HD Graphics 4400
OpenCL device profile: FULL_PROFILE
OpenCL device ver: OpenCL 1.2 
OpenCL open c ver: OpenCL C 1.2 
OpenCL type: CL_DEVICE_GPU

Может ключевой буквой в этом случае согласно спецификации OpenCL 1.2 является device(s) ? Т.е. в обертку MQL5, вероятно, возвращается массив GPU-устройств, отфильтрованных по типу CL_DEVICE_TYPE_GPU, а не одно устройство?

Исправить бы на близкую к спецификации реализацию - отбирать в контекст все устройства данного типа и ввести еще одну функцию, аналогичную clGetContextInfo(,CL_CONTEXT_NUM_DEVICES,). Ведь у людей может быть ферма из нескольких GPU, выполняющих разного рода задачи.

UPD: есть еще 1 предположение - может проблема в том, что для IGP не определяется рейтинг и MQL5 не может выбрать самый крутой по рейтингу GPU-девайс?

Кстати, а по каким признакам определяется эта крутизна (рейтинг)?  Частота GPU * кол-во юнитов?

clCreateContextFromType
  • www.khronos.org
clCreateContextFromType. Create an OpenCL context from a device type that identifies the specific device(s) to use.
 
aim-1:

Баг так до сих пор и не исправлен - интегрированные в процессоры Intel графические IGP не выбираются в контекст как единственный GPU-девайс с фильтром по типу устройства:


Спасибо, сейчас разберемся.

Проверил на ноутбуке, отключив Nvidia:

device #0: GPU NVIDIA Corporation GeForce GTX 1050 Ti with Max-Q Design with OpenCL 1.2 (6 units, 1417 MHz, 4096 Mb, version 442.70, rating 101)
device #1: GPU Intel(R) Corporation Intel(R) UHD Graphics 630 with OpenCL 2.1 (24 units, 1200 MHz, 13014 Mb, version 26.20.100.7985, rating 73)

после отключения автоматически находит встроенное GPU и работает:

OpenCL.Seascape (GBPUSD,M30)    OpenCL: GPU device 'Intel(R) UHD Graphics 630' selected


Обратите внимание, что у вас версия интеловых драйверов  10.18.14.511, а у меня 26.20.100.7985

Рекомендую обновить все драйверы, поставить все апдейты на операционку и попробовать снова.
 
aim-1:

Баг так до сих пор и не исправлен - интегрированные в процессоры Intel графические IGP не выбираются в контекст как единственный GPU-девайс с фильтром по типу устройства:

Сделайте пожалуйста следующее:

  1. Закройте терминал
  2. Удалите значение OpenCL из ветки реестра "HKEY_CURRENT_USER\Software\MetaQuotes Software"
  3. Запустите терминал и тест


После этого проверьте лог терминала на ошибки OpenСL

Например:

OpenCL device N performance test error: 'error text'

или

OpenCL device N performance test failed


Вам следует проверить обновления вашего видеодрайвера от Intel

Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
Запуск платформы - Для продвинутых пользователей - Справка по MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 
Renat Fatkhullin:
 

Обратите внимание, что у вас версия интеловых драйверов  10.18.14.511, а у меня 26.20.100.7985

Рекомендую обновить все драйверы, поставить все апдейты на операционку и попробовать снова.

Спасибо за оперативность поддержки, Ренат!

Тема OpenCL, конечно, очень вкусная и мотивирует на MQL5 переезжать, тем более что добротного материала в Статьях на MQL5.com на эту тему уже предостаточно.

Обычная чистоплотность на тему апдейта перед комплейном естественно соблюдена. Сегодня всю ночь разбирался с дровами и SDK.

Дрова с сайта Intel для данного камня (IGP) установлены самые свежие (от 25.11.2019 при выпуске Q3'13, ваши дрова для вашего поколения CPU), т.е. и CPU и GPU поддерживаются. При этом CPU only runtime перед этим удален, реестр в ветках Khronos почищен.

Оригинального Intel SDK for OpenCL Applications 2016 R2, который последним поддерживал Windows 8.1 и GPU данного Intel 4th Generation Core CPUs, на сайте Intel уже нет. Если подскажете, где можно качнуть без вирусов, буду признателен.

Но и runtime должен нормально отрабатывать, что и происходит. GPU виден как по инфо-командам MQL5 (см. выше) при явном его выборе в CLContextCreate, так и по скорости работы EA SeaScape. Ошибок в журналы при этом также не выводит.

Попробую еще вашу ветку реестра вечером после работы дернуть и со спец. запуском поиграть, но имхо отсутствие присвоенного MQL5 рейтинга моему GPU есть причина его отсева по алгоритму конкурса красоты по фильтру CL_USE_GPU_ONLY.

 
aim-1:

Спасибо за оперативность поддержки, Ренат!

Тема OpenCL, конечно, очень вкусная и мотивирует на MQL5 переезжать, тем более что добротного материала в Статьях на MQL5.com на эту тему уже предостаточно.

Обычная чистоплотность на тему апдейта перед комплейном естественно соблюдена. Сегодня всю ночь разбирался с дровами и SDK.

Дрова с сайта Intel для данного камня (IGP) установлены самые свежие (от 25.11.2019 при выпуске Q3'13, ваши дрова для вашего поколения CPU), т.е. и CPU и GPU поддерживаются. При этом CPU only runtime перед этим удален, реестр в ветках Khronos почищен.

Оригинального Intel SDK for OpenCL Applications 2016 R2, который последним поддерживал Windows 8.1 и GPU данного Intel 4th Generation Core CPUs, на сайте Intel уже нет. Если подскажете, где можно качнуть без вирусов, буду признателен.

Но и runtime должен нормально отрабатывать, что и происходит. GPU виден как по инфо-командам MQL5 (см. выше) при явном его выборе в CLContextCreate, так и по скорости работы EA SeaScape.

Попробую еще вашу ветку реестра вечером после работы дернуть и со спец. запуском поиграть, но имхо отсутствие присвоенного MQL5 рейтинга моему GPU есть причина его отсева по алгоритму конкурса красоты по фильтру CL_USE_GPU_ONLY.

Со своей стороны тоже посмотрим и добавим больше логов.
Причина обращения: