Ho pensato di postare ciò che ho scoperto finora. La risposta breve è che no, non penso che la pipeline 3D su Silverlight 5 possa essere sfruttata per questo genere di cose. Da un lato, da quello che posso dire, i pixel shader e i vertex shader che fanno parte della pipeline, infatti, vengono eseguiti sulla GPU (a differenza degli shader 2D in Silverlight 4, che sono stati eseguiti sulla CPU) .
Ma che ha detto:
(1) Tutto quello che ho letto dice che ottenere i dati sulla GPU è molto veloce, ma che per la maggior parte delle macchine, ottenendo che i dati su GPU è molto più lento, sulla ordine di millisecondi. Ciò rende improbabile che possiamo, ad esempio, caricare la GPU con i dati necessari per eseguire un FFT, eseguire la FFT e quindi recuperare i dati più velocemente di quanto potremmo fare semplicemente sulla CPU.
(2) Silverlight 5 ha un set di istruzioni molto limitato che può essere eseguito sulla GPU. Nello specifico, è limitato a HLSL Level 2, che ha un numero limitato di istruzioni e registri disponibili. Dubito che sarebbe possibile - nella migliore delle ipotesi, sarebbe molto difficile e molto lento - modellare un FFT o un DCT all'interno di quelle istruzioni limitate.
(3) Ma anche se potessimo aggirare queste due limitazioni, da quello che posso dire, Silverlight non ha alcuna capacità di leggere i risultati dei calcoli eseguiti dalla GPU. Normale XNA (il framework su cui sono basate le funzionalità 3D di Silverlight) ha vari metodi GetData() o GetTexture() che penso si possa usare per leggere i risultati di una serie di calcoli. Ma questi metodi equivalenti mancano nelle loro versioni Silverlight 5. Da tutto ciò che posso dire, in Silverlight 5, la GPU è un dispositivo di sola scrittura. Carichi i tuoi shader, carichi i tuoi dati, premi il grilletto e saluti addio. Il tuo codice non vedrà mai più quei byte.
Se si scopre che mi sbaglio, tornerò qui e aggiornerò questa risposta. Ma almeno al momento sembra che sia un vicolo cieco.
[Modifica 10/10/11 - In base a Shawn Hargreaves da MS, questo non è supportato in Silverlight 5. La sua ipotesi sul perché è che (a) sarebbe difficile farlo funzionare in modo coerente su tutti i driver GPU e (b) per tutti tranne una piccola classe di problemi in stile demo-ware, non avrebbe alcun senso. Oh bene.]