Il mio software di grafica 3D, scritto in C# con SlimDX, esegue molte operazioni vettoriali sulla CPU. (In questa situazione specifica, non è possibile scaricare il lavoro sulla GPU).Fast Vector Math in .NET - Quali sono le opzioni?
Come posso rendere più veloce la matematica vettoriale? Finora, ho trovato questi approcci:
- Esegui su Mono anziché Microsoft .NET, perché hanno il supporto SIMD. Non un'opzione per questo progetto.
- SlimGen, un progetto che inietta codice matematico ad alte prestazioni in fase di esecuzione. Sfortunatamente, il progetto non è ancora in uno stato utilizzabile.
- Scrivere una DLL in C++ utilizzando un compilatore che utilizza le istruzioni SSE. Interoperare con quella DLL da C#.
Esistono altre opzioni per realizzare una matematica vettoriale più veloce in .NET?
Come è "off-topic"? A volte la gente è sconcertante. –
Il multithreading (o Open MP) potrebbe essere utile. Non so se è possibile utilizzare Open MP su .NET, ma raccomanderei comunque una dll nativa se si riesce a mantenere bassa la quantità totale di chiamate di funzione p/invoke. – dialer
Risposta tardiva Lo so, ma potresti voler esaminare lo Yeppp!Libreria SIMD – user9993