Devi definire con attenzione cosa stai ottimizzando. Presumo che tu stia scrivendo i tuoi programmi per risolvere qualche problema. Possiamo quindi chiedere:
-
Quanto tempo ci vuole per risolvere il problema con C o CUDA? Questo tempo di ciclo include sia il tempo di sviluppo che il tempo di esecuzione. Può includere il tempo necessario per acquisire le competenze e le attrezzature necessarie.
-
Quanto costa risolvere il problema con C o CUDA? Ciò include lo stipendio dello sviluppatore, i costi energetici, i costi generali, i costi di transazione e il costo opportunità.
Quindi sfortunatamente, questo è più sulla gestione del progetto che sul benchmarking.
Ci sono un paio di estremi in cui la risposta è semplice.
Esistono casi d'uso in cui domina lo sforzo di sviluppo. Questo accade quando i tuoi problemi sono molto specifici e ciascuno ha bisogno di uno sforzo di sviluppo sostanziale, e ogni programma viene eseguito solo un paio di volte. Per esempio. se ho bisogno di 5 giorni per scrivere il programma, non importa se ottengo una risposta tra 12 ore o 45 minuti.
Esistono casi di utilizzo in cui le prestazioni non elaborate sono più importanti, ad es. in sistemi realtime ad alte prestazioni. I maggiori costi di sviluppo, energia e hardware sono più tollerabili rispetto a ottenere una risposta di 5 millisecondi troppo tardi.
E ci sono casi d'uso in cui il programma viene eseguito così tanto che i costi dell'hardware e dello sviluppo vengono rapidamente ammortizzati. Le prestazioni per watt iniziano a dominare il calcolo.
Sono attualmente coinvolto in un piccolo progetto di ricerca in cui il tempo di esecuzione domina sui tempi di sviluppo e il lungo tempo di ciclo si traduce in un costo opportunità significativo. Ciò significa che siamo effettivamente limitati nel tempo e non limitati ai costi. Per accorciare il ciclo, stiamo investendo più risorse nello sviluppo e nell'hardware, mentre i costi energetici sono trascurabili. Se il passaggio a una tecnologia ad alte prestazioni raddoppia lo sforzo di sviluppo ma raddoppia le prestazioni, ne vale assolutamente la pena per noi.