Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Andrew, per esempio, Intel + Radeon è una brutta cosa?
Non male, solo irragionevolmente costoso (a causa del processore). :)
A proposito, sono un fan di lunga data delle schede nVidia. Ho anche una scatola da qualche parte con la leggendaria GeForce 3. E se volessi giocare non esiterei a rimanere con il produttore di chip grafici "verdi".
Su una nota seria, sono ansioso di sapere che tipo di succhi sarete in grado di spremere fuori, soprattutto se avete 2 Giga DDR5. Come si è scoperto, la memoria della GPU onboard può essere una risorsa MOLTO seria per il calcolo OpenCL.
Da tutte le informazioni a mia disposizione ho concluso che la risorsa principale è il numero di core della GPU. Se non ce ne sono abbastanza, il problema si divide in corse consecutive di core con nuovi thread, ma è difficile risparmiare su questa risorsa quando si compra la scheda, poiché più core ci sono, più alto è il prezzo.
La seconda più importante è la velocità di esecuzione della memoria della GPU (dato che la memoria viene acceduta abbastanza frequentemente). I compiti della GPU nella maggior parte dei casi sono abbastanza primitivi e utilizzano 1-2-3 operazioni prima di accedere alla memoria per visualizzare i risultati. Tutte le operazioni logiche complesse sono controindicate per la GPU, quindi i programmatori si sforzano di ridurle al minimo, il che si tradurrebbe logicamente in accessi di memoria più frequenti. Qui ci sono delle varianti, se il compito è descritto dal programmatore in modo tale che gli accessi alla memoria siano i più bassi possibili, allora questa risorsa non è così importante.
E la terza risorsa, chiamerei la quantità di memoria della GPU. Poiché i crash test hanno dimostrato che, indipendentemente dal numero di contesti concorrenti, tutta la memoria distribuita nei contesti è allocata in un campo di memoria e non si sovrappone. Mi spiego con un esempio: se avete N contesti in ognuno dei quali i buffer sono allocati in 1/4 della memoria del dispositivo, allora potete avere 4 di questi contesti allo stesso tempo. Il quinto contesto, anche se lo si crea, non verrà assegnata memoria perché è già distribuita dai contesti precedenti. Ma il rilascio di memoria in uno qualsiasi dei precedenti (semplicemente rimuovendo il buffer) darà un po' di spazio e il quinto contesto funzionerà bene.
È ancora presto - dobbiamo assicurarci che i programmi OpenCL non blocchino l'intera rete a causa di glitch della GPU e dei programmi OpenCL stessi.
Di fatto, i programmi OpenCL possono essere messi in rete solo dopo aver eseguito dei test su agenti locali per assicurarsi che il programma sia funzionale e non uccida il computer.
Il compito di una rete di calcolo parallelo distribuito. Il nome stesso può confondere un lettore inesperto. Se avete avuto problemi con l'organizzazione di una rete distribuita su macchine multicore, ora ci sarà un quadrato. Tutti i core potrebbero essere considerati come unità di rete separate perché eseguono compiti separati. Ma in precedenza la loro velocità di esecuzione differiva al massimo di 2-3 volte (per cui avete introdotto limiti di velocità per i core lenti), la quantità di memoria nella maggior parte dei casi non giocava un ruolo, poiché gli array hanno 10^7 elementi al massimo (per le macchine moderne è centesimi).
Ma con la GPU il problema cambia radicalmente. Prima di tutto solo ~12 doppi array con lunghezza 10^7 sono già 1Gb, che è un limite per molte schede. Nei calcoli della CPU i compiti con più buffer sono abbastanza comuni (anche se naturalmente il programmatore della GPU può registrare usando la memoria host, ma è simile alla RAM virtuale, in breve è un male).
In secondo luogo, la differenza di velocità di esecuzione è linearmente proporzionale al numero di core di una GPU. La differenza tra le due carte è di 10-1000 volte.
In generale, il compito del networking si riduce alla classificazione del programma da eseguire. Fate attenzione al profiler CUDA. Le sue statistiche possono essere prese come base per la classificazione dei compiti. Se il compito è progettato in modo che la maggior parte del tempo è speso per l'accesso alla memoria, richiede un cluster di macchine con grandi dimensioni di memoria, ma se la maggior parte del tempo è speso in aritmetica, abbiamo bisogno di un cluster con un gran numero di core. I cluster possono essere flessibili o includibili (è una questione di esecuzione).
Anche se il compito è semplificato un po' dall'unificazione applicata dal tempo stesso. Una scheda con 12 core ha probabilmente 256MB, una scheda con 96 ha 512MB. In media, i produttori non permettono grandi disparità (al contrario della CPU, dove l'utente può attaccare la sua vecchia roccia con RAM fino alle campane e ai fischietti, o mettere RAM minima sulla nuova roccia, solo per risparmiare denaro al momento dell'acquisto).
Anche se, a mio parere, un approccio più corretto sarebbe quello di creare un debugger per OpenCL e sulla sua base difendere l'ottimizzazione per il dispositivo in bytecode. Altrimenti si arriverebbe all'assemblatore quando il programmatore dovrebbe indovinare su quale scheda il programma verrebbe eseguito e le caratteristiche medie del programma per un possibile ambiente.
Mi dica, se non le dispiace, come si fa il test? Dove, cosa cambiare? Copia, selezione, risultato:
Win7 x64 build 607
Questo esempio non ha bisogno di essere "eseguito" nel tester. Per eseguire lo script, trascinalo dal "Navigator" al grafico. Il risultato sarà visualizzato nel pannello " Strumenti", scheda " Esperti".
w7 32 bit 4GB (3.5GB disponibili)
Intel Core 2 Quad Q9505 Yorkfield (2833MHz, LGA775, L2 6144Kb, 1333MHz) vs Radeon HD 5770
w7 32 bit 4GB (3.5GB disponibili)
Intel Core 2 Quad Q9505 Yorkfield (2833MHz, LGA775, L2 6144Kb, 1333MHz) vs Radeon HD 5770
Bene, ora sai dove scavare... :)
i processori sono già 2-3 generazioni indietro
e video 5770 - 6770 -7770
:)
Dalle informazioni disponibili sono giunto alla conclusione che la risorsa principale è il numero di core della GPU, in caso di mancanza di essi il compito viene suddiviso in corse consecutive di core con nuovi thread, ma è difficile risparmiare su questa risorsa quando si acquista una scheda, poiché più core ci sono più alto è il prezzo.
La seconda più importante è la velocità di esecuzione della memoria della GPU (dato che la memoria viene acceduta abbastanza frequentemente). I compiti della GPU nella maggior parte dei casi sono abbastanza primitivi e utilizzano 1-2-3 operazioni prima di accedere alla memoria per visualizzare i risultati. Tutte le operazioni logiche complesse sono controindicate per la GPU, quindi i programmatori si sforzano di ridurle al minimo, il che si tradurrebbe logicamente in accessi di memoria più frequenti. Qui ci sono delle varianti, se il compito è descritto dal programmatore in modo tale che gli accessi alla memoria siano i più bassi possibili, allora questa risorsa non è così importante.
E la terza risorsa, chiamerei la quantità di memoria della GPU. Poiché i crash test hanno dimostrato che, indipendentemente dal numero di contesti concorrenti, tutta la memoria distribuita nei contesti è allocata in un campo di memoria e non si sovrappone. Mi spiego con un esempio: se avete N contesti in ognuno dei quali i buffer sono allocati in 1/4 della memoria del dispositivo, allora potete avere 4 di questi contesti allo stesso tempo. Il quinto contesto, anche se lo si crea, non verrà assegnata memoria perché è già distribuita dai contesti precedenti. Anche se liberando la memoria in alcuni dei precedenti (semplicemente rimuovendo il buffer) apparirà dello spazio e il quinto contesto funzionerà bene.
dopo l'aggiornamento alla build 607 ho improvvisamente ottenuto opencltest funzionante sul mio portatilehttps://www.mql5.com/ru/code/825, non funzionava prima (circa due settimane fa), penso che dicesse "OpenCL non trovato"
"Sento odore di trucco", non ho ancora pasticciato con i frattali di Mandelbrot ))))))))))))) , ma è ancora bello che non un nuovo computer portatile può tornare utile per il test completo di MT5