OpenCL: testes internos de implementação em MQL5 - página 20
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Os códigos serão adicionados:
Os códigos serão adicionados:
Obrigado, então o que falta é uma função para verificar a validade do punho.
Só aceitamos das funções CL o valor do ponteiro, não o ponteiro em si, pelo que o armazenamento do ponteiro em locais diferentes causará uma situação de tentar remover um processo inválido (seja ele contexto, tampão, programa ou núcleo).
função requerida:
E também é necessário obter programmaticamente o tamanho da memória do dispositivo, porque as visões têm menos memória do que as CPU, enquanto todos os contextos simultaneamente existentes utilizam a mesma memória.
Seria bom obter a temperatura da placa (e do CPU também) por meios mql padrão, a fim de dosear a carga.
// Porque tenho andado um pouco agitado... :)
A obtenção das propriedades dos objectos OpenCL será em breve.
Será também organizado um controlo do manuseamento.
1. não há nenhuma funcionalidade no OpenCL para obter a temperatura e carga da GPU.
2. As propriedades de busca de objectos OpenCL estarão disponíveis em breve.
3. a verificação do manuseamento será também organizada.
1. eu sei. Não tem de ser através do OpenCL, tem de ser através do sistema. A ideia é apenas tornar a funcionalidade nativa (sem chamadas DLL de programas mql5).
Aqui estão algumas funções excelentes:
TerminalInfoInteger
Devolve um valor inteiro de uma propriedade ambiental correspondente de um programa mql5.
TerminalInfoString
Retorna um valor de string de uma propriedade de ambiente correspondente de um programa mql5
MQL5InfoInteger
Retorna um valor do tipo inteiro de uma propriedade correspondente de um programa mql5 em execução
MQL5InfoString
Devolve um valor de tipo string de uma propriedade correspondente de um programa de mql5 lançado
Seria bom e lógico acrescentar:
SystemInfoInteger e portanto
SystemInfoString
que dá acesso a toda a informação necessária sobre o ambiente do sistema: número de núcleos, nome e tamanho do sistema operativo, quantidade de memória (total), quantidade de memória disponível (RAM e espaço em disco), etc., etc.
Afinal, o terminal não funciona em espaço vazio e eterno. Caso contrário, parece muito arenoso.
2, 3.
4. não se esqueça de implementar um acesso de buffer normal (cl_Read/WriteBuffer), especificando ambos os offsets de início (tanto o offset mql-array como o offset no cl-buffer). Caso contrário, quase todas as matrizes têm de ser copiadas duas vezes - será que precisamos mesmo delas? Não estamos a escrever em OpenCL para perder tempo a reescrever do nada em nada. Isso não é justo. :)
...
4. certificar-se de que já tem um acesso de buffer normal (cl_Read/WriteBuffer), especificando ambos os offsets iniciais (tanto o offset mql-array como o offset cl-buffer). Caso contrário, quase todas as matrizes têm de ser copiadas duas vezes - será que precisamos mesmo delas? Não estamos a escrever em OpenCL para perder tempo a reescrever do nada em nada. Isso não é justo. :)
Esclareça o que quer dizer com isso.
Ainda não me deparei com as situações que está a descrever até agora.
Especifique o que quer dizer com isso.
Para que serve, ainda não encontrei as situações que descreve.
Não há problema. Aqui está um exemplo recente. A construção da família Ema.
Nada de exótico é necessário. Só quero que seja como aqui:
int ArrayCopy(
void dst_array[], // куда копируем
void src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int cnt=WHOLE_ARRAY // сколько элементов
);
Não há problema. Aqui está um exemplo recente. Construir a família Ema
Nada de exótico é necessário, só quero que seja como aqui:
int ArrayCopy(
void dst_array[], // куда копируем
void src_array[], // откуда копируем
int dst_start=0, // с какого индекса пишем в приемник
int src_start=0, // с какого индекса копируем из источника
int cnt=WHOLE_ARRAY // сколько элементов
);
Sim, já percebi, não se quer que algoritmos mais complicados e que a memória se sobreponha à utilização
e pretende ser capaz de compensar na fase de cópia.
Não quero copiar 100000 elementos e depois fazer 998000 shift. Mas devemos deixar a variante com o turno que temos agora, porque permite não copiar muitas vezes os mesmos dados, mas levá-los para uma nova tarefa a partir de um buffer CL já preparado com um novo turno.
SZY também seria bom poder sobrescrever, realocando ou sobrescrevendo parte dos dados no buffer CL, então os novos dados recebidos do tick poderiam ser adicionados sem ter de comprar todos os dados. Em tempo real, isto é pouco útil, mas no testador é.