Удалил ключ OpenCL перед запуском. Поведение не поменялось.
Т.е. при первом запуске эксперта с CLContextCreate(CL_USE_GPU_ONLY) выдаются вышеприведенные ошибки и эксперт не запускается. Со второго запуска лог инициализации OpenCL устройств больше не выводится, остается только ошибка в логе эксперта и EA не работает. При перезагрузке терминала эксперт с исправленной командой CLContextCreate(0) отрабатывает - появляется мегареалистичный морской пейзаж. При этом в логе инициализации те же ошибки performance test, а в логе эксперта тишина.
Ключ немного поменялся:
[HKEY_CURRENT_USER\Software\MetaQuotes Software]
до - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,6c,2a,09,a4,b3,d8,e2,3f
после - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,98,6b,19,ab,41,5c,fd,3f
В принципе, такое поведение не критично, если исправить эксперты/скрипты и обходить устройства, обращаясь к ним явно и проверяя признак CL_DEVICE_TYPE. Это даже имхо лучше, чтобы управляемо раздавать задачи на устройства со своим собственным рейтингом. Просто неприятен факт наличия ошибок инициализации. Кто знает как OpenCL дальше в бою поведет.
Помогите плз найти оригинальный Intel SDK for OpenCL Applications 2016 R2, чтобы кернелы писать и тестить. В Intel русским писать имхо бесполезно ;)
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, version10.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, version4.2.0.148, rating 21)
OpenCL device performance test started
OpenCL test compilation failed with error:
':9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled
:20:4: error: use of type 'double' requires cl_khr_fp64 extension to b
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, version10.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, version4.2.0.148, rating 21)
Scripts script Seascape (GBPUSD,H1) removed
У меня похожие ошибки, при том что год назад на более слабом планшете нормально все работало
OpenCL device #0: GPU Intel(R) Corporation Intel(R) HD Graphics 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version20.19.15.4364)
OpenCL device #1: CPU Intel(R) Corporation Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version5.2.0.10094)
OpenCL device performance test started
OpenCL test compilation failed with error: '1:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 1:20:4: error: use of type 'double' requires cl_khr_fp64 extensio
OpenCL device #0 performance test error: 'cannot create OpenCL program (5105)'
OpenCL test compilation failed with error: 'Compilation started 2:9:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:10:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:11:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:12:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:13:25: error: use of type 'double' requires cl_khr_fp64 extension to be enabled 2:20:4: error: use of type 'double' requires
OpenCL device #1 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 400 with OpenCL 1.2 (12 units, 600 MHz, 1598 Mb, version20.19.15.4364)
OpenCL device #1: CPU Intel(R) Corporation Intel(R) Atom(TM) x5-Z8550 CPU @ 1.44GHz with OpenCL 1.2 (4 units, 1440 MHz, 4016 Mb, version5.2.0.10094)
То, что на Атоме дает такую же ошибку про double, очень странно.
Так он тоже не поддерживает double
Странно само по себе требование со стороны терминала такой поддержки... у меня например в .cl файле вообще нет double и я не использую OpenCL для точных научных расчетов
Тем более, что это не старый Atom, а современный - с отдельным GPU
Никак не найду в сети официальную спецификациюIntel HD Graphics 4400 с информацией об отсутствии double precision, чтобы убедиться, что это не проблема драйвера.
Ренат, можете запустить мой вышеприведенный скрипт, чтобы определить поддерживает ли ваша IGP двойную точность?
Если да, то будет понятно почему у вас performance test проходил успешно.
Может тогда, попробовать вариант перед отправкой в OpenCL переводить на CPU mqlrates-массивы в int, умножая их на Digits? В два раза меньше расход памяти. А дальше векторами поиграть или на float'ах аккуратно на погрешность постараться не налететь. В принципе, точности индикаторов Digits+1 выше крыши должно хватить.
Datetime тоже можно легко в int перевести, если 1440 минут в дне в первые 12 бит зашить (ну ли в первые 2 байта), а в старшие биты дни. Выигрыша скорости int vs double должно хватить на покрытие накладных кастомных iTime-like функций в кернелах.
Сравнительный анализ видеокарт Intel HD Graphics 515 и Intel UHD Graphics 630 по всем известным характеристикам в категориях: Общая информация, Технические характеристики, Видеовыходы и порты, Совместимость, размеры, требования, Поддержка API, Память, Поддержка технологий. Анализ производительности видеокарт по бенчмаркам: PassMark - G2D Mark...
Удалил ключ OpenCL перед запуском. Поведение не поменялось.
Т.е. при первом запуске эксперта с CLContextCreate(CL_USE_GPU_ONLY) выдаются вышеприведенные ошибки и эксперт не запускается. Со второго запуска лог инициализации OpenCL устройств больше не выводится, остается только ошибка в логе эксперта и EA не работает. При перезагрузке терминала эксперт с исправленной командой CLContextCreate(0) отрабатывает - появляется мегареалистичный морской пейзаж. При этом в логе инициализации те же ошибки performance test, а в логе эксперта тишина.
Ключ немного поменялся:
[HKEY_CURRENT_USER\Software\MetaQuotes Software]
до - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,6c,2a,09,a4,b3,d8,e2,3f
после - "OpenCL"=hex:91,57,f4,f8,2e,0b,19,c5,e9,ef,30,dd,c9,a9,af,8c,00,00,00,00,00,00,00,00,58,f7,f7,28,88,c5,e1,77,3c,4c,f8,8a,4d,31,88,88,98,6b,19,ab,41,5c,fd,3f
В принципе, такое поведение не критично, если исправить эксперты/скрипты и обходить устройства, обращаясь к ним явно и проверяя признак CL_DEVICE_TYPE. Это даже имхо лучше, чтобы управляемо раздавать задачи на устройства со своим собственным рейтингом. Просто неприятен факт наличия ошибок инициализации. Кто знает как OpenCL дальше в бою поведет.
Помогите плз найти оригинальный Intel SDK for OpenCL Applications 2016 R2, чтобы кернелы писать и тестить. В Intel русским писать имхо бесполезно ;)
Может попробовать AMDшный SDK использовать?
Попробуйте обновиться на бету 2543
beta 2545, release 2560.
При любом первом запуске скрипта:
При запуске скрипта с CLContextCreate(CL_USE_GPU_ONLY):Seascape (GBPUSD,H1) OpenCL not found. Error=5114У меня похожие ошибки, при том что год назад на более слабом планшете нормально все работало
а теперь не работает даже это:с параметрами: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - результат: -1 с кодом ошибки: 5115
c параметрами: 0, 1 - результат положительный
beta 2545, release 2560.
При любом первом запуске скрипта:
При запуске скрипта с CLContextCreate(CL_USE_GPU_ONLY):У вас карта не поддерживает расчеты в double:
В финансовых расчетах нельзя применять float математику из-за громадных округлений и поэтому мы явно требуем наличия поддержки double вычислений.
Раньше мы позволяли активировать OpenCL без double, но это не имело смысла.
Теперь явно ограничиваем.
У меня похожие ошибки, при том что год назад на более слабом планшете нормально все работало
а теперь не работает даже это:с параметрами: CL_USE_ANY, CL_USE_CPU_ONLY, CL_USE_GPU_ONLY - результат: -1 с кодом ошибки: 5115
c параметрами: 0, 1 - результат положительный
То, что на Атоме дает такую же ошибку про double, очень странно.
Будем проверять.
То, что на Атоме дает такую же ошибку про double, очень странно.
Так он тоже не поддерживает double
Странно само по себе требование со стороны терминала такой поддержки... у меня например в .cl файле вообще нет double и я не использую OpenCL для точных научных расчетов
Тем более, что это не старый Atom, а современный - с отдельным GPU
У вас карта не поддерживает расчеты в double
Спросим у самого устройства:
Ответ из танка:
OpenCL device ext: cl_intel_accelerator cl_intel_advanced_motion_estimation cl_intel_ctz cl_intel_d3d11_nv12_media_sharing cl_intel_dx9_media_sharing cl_intel_motion_estimation cl_intel_simultaneous_sharing cl_intel_subgroups cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_d3d10_sharing cl_khr_d3d11_sharing cl_khr_depth_images cl_khr_dx9_media_sharing cl_khr_gl_depth_images cl_khr_gl_event cl_khr_gl_msaa_sharing cl_khr_gl_sharing cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_icd cl_khr_image2d_from_buffer cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_spir
Действительно, нет поддержки cl_khr_fp64
Никак не найду в сети официальную спецификацию Intel HD Graphics 4400 с информацией об отсутствии double precision, чтобы убедиться, что это не проблема драйвера.
Только если вот так - через левые бенчмарки определять есть ли FP64 в видеокарте:
https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_HD-Graphics-4400
Кстати, графический сопроцессор Рената также, похоже, без поддержки FP64:
https://askgeek.io/ru/gpus/vs/Intel_HD-Graphics-515-vs-Intel_UHD-Graphics-630
Ренат, можете запустить мой вышеприведенный скрипт, чтобы определить поддерживает ли ваша IGP двойную точность?
Если да, то будет понятно почему у вас performance test проходил успешно.
Может тогда, попробовать вариант перед отправкой в OpenCL переводить на CPU mqlrates-массивы в int, умножая их на Digits? В два раза меньше расход памяти. А дальше векторами поиграть или на float'ах аккуратно на погрешность постараться не налететь. В принципе, точности индикаторов Digits+1 выше крыши должно хватить.
Datetime тоже можно легко в int перевести, если 1440 минут в дне в первые 12 бит зашить (ну ли в первые 2 байта), а в старшие биты дни. Выигрыша скорости int vs double должно хватить на покрытие накладных кастомных iTime-like функций в кернелах.