Eis o que você pode fazer com OpenCL diretamente no MetaTrader 5 sem DLLs - página 14

 
kaus_bonus:


Se você receber um erro ao registrar-se, verifique seu e-mail de qualquer maneira.

Ao registrar-se diz "Formato inválido" ao digitar qualquer tipo de senha

aqui está o link, são 300mb, leva muito tempo para arrastar e soltar. pode funcionar sem cookies.

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

Está se retirando, obrigado!
 
Depois de remover o Intel SDK para aplicações OpenCL, um novo dispositivo apareceu
OpenCL  Device #0:  CPU GenuineIntel  Intel(R) Core(TM) i7-2700 K CPU @ 3.50 GHz 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-2700 K CPU @ 3.50 GHz with OpenCL 2.1 (8 units, 3500 MHz, 16301 Mb, version 6.3.0.1904)

Mas o erro permanece

OpenCL not found. Error code=5114
 
fxsaber:
Depois de instalar o Intel SDK para aplicações OpenCL, há um novo dispositivo

Mas o erro permanece

A propósito, novos códigos de erro foram adicionados - Erros de tempo de execução

ERR_MATH_OVERFLOW

4019

Ocorreu um transbordo durante o cálculo de uma função matemática


ERR_GLOBALVARIABLE_NOT_MODIFIED

4503

Nenhuma modificação variável global foi feita

ERR_GLOBALVARIABLE_CANNOTREAD

4504

Falha em abrir e ler arquivo com valores variáveis globais

ERR_GLOBALVARIABLE_CANNOTWRITE

4505

Falha em escrever arquivo com valores variáveis globais


ERR_TRADE_CALC_FAILED

4758

Falha no cálculo de lucro ou margem


ERR_STRING_ARRAY_ONLY

5063

Deve ser um conjunto de caracteres do tipo


ERR_OPENCLO_TOO_MANY_OBJECTS

5113

Número máximo de objetos OpenCL excedidos

ERR_OPENCL_SELECTDEVICE

5114

Erro de seleção do dispositivo OpenCL

 
Rashid Umarov:

A propósito, novos códigos de erro foram adicionados - Erros de tempo de execução

Não há exemplos suficientes que gerem cada tipo de erro.
 
Rashid Umarov:
Corrija a Ajuda para o caso em que o parâmetro de entrada CLContextCreate não esteja definido explicitamente.
Документация по MQL5: Работа с OpenCL / CLContextCreate
Документация по MQL5: Работа с OpenCL / CLContextCreate
  • www.mql5.com
Работа с OpenCL / CLContextCreate - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

O bug ainda não foi corrigido - os IGPs gráficos integrados ao processadorda Intel não são selecionados no contexto como o único dispositivo GPU com um filtro por tipo de dispositivo:

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-4500 U CPU @ 1.80 GHz 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-4500 U CPU @ 1.80 GHz with OpenCL 1.2 (4 units, 1800 MHz, 8087 Mb, version 4.2.0.148, rating 67)
Scripts script Seascape (GBPUSD,H1) removed

Curiosamente, no mesmo ponto, a impressão dá um código de erro diferente:

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

Se você definir o dispositivo explicitamente:

CLContextCreate(0)

ou como este

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

então tudo funciona - o coprocessador gráfico transpira, inclusive admitindo que é um coprocessador gráfico:

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

Talvez a letra chave neste caso, de acordo com a especificação OpenCL 1.2, seja dispositivo(s)? Ou seja, a embalagem MQL5 provavelmente retornará uma matriz de dispositivos GPU filtrados pelo tipoCL_DEVICE_TYPE_GPU em vez de um único dispositivo?

Devemos nos fixar a uma implementação próxima da especificação - selecionar todos os dispositivos do tipo dado no contexto e introduzir mais uma função semelhante aclGetContextInfo(,CL_CONTEXT_NUM_DEVICES,). Afinal de contas, as pessoas podem ter uma fazenda de várias GPUs fazendo diferentes tipos de tarefas.

UPD: Tenho mais uma sugestão - talvez o problema seja que nenhuma classificação é definida para um IGP e a MQL5 não pode escolher o dispositivo GPU com a classificação mais alta?

A propósito, qual é o critério utilizado para determinar essa frieza (classificação)? freqüência da GPU * número de unidades?

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

O bug ainda não foi corrigido - os IGPs gráficos integrados ao processadorIntel não são selecionados no contexto como o único dispositivo GPU com um filtro por tipo de dispositivo:


