1. a complicação dos algoritmos e a sobrecarga de memória devido à sua utilização
2. e quer ser capaz de compensar na fase de cópia.
Assim não tem de copiar 100000 elementos e depois fazer 998000 offsets.
3. mas devemos deixar a variante com offset, que temos agora, porque nos permite não copiar um e os mesmos dados muitas vezes, mas levá-los para uma nova tarefa de um tampão CL já existente com um novo offset.
1. não. Não gosto de perder tempo com cópias extra. Embora, se utilizarmos o flutuador, teremos de copiar para o espaço de qualquer maneira.
Haverá um artigo sobre OpenCL? Ainda não cheguei perto deste tópico na prática, mas seria muito interessante lê-lo em perspectiva. Ou pelo menos um par de exemplos de scripts na ajuda sobre como utilizá-lo. Não há informação suficiente para se dar a volta.
Consegui obter um aumento de velocidade x200x no meu cartão em comparação com um único núcleo de CPU.
2012.03.0423:01:32 ParallelTester_00-01 x (EURUSD,D1) CpuTime/GpuTime = 216.02923976608192012.03.0423:01:32 ParallelTester_00-01 x (EURUSD,D1) Result on Cpu МахResult==1.3431 at 819 pass
2012.03.0423:01:32 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0423:01:32 ParallelTester_00-01 x (EURUSD,D1) CPU time = 36941 ms
2012.03.0423:00:55 ParallelTester_00-01 x (EURUSD,D1) Result on Gpu МахResult==1.3431 at 819 pass
2012.03.0423:00:55 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0423:00:55 ParallelTester_00-01 x (EURUSD,D1) GPU time = 171 ms
2012.03.0423:00:55 ParallelTester_00-01 x (EURUSD,D1) OpenCL init OK!
Por favor, testar e publicar os resultados.
CPU: AuthenticAMD AMD Phenom(tm) II X6 1100 T Processor with OpenCL 1.1 (6 units, 3311 MHz, 16345 Mb, version2.0)
GPU: Advanced Micro Devices, Inc. Cayman with OpenCL 1.1 (20 units, 750 MHz, 1024 Mb, version CAL 1.4.1664 (VM))
Se o cartão não estiver a puxar memória, reduza o histórico (CountBars) ou o número de passes (CountPass), o que é menos desejável.
2012.03.0422:24:07 ParallelTester_00-01 x (EURUSD,D1) OpenCL init OK!
2012.03.0422:24:08 ParallelTester_00-01 x (EURUSD,D1) GPU time = 1513 ms
2012.03.0422:24:08 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0422:24:08 ParallelTester_00-01 x (EURUSD,D1) Result on Gpu МахResult==1.80839 at 1002 pass
2012.03.0422:24:52 ParallelTester_00-01 x (EURUSD,D1) CPU time = 44055 ms
2012.03.0422:24:52 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0422:24:52 ParallelTester_00-01 x (EURUSD,D1) Result on Cpu МахResult==1.80839 at 1002 pass
2012.03.0422:24:52 ParallelTester_00-01 x (EURUSD,D1) CpuTime/GpuTime = 29.11764705882353
2012.03.0423:23:30 ParallelTester_00-01 x (EURUSD,D1) CpuTime/GpuTime = 133.82857142857142012.03.0423:23:30 ParallelTester_00-01 x (EURUSD,D1) Result on Cpu МахResult==1.24101 at 1079 pass
2012.03.0423:23:30 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0423:23:30 ParallelTester_00-01 x (EURUSD,D1) CPU time = 18736 ms
2012.03.0423:23:11 ParallelTester_00-01 x (EURUSD,D1) Result on Gpu МахResult==1.24101 at 1079 pass
2012.03.0423:23:11 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0423:23:11 ParallelTester_00-01 x (EURUSD,D1) GPU time = 140 ms
2012.03.0423:23:11 ParallelTester_00-01 x (EURUSD,D1) OpenCL init OK!
2012.03.0423:21:47 Terminal CPU: GenuineIntel Intel(R) Core(TM) i7-2600 CPU @ 3.40 GHz with OpenCL 1.1 (8 units, 3392 MHz, 16366 Mb, version2.0)
2012.03.0423:21:47 Terminal GPU: Advanced Micro Devices, Inc. Barts with OpenCL 1.1 (14 units, 900 MHz, 1024 Mb, version CAL 1.4.1664 (VM))
O surpreendente é que num único núcleo o i7 é duas vezes mais rápido que o X6 1100T - em frequências comparáveis (o i7 é cerca de 3,8 GHz, o 1100T é 3,7). É compreensível que estes sejam tais cálculos, mas a diferença na velocidade da CPU numa linha baixa é monstruosa.
Mathemat: É espantoso que num único núcleo o i7 funcione 2 vezes mais rápido que o X6 1100T - a frequências comparáveis (o i7 é cerca de 3,8 GHz, o 1100T é 3,7). É compreensível que se trate de tal computação, mas a diferença na velocidade da CPU em roscas baixas é monstruosa.
Pensar muito, ler google.
Tenho andado a coçar a cabeça.
Ou eles têm o mais avançado mql-compilador-optimizador fixado por eles próprios e não nos dão, ou já não sei mais.
Não funciona dessa forma. "Eu não acredito!" (c) KSS.
E o mais provável é que tenham um codogerador optimizado para a Intel.
É um ultraje de qualquer forma! Vou queixar-me à ONU.
2012.03.0502:03:33 ParallelTester_00-01 x (EURUSD,D1) OpenCL init OK!
2012.03.0502:03:33 ParallelTester_00-01 x (EURUSD,D1) GPU time = 234 ms
2012.03.0502:03:33 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0502:03:33 ParallelTester_00-01 x (EURUSD,D1) Result on Gpu МахResult==1.03434 at 315 pass
2012.03.0502:04:01 ParallelTester_00-01 x (EURUSD,D1) CPU time = 27471 ms
2012.03.0502:04:01 ParallelTester_00-01 x (EURUSD,D1) Соunt inticators = 16; Count history bars = 144000; Count pass = 12802012.03.0502:04:01 ParallelTester_00-01 x (EURUSD,D1) Result on Cpu МахResult==1.03434 at 315 pass
2012.03.0502:04:01 ParallelTester_00-01 x (EURUSD,D1) CpuTime/GpuTime = 117.3974358974359
Tenho uma GeForce GT 440 com OpenCL 1.1 (2 unidades, 1660 MHz, 1024 Mb, versão 295.73) tempo de GPU = 1513 ms
Tenho a GeForce GT 520 com OpenCL 1.1 (1 unidades, 1620 MHz, 512 Mb, versão 285.62) tempo de GPU = 234 ms
Como é que isto é possível?
Aqui a GeForce GT 440 e aqui a GeForce GT 520 compararam especificações, a minha é por todos os parâmetros mais, mas o tempo de execução é 6,5 vezes mais.
Установи GeForce в свой ПК для максимальной производительности и разгони свою цифровую жизнь. Смотри потоковые HD фильмы и выводи фотографии высокого разрешения без задержек. Создай дома 3D кинотеатр с помощью Blu-Ray 3D™ и NVIDIA® GeForce®. Разгони свои любимые приложения и раздвинь границы возможностей интернет с новым поколением браузеров с...
Sim, acho que já percebi, não está satisfeito com
1. a complicação dos algoritmos e a sobrecarga de memória devido à sua utilização
2. e quer ser capaz de compensar na fase de cópia.
Assim não tem de copiar 100000 elementos e depois fazer 998000 offsets.
3. mas devemos deixar a variante com offset, que temos agora, porque nos permite não copiar um e os mesmos dados muitas vezes, mas levá-los para uma nova tarefa de um tampão CL já existente com um novo offset.
1. não. Não gosto de perder tempo com cópias extra. Embora, se utilizarmos o flutuador, teremos de copiar para o espaço de qualquer maneira.
2. Sim.
3. Sim.
Primeiras panquecas: https://www.mql5.com/ru/forum/138292/page7#601897
Boa. Impressionante. Deliciosas panquecas.
//---
Haverá um artigo sobre OpenCL? Ainda não cheguei perto deste tópico na prática, mas seria muito interessante lê-lo em perspectiva. Ou pelo menos um par de exemplos de scripts na ajuda sobre como utilizá-lo. Não há informação suficiente para se dar a volta.
Consegui obter um aumento de velocidade x200x no meu cartão em comparação com um único núcleo de CPU.
Por favor, testar e publicar os resultados.
Se o cartão não estiver a puxar memória, reduza o histórico (CountBars) ou o número de passes (CountPass), o que é menos desejável.
Reboque de testador multi-canal
O meu resultado, uma aceleração de 133 vezes:
É espantoso que num único núcleo o i7 funcione 2 vezes mais rápido que o X6 1100T - a frequências comparáveis (o i7 é cerca de 3,8 GHz, o 1100T é 3,7). É compreensível que se trate de tal computação, mas a diferença na velocidade da CPU em roscas baixas é monstruosa.
Pensar muito, ler google.
Tenho andado a coçar a cabeça.
Ou eles têm o mais avançado mql-compilador-optimizador fixado por eles próprios e não nos dão, ou já não sei mais.
Não funciona dessa forma. "Eu não acredito!" (c) KSS.
E o mais provável é que tenham um codogerador optimizado para a Intel.
É um ultraje de qualquer forma! Vou queixar-me à ONU.
Não consegui encontrar uma linha sobre o CPU nos registos por alguma razão.
Intel Celeron G530 2.4GHz
É aqui que não o obtenho:
Tenho uma GeForce GT 440 com OpenCL 1.1 (2 unidades, 1660 MHz, 1024 Mb, versão 295.73) tempo de GPU = 1513 ms
Tenho a GeForce GT 520 com OpenCL 1.1 (1 unidades, 1620 MHz, 512 Mb, versão 285.62) tempo de GPU = 234 ms
Como é que isto é possível?
Aqui a GeForce GT 440 e aqui a GeForce GT 520 compararam especificações, a minha é por todos os parâmetros mais, mas o tempo de execução é 6,5 vezes mais.