2012-08-27 10 views
5

Nelle funzioni vDSP di Accelerate Framework, tutte le funzioni richiedono l'immissione di un vettore di risultati. È corretto passare il vettore di input (o uno dei vettori di input) come vettore risultato se non ho più bisogno di quello che era nel vettore di input originale?È possibile memorizzare il risultato in uno dei vettori di input nel framework vDSP

Esempio di ciò che intendo:

vDSP_vsadd(input_vector,1,scalar_addition,input_vector,1,length); 

Ciò avrebbe preso l'input_vector e aggiungere uno scalar_addition a tutti gli elementi. Il risultato verrebbe archiviato in input_vector.

risposta

4

Le semplici operazioni vettoriali in VDSP tutti funzionano correttamente sul posto (purché siano rigorosamente sul posto, per esempio, non è possibile utilizzare &input_vector[length/2] per l'uscita e si aspettano di ottenere risultati significativi). In effetti, utilizzarli sul posto spesso offre prestazioni migliori, in quanto può ridurre la pressione della cache.

Alcune delle più complesse operazioni vDSP non supportano l'operazione sul posto con uno o più dei relativi argomenti; questo dovrebbe essere richiamato nella guida di riferimento di vDSP.

+0

Ritengo che "sul posto" significhi esattamente ciò che stavo descrivendo - che il vettore di input sia stato modificato in modo da essere il vettore di output? Ho fatto una rapida ricerca della guida di riferimento vDSP e ho trovato che le uniche volte "sul posto" apparse nel documento erano in riferimento agli algoritmi di ordinamento e fft, questo significa che le funzioni più semplici non supportano "sul posto" risultato vettori, o è che le funzioni più semplici supportino ovviamente "sul posto" che non ha bisogno di essere documentato? – user1357607

+2

Sì, "in-place" indica ciò che stai descrivendo; dovrebbe essere documentato esplicitamente per le funzioni semplici, ma non lo è. –

Problemi correlati