estrarre i dati modificati dal kernel

Alcuni degli argomenti passati al kernel saranno elaborati durante l’esecuzione dello stesso; Queste informazioni potranno essere estratte dal programma host utilizzando il metodo gpu_kernel::PopArg. Il frammento di codice che segue mostra il codice per l’esecuzione del kernel e quello di estrazione dei risultati:

Del metodo Set_index_space_2d(..) contenuto nella prima riga scriveremo fra poco; per ora ricordiamo che definisce l’intervallo di indici usato dalla gpu per eseguire i singoli work_item;

Il metodo gpu_kernel::Exec() lancia in esecuzione il kernel e rimanda un valore true se il codice è stato eseguito correttamente; il passaggio successivo è l’estrazione delle informazioni calcolata attraverso la gpu_kernel::PopArg():

PopArg()

La funzione riceve un puntatore ad una istanza di tipo gpu_mem_object e rimanda true se le informazioni sono state estratte correttamente; in questo esempio l’argomento dest passato è lo stesso che in precedenza era stato trasferito come argomento al kernel:

Da quanto scritto si può dedurre che le informazioni elaborate ed estratte dal kernel usando la PopArg sono necessariamente del tipo gpu_mem_object; inoltre va ricordato che queste istanze devono essere state create con  il flag CL_MEM_WRITE_ONLY o CL_MEM_READ_WRITE  definiti mediante le funzioni gpu_mem_object::Set_mem_flags()

Pages: 1 2 3 4 5
%d bloggers like this:
Skip to toolbar