OpenCL: testes internos de implementação em MQL5 - página 39

 
casinonsk: O segundo ainda está com carga 0.

E a terceira? Ou não há nenhum?

QE 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Contagem de inticadores = 16; Contagem de barras históricas = 144000; Contagem de passe = 480000

EF 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Resultado em Gpu MachResult==0.0 a 0 passe

Tenho a impressão de que o teste correu mal de alguma forma. Oh, e definir o passe de contagem para um valor mais baixo, 1280 é suficiente.

E onde estão os resultados comparativos CPU vs GPU?

 
joo:


No CountPass 262144, o condutor da placa de vídeo cai inconsciente. No entanto, ele sobe de novo imediatamente.

Descobri pelo método do Professor Tychkov que o CountPass não pode ser superior a 6628025 com CountBars 10, caso contrário o compilador MQL recusa-se a compilar e gera um erro:

inds' - secção global de variáveis é demasiado grande ParallelTester_00-01x.mq5 86 7

Quando o CountBars é mais pequeno, o compilador salta ainda mais valores horríveis de CountPas.

2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       Соunt inticators = 16; Count history bars = 10; Count pass = 6628025
2012.03.17 20:40:36     ParallelTester_00-01 x (EURUSD,H1)       GPU time = 717 ms

Oh, meu Deus!

Como é que o compilador MQL sabe que simplesmente não há memória suficiente na GPU (ou não há na GPU???)? - Parece que o condutor do cartão de vídeo se avaria por causa da falta de memória.


a Vladimir:

E porque devo dar a cada mosca a mesma matriz (o consumo de memória é directamente proporcional ao número de CountPass) ? - Deixe-os tirar dados de uma matriz comum.

 
joo:

a Vladimir:

Porque devo dar a cada mosca o mesmo conjunto (a memória é consumida em proporção directa ao número de CountPass) ? - Deixe-os tirar dados de uma matriz comum.

Eles já têm um conjunto comum de preços e indicadores.

E na matriz cujo comprimento é CountPass, existem não grelhas (um parâmetro optimizado). É individual para cada grelha.

--

... Mas eu gosto da forma como pensa. :)

 
joo:

Descobri pelo método do Professor Tychkov que o CountPass não pode ser superior a 6628025 com CountBars de 10, caso contrário o compilador MQL recusa-se a compilar e gera um erro:

inds' - secção global de variáveis é demasiado grande ParallelTester_00-01x.mq5 86 7

Quando o CountBars é mais pequeno, o compilador salta ainda mais valores horríveis de CountPas.

Oh, meu Deus!

Como é que o compilador MQL sabe que simplesmente não há memória suficiente na GPU (ou não há na GPU???)? - Parece que o condutor do cartão de vídeo se vai despistar devido à falta de memória.

А! Portanto, há um plus elementar no meu código (linha 82).

////////////float nets[sizeof(NETs)];   // Вот так было. В корне неправильно.
////////////float inds[sizeof(Inds)];  

////////////float nets[sizeof(NETs)/sizeof(float)];  // Вот так будет видно в чём была ошибка.
////////////float inds[sizeof(Inds)/sizeof(float)];  // И в принципе будет работать, хотя лучше...
// ...Вот так - правильно и понятно откуда ноги.
float nets[CountPass*CountInd];
float inds[CountInd*CountBars];  

Conserte-o e receba quase um quádruplo "impulso de memória" .....nasharoo....!! :)))))))))))))

// Faz-me sentir como o Pai Natal em momentos como este... ;)

 
MetaDriver:

// Em momentos como este sinto-me como o Pai Natal... ;)

// Se você é o Pai Natal, quem sou eu?... ;)
 
Estive a ver o fórum em língua inglesa dos cinco. um fio semelhante, mas a actividade e interesse demonstrados são incomparáveis com os do fórum em língua russa.
 
Mathemat:

E a terceira? Ou não há nenhum?

Parece que o teste correu mal de alguma forma. E definir o passe de contagem para um valor menor, 1280 é suficiente.

E onde estão os resultados comparativos sobre CPU vs GPU?

CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 OpenCL init OK!
IH 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Tempo GPU = 187 ms
FN 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Contagem de inticadores = 16; Contagem de barras históricas = 144000; Contagem de passe = 1280
CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Resultado no Gpu MachResult==0,92493 no passe 1190
 

Deve ter uma função MQL que devolve a temperatura da placa de vídeo. Caso contrário, é uma boa maneira de se queimar. Não por conta própria, por isso, por conta do cliente.

// Se não houver função MQL, terá de usar DLL, o que não é bom - o mercado está cortado e outros inconvenientes.

 
MetaDriver:

Deve ter uma função MQL que devolve a temperatura da placa de vídeo. Caso contrário, é uma boa maneira de se queimar. Não por si só, por isso do lado do cliente.
Deve também devolver a temperatura limite e abrandar os próprios cálculos ao aproximar-se da temperatura limite. Há diferentes placas gráficas e diferentes dissipações de calor.
 
MetaDriver:

Deve ter uma função MQL que devolve a temperatura da placa de vídeo. Caso contrário, é uma boa maneira de se queimar. Não por conta própria, mas pelo cliente.

// Se não houver função MQL, teremos de utilizar uma DLL, o que não é bom - o mercado está cortado e outros inconvenientes.

Os jogos de computador não se preocupam com a temperatura da GPU e carregam-na, e nada acontece - as placas gráficas funcionam. E nenhum jogador pensaria em pedir ao editor de jogos para abrandar o próprio FPS de modo a não estragar a GPU. Com os jogadores a analogia é directa - precisamos de velocidade, e a temperatura deve ser cuidada adicionalmente, se necessário (sistema de arrefecimento adicional).

Depois também precisa da temperatura da CPU com função MQL de retorno. Caso contrário, o processador será queimado.


FPS se for viável - porque não? - Não faria mal, é claro.