Informazioni sul servizio
TradottoSviluppo kernel numerici ad alte prestazioni in Futhark — un linguaggio puramente funzionale e parallelo per dati che si compila in CUDA e OpenCL. Se hai un ciclo caldo, una simulazione o un grande volume di operazioni su array che sta raggiungendo il limite della CPU, lo riscriverò per farlo girare sulla GPU e non dovrai scrivere nemmeno una riga di codice di dispositivo a basso livello a mano. Futhark fornisce forti garanzie: nessun effetto collaterale, nessuna sorpresa di aliasing, e il compilatore stesso fonde operazioni di mappatura, riduzione, scansione e segmentazione in kernel compatti. Il flusso di lavoro tipico è questo. Prima profilo il tuo attuale pipeline e trovo sezioni che sono veramente parallele. Poi le esprimo in Futhark attraverso combinatori puramente funzionali, preservando leggibilità e determinismo. Confronto il risultato con la tua versione di base, regolo le dimensioni dei blocchi e i modelli di accesso alla memoria e itero fino a quando i numeri non sono convincenti. Infine, reinserisco tutto nel tuo stack: Futhark genera una libreria C e la avvolgo in modo che tu possa chiamarla da Python tramite ctypes o una piccola estensione, o collegarla direttamente in un programma host in C o C++. Negli anni ho accelerato la valutazione delle opzioni Monte Carlo, filtri per immagini e segnali, stencil fisici, procedure di algebra lineare e preprocessing per l'apprendimento automatico. Ricevi codice sorgente pulito, uno script di build, una suite di test che verifica l'output della GPU rispetto a una baseline, risultati di benchmark e una breve nota su come ricostruire ed estendere il codice. Descrivi il compito e l'hardware target — e stimerò l'accelerazione reale prima di iniziare.