Che tipo di applicazioni devono essere riscritti da usare OpenCL? [chiuso]
-
20-09-2019 - |
Domanda
Mac OS X 10.6 è dotato di OpenCL, ma quante applicazioni potrebbe avere prestazioni migliori se sarebbero stati riscritti per usare OpenCL? Che tipo di applicazioni devono essere riscritti per usare OpenCL?
Soluzione
La mia azienda sta utilizzando OpenCL per i calcoli scientifici. Mentre io non faccio parte del team di sviluppo, che lo utilizza vi posso dire alcune cose che stanno usando per fare: elaborazione di dati su larga scala di immagini, immaginare la ricostruzione, e la parallelizzazione massiccia di codice scritto in precedenza scientifica
Fondamentalmente, OpenCL è piuttosto tagliente. A meno che non si vuole / avere a che fare con esso, è meglio a sinistra per chi ne ha bisogno. Non sto cercando di scoraggiare voi, ma è un prodotto di nicchia progettato per un mercato di nicchia. Sareste meglio servito studiare altre aree di programmazione per i potenziali motivi di lavoro.
Altri suggerimenti
OpenCL non è un pulsante magico "aumento delle prestazioni". Ci sono diversi prerequisiti che devono essere soddisfatti al fine di ottenere un incremento delle prestazioni, il primo è l'hardware adeguato (un Tesla GPU aiuta). Per quanto riguarda il software che potrebbero trarre beneficio da esso, è tutto il software che fa un sacco di calcolo parallelo. Ciò esclude la maggior parte del software "quotidiano", e lascia le applicazioni di elaborazione grafica (rendering, programmi di manipolazione delle immagini), grandi applicazioni di elaborazione dati in cui il funzionamento può essere parallele, e le applicazioni scientifiche.
Di solito se si scrive un'applicazione che può beneficiare di OpenCL sai che potrai beneficiare di già;).
Prima di tutto non si può "riscrivere" un'intera applicazione utilizzando OpenCL. Hai ancora bisogno di un linguaggio "normale" per la GUI etc.
Con OpenCL è possibile accelerare molto grandi di dati in parallelo problemi. La maggior parte dei problemi non rientrano in questa categoria.
I candidati più promettenti sono la grafica / video e l'elaborazione del suono. Ma ogni problema che richiede la stessa operazione su un grande insieme di dati sarà adatto.