Ciao a tutti.
Rookie, per il tuo programma , oltre al calcolo parallelo utilizzi anche i cuda core per renderlo veloce ?
Secondo te per archivi piccoli , come quelli del lotto, vale la pena sfruttare la gpu?
Se non torna utile, risparmio su questa e magari valuto una cpu più performante(rispetto l i3 pensata).
Domani mattina vado a vedere un altro negozio.
Ciao The Legend, senza entrare troppo nello specifico devo dirti che per accelerare le esecuzioni (per i programmi che vanno pensati per avvalersi di una GPU) restando in Windows OS, dovresti scrivere i tuoi programmi in Python, C o C++
Ma devi fare delle valutazioni in funzione delle possibilita' tecniche:
Stiamo parlando di mettere insieme un ambiente di elaborazione eterogeneo (CPU+GPU o GPGPU, General-Purpose Graphics Processing Unit) sotto Windows OS, dove la via semplice e' sfruttare CUDA ma richiede la conoscenza di almeno un linguaggio tra quelli sopra menzionati. In pratica devi far eseguire la parte "sequenziale" alla CPU (il processore) e la parte parallelizzata alla GPU usando le specifiche istruzioni che espone CUDA
L'alternativa, OPEN SOURCE a CUDA e' al momento (escludendo arbitrariamente OneAPI di Intel) OPENCL che anche attraverso i linguaggi gia' menzionati permette di sfruttare la scheda che accelera le elaborazioni (qui, contrariamente a nvidia CUDA, la GPU puo' essere di qualsiasi fornitore, nvidia, amd, intel) , se e' programmata specificatamente per farlo, compatibilmente con la versione OPENCL supportata dal produttore per la GPU in dotazione.
Quindi, restando nel pratico, devi prima scegliere una scheda grafica e un linguaggio di programmazione da studiare. E sopratutto quale architettura vuoi padroneggiare, CUDA o OPENCL?
Installi il necessario,
ti documenti, e cominci a studiare... in modo che in seguito ti verra' normale pensare al codice, partizionandolo e strutturandolo in maniera che sia facile assegnare il codice a chi lo esegue meglio e piu' velocemente. Deve essere un abito mentale (mindset) altrimenti non serve a nulla.
Nel frattempo, comincia a pensare come potresti accelerare il codice che devi eseguire, a prescindere dal linguaggio. Una volta che ti e' chiaro che almeno una via e' praticabile per raggiungere il tuo scopo, parti per recuperare cio' che ti necessita e procedi installando, documentandoti e sopratutto facendo pratica, pratica, pratica e pratica. La Via Maestra per raggiungere l'Eccellenza e' solo La Pratica Applicazione Motivata, che attiva ripetutamente i neuroni cristallizandone le connessioni, le quali sono alla base della creazione della conoscenza e della consapevolezza o se preferisci dell'esperienza.
Spero, anche se laconico e succinto, questa breve nota ti sia utile per cominciare a capire il da farsi e sopratutto se ne hai davvero la voglia di intraprendere questo percorso. Perche' richiede dedizione e tempo...libero!
Ciao
ps.
Secondo te per archivi piccoli , come quelli del lotto, vale la pena sfruttare la gpu? Penso che se scrivi il codice dopo averci pensato un bel po' non ti serve assolutamente la GPU, sempre se userai il tuo PC solo per frullare le estrazioni e le combinazioni che ci vuoi trovare dentro. Senza andare lontano, basta guardare i tempi di elaborazione performati dalle dll di SLDR (leggi
@LuigiB) scritti in un linguaggio gestito come VB.Net, nelle ultime cose sviluppate per TB... dove anche tu hai fatto la tua parte. I tempi di esecuzione come avrai notato erano (e lo sono ancora) paragonabili a quelli del C o del C++ senza ricorrere a puntatori e strutture dati complesse, liste concatenate e altre astrazioni simili.