Obrigada, vamos descobrir isso agora.

Verificado no laptop ao desativar o 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)

Depois de desativada, ela encontra automaticamente a GPU embutida e funciona:

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


Note que sua versão dos drivers Intel é 10.18.14.511 e a minha é 26.20.100.7985

Recomendo que você atualize todos os drivers, coloque todas as atualizações do sistema operacional e tente novamente.
 
aim-1:

O bug ainda não foi corrigido - os IGPs gráficos integrados ao processadorIntel não são selecionados no contexto como um único dispositivo GPU com um filtro do tipo dispositivo:

Por favor, faça o seguinte:

  1. Feche o Terminal
  2. Remover OpenCL da colmeia de registro "HKEY_CURRENT_USER\Software\MetaQuotes Software".
  3. Iniciar o terminal e testar


Depois disso, verificar o log de terminal para erros de OpenCL

Por exemplo:

Erro no teste de desempenho do dispositivo N OpenCL: 'texto de erro'

ou

O teste de desempenho do dispositivo OpenCL N falhou


Você deve verificar se há atualizações de seu driver de vídeo Intel

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

Observe que sua versão dos drivers Intel é 10.18.14.511 e a minha é 26.20.100.7985

Recomendo atualizar todos os drivers, colocar todas as atualizações do sistema operacional e tentar novamente.

Obrigado pelo pronto apoio, Renat!

É claro que o assunto OpenCL é muito saboroso e me motiva a ir à MQL5, especialmente porque já há muito material bom sobre este tópico nos Artigos da MQL5.com.

A habitual limpeza a respeito de atualizações antes do cumprimento foi observada, é claro. Hoje passei a noite inteira tentando descobrir os motoristas e o SDK.

O site da Intel para esta pedra (IGP) instalou o mais recente (a partir de 25.11.2019 no lançamento do terceiro trimestre de 2009, seus drivers de geração de CPU), ou seja, tanto CPU quanto GPU são suportados. A CPU só foi retirada antes, o registro nas filiais do Khronos foi limpo.

O Intel SDK original para aplicações OpenCL 2016 R2 que suportaram o Windows 8.1 e GPUs desta CPU Intel de 4ª geração não está mais disponível no site da Intel. Se você souber onde posso fazer o download sem vírus, eu gostaria muito.

Mas o tempo de execução também deve funcionar bem, o que funciona. A GPU é visível tanto através dos comandos info MQL5 (veja acima) ao selecioná-la explicitamente no CLContextCreate como através da velocidade EA SeaScape. Também não são exibidos erros nos registros.

Vou tentar abrir sua filial de registro mais tarde à noite depois do trabalho e usar uma inicialização especial para brincar com ela, mas a ausência da classificação MQL5 atribuída à minha GPU é o motivo de sua eliminação de acordo com o algoritmo do concurso de beleza do filtro CL_USE_GPU_ONLY.

 
aim-1:

Obrigado por seu pronto apoio, Renat!

Naturalmente, o tópico OpenCL é muito saboroso e me motiva a ir à MQL5, especialmente porque já há muito material bom sobre este tópico nos Artigos da MQL5.com.

A habitual limpeza a respeito de atualizações antes da Cumpline foi observada, é claro. Hoje passei a noite inteira tentando descobrir os motoristas e o SDK.

O site da Intel para esta pedra (IGP) instalou o mais recente (a partir de 25.11.2019 no lançamento do terceiro trimestre de 2009, seus drivers de geração de CPU), ou seja, tanto CPU quanto GPU são suportados. A CPU só foi retirada antes, o registro nas filiais do Khronos foi limpo.

O Intel SDK original para aplicações OpenCL 2016 R2 que suportaram o Windows 8.1 e GPUs desta CPU Intel de 4ª geração não está mais disponível no site da Intel. Se você souber onde posso fazer o download sem vírus, eu gostaria muito.

Mas o tempo de execução também deve funcionar bem, o que funciona. A GPU é visível tanto através dos comandos info MQL5 (veja acima) ao selecioná-la explicitamente no CLContextCreate quanto através da velocidade do EA SeaScape.

Vou tentar abrir sua filial de registro mais tarde à noite depois do trabalho e usar uma inicialização especial para jogar, mas imho a ausência da minha classificação GPU atribuída pela MQL5 é o motivo de sua eliminação de acordo com o algoritmo do concurso de beleza através do filtro CL_USE_GPU_ONLY.

De nossa parte, também daremos uma olhada e acrescentaremos mais logs.