OpenCL: testes internos de implementação em MQL5 - página 52
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Presumo que se quisermos passar uma matriz bidimensional/multidimensional com dados para a GPU, podemos usar a representação de dados sob a forma de uma estrutura e passar a estrutura?
Experimentei-o através de uma estrutura - funcionou! Eu próprio nunca teria adivinhado que passaria por matrizes multidimensionais desta forma :) Obrigado!
Anexei um pequeno exemplo, utilizando matrizes bidimensionais - funciona muito bem. O exemplo é um pouco torto - mas em geral demonstra bastante bem a possibilidade de tal perversão :)
PS: A sua UGA + OpenCL - não é emoção suficiente :) Como costumávamos viver - é terrível recordar...
PS: A sua UGA + OpenCL não é emoção nenhuma. :) Como costumávamos viver é sinistro recordar...
CL_DEVICE_ANY e CL_DEVICE_GPU obsoletos?
Será que CL_USE_ANY e CL_USE_GPU_ONLY são agora relevantes?
CL_DEVICE_ANY e CL_DEVICE_GPU obsoletos?
Será que CL_USE_ANY e CL_USE_GPU_ONLY são agora relevantes?
Sim.
Descoberto pelo método do Prof. Tychkov um misterioso dispositivo 1 no meu computador, que é mais rápido que o CL_USE_ANY e até mais rápido que o CL_USE_GPU_ONLY.
O que é isso? :O
Encontrei um misterioso dispositivo 1 no meu computador, utilizando o método do Professor Tychkov, que corre mais rápido que o CL_USE_ANY e até mais rápido que o CL_USE_GPU_ONLY.
O que é isso? :O
Estatísticas no quadro. Para todos os dispositivos. :)
CL_USE_ANY
2012.04.12 23:27:29 Struct_OpenCL (GBPUSD,H1) Diferença no cálculo entre GPY e CPY: 0.0
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.326
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) Tempo GPU = 141 ms
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) Tempo SPU = 187 ms
CL_USE_GPU_ONLY
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Diferença no cálculo entre GPY e CPY: 0.0
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.376
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Tempo GPU = 125 ms
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Tempo SPU = 172 ms
1
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Diferença no cálculo entre GPY e CPY: 0.0
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 2.397
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Tempo GPU = 78 ms
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Tempo SPU = 187 ms
Recomendo a todos que tentem da mesma forma que eu, é bem possível que encontrem um dispositivo mais rápido do que os gráficos discretos e indefesos. :D
PS. Suspeito que CL_USE_ANY e CL_USE_GPU_ONLY são o mesmo - cálculo no CPU, mas o dispositivo 1 é o meu GPU. É uma confusão elementar nas constantes padrão.
Recomendo a todos que mexam com ele como eu fiz, provavelmente encontrarão um dispositivo mais rápido do que os gráficos discretos inúteis. :D
PS. Suspeito que CL_USE_ANY e CL_USE_GPU_ONLY são a mesma coisa - é um cálculo de CPU, mas o dispositivo 1 é o meu GPU. É uma confusão elementar nas constantes padrão.
Eis o que eu li! Não estava na ajuda do terminal! Ajustou o código para reflectir estas alterações. Veja o que obtém. Tenho-o assim:
23:17:00 hora SPU = 1155 ms
23:17:01 Total de dispositivos OpenCL activados: 2
23:17:02 Hora GPU #0 = 249 ms
23:17:02 CPY/GPU #0 = 4,639
23:17:03 GPU #1 Tempo = 265 ms
23:17:03 CPY/GPU #1= 4.358
CPU: GenuineIntel Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz com OpenCL 1.1 (4 unidades, 2095 MHz, 5990 Mb, versão 2.0)
Tente usar esta estrutura, não funcionou para mim (suspeito que a segunda dimensão tem de ser um tamanho fixo, é por isso que não funcionou para mim):
E, por conveniência, uma função como esta para redimensionar ambas as dimensões: