Discussione sull’articolo "OpenCL: da semplice verso una programmazione più perspicace"

 

Il nuovo articolo OpenCL: da semplice verso una programmazione più perspicace è stato pubblicato:

Questo articolo si concentra su alcune funzionalità di ottimizzazione che si aprono quando si tiene conto almeno dell'hardware sottostante su cui viene eseguito il kernel OpenCL. Le cifre ottenute sono lungi dall'essere valori limite, ma suggeriscono anche che avere le risorse esistenti disponibili qui e ora (l'API OpenCL implementata dagli sviluppatori del terminale non consente di controllare alcuni parametri importanti per l'ottimizzazione, in particolare la dimensione del gruppo di lavoro), il miglioramento delle prestazioni rispetto all'esecuzione del programma host è molto sostanziale.

In generale, i sistemi di memoria differiscono notevolmente l'uno dall'altro a seconda delle piattaforme del computer. Ad esempio, tutte le moderne CPU supportano la memorizzazione automatica dei dati nella cache al contrario delle GPU, dove questo non è sempre il caso.

Per garantire la portabilità del codice, in OpenCL viene adottato un modello di memoria astratto che i programmatori e i fornitori che hanno bisogno di implementare questo modello su hardware reale possono seguire. La memoria come definita in OpenCL può essere teoricamente illustrata nella Figura seguente:

Il modello di memoria OpenCL

Autore: Sceptic Philozoff

 
E potete annunciare l'elenco completo degli articoli e l'ordine approssimativo in cui vengono pubblicati?
 
Interesting: Posso annunciare l'elenco completo degli articoli e l'ordine approssimativo di uscita?

No, non puoi, se intendi dire cos'altro scriverò. Io stesso non ne so molto.

E alcune funzionalità dell' API OpenCL di MQL5 sono ancora mancanti. Ma lo saranno, non c'è modo di farne a meno.

 
Mathemat:

No, non puoi, se intendi cos'altro scriverò. Io stesso non ne so molto.

E alcune caratteristiche dell'API OpenCL di MQL5 sono ancora mancanti. Ma lo saranno, non possiamo farne a meno.

Capisco, grazie.
 

Grazie mille, Alexey.

L'articolo si è rivelato estremamente istruttivo per me, cosa che, francamente, non mi aspettavo. Avevo intuito l'idea dell'accesso coerente alla memoria, ma non avevo mai provato a formalizzarla. Ma qui tutto è masticato e spiegato. Fantastico!

Fortunatamente, il riesame del mio codice dal punto di vista della coerenza degli accessi ha mostrato che è sufficientemente ottimale, il che ha lusingato il mio ego, anche se in realtà è una semplice conseguenza di una coincidenza (specifiche dei miei compiti precedenti) ;-) Ma per il futuro ho pianificato di seguire attentamente la coerenza degli accessi alla memoria in tutte le fasi di progettazione del kernel.

--

Lo stile dell'articolo in generale mi ha portato all'ammirazione: è raro che gli articoli su mql-resources (e non solo!) combinino dettagli e rispetto per l'intelletto del lettore. Per realizzare uno stile del genere, è necessario un raffinato senso delle proporzioni e un accurato senso realistico dei limiti della consapevolezza del pubblico (al limite del contatto telepatico). È davvero bello. Grazie ancora!

 

Quale sia il ringraziamento da fare a te, Vladimir, lo sai solo tu. L'aiuto reale da parte tua non è stato solo quando è stato necessario eseguire qualcosa sulla tua scheda, ma anche nella codifica in generale. L'esperienza e la conoscenza di un professionista valgono molto!

P.S. In qualche modo questa immagine mi ricorda la mappa della Russia...

 

Mathemat, grazie a te e al tuo socio MetaDriver per l'articolo. Era da tempo che non mi sentivo così soddisfatto dopo averlo letto :-))))

Naturalmente, molte cose non sono ancora chiare... Vedrò...

 
denkir: Naturalmente molte cose non sono ancora chiare... Scriverò...

Inizia con il primo, il link è nella prima frase del secondo articolo. Per padroneggiare questo materiale è necessaria una certa gradualità e un po' di tempo per mettere in testa tutta questa confusione e digerirla.

Più avanti sarà ancora più difficile.

 
Mathemat:
Iniziate con il primo, il link è nella prima frase del secondo articolo. Per padroneggiare questo materiale, è necessaria una certa gradualità e un po' di tempo per far sì che tutta questa poltiglia venga messa in testa e digerita.

Sì, è quello che ho fatto io...

Imho, servono esempi più semplici... e in qualche modo legati al trading... questa è la prima impressione....

 
denkir: Imho, hai bisogno di esempi più semplici... e in qualche modo legati al trading... come prima impressione....

Si potrebbe iniziare subito con nervoset. È chiaramente correlato al trading. Tuttavia, io stesso non capisco nulla di nervoset, ma dopo aver trascorso qualche giorno, capirei le basi.

Pensi che sarebbe più facile di un semplice calcolo del pi greco, anche senza buffer di ingresso?

Ne dubito.

Sì, è quello che ho fatto...

Ognuno ha il suo modo di assimilare nuove informazioni. Io stesso preferisco non solo leggere, ma iniziare subito a codificare. Senza la pratica queste informazioni rimarranno sicuramente non apprese.

 
Mathemat:

Si può iniziare subito con il nervosismo. È ovviamente legato al trading. Tuttavia, io stesso non capisco nulla di griglie nervose, ma dopo aver trascorso qualche giorno, capirei le basi.

Pensi che sarebbe più facile di un semplice calcolo del pi greco, anche senza buffer di ingresso?

Ne dubito...

Mathemat, non considero la rete neurale un esempio semplice :-))))

L'esempio di PI è molto buono, imho ...

Si potrebbe aggiungere qualche calcolo statistico, per esempio. Per esempio. Prendiamo la storia delle quotazioni di tutti gli strumenti nel terminale. Diciamo un minuto. Sincronizzare le quotazioni. Sarà un array bidimensionale. Probabilmente ci saranno diverse migliaia di stringhe.... Calcolare i movimenti dei diversi periodi per ogni strumento. L'array crescerà già diverse volte. E vedere quanto velocemente OpenCL riuscirà a gestire il calcolo.... questo è il pensiero per ora...