Comment paralléliser mon programme F # en utilisant le jeu d'instructions SSE3? Est-ce que le compilateur F # le supporte?Instructions SSE3 en F #
Répondre
Je ne sais rien à ce sujet, mais:
.Net ne parle pas au matériel à ce niveau. Si vous souhaitez un contrôle explicite sur le jeu d'instructions utilisé, vous devez appeler une bibliothèque écrite dans un langage plus approprié. C/C++ vient à l'esprit.
alors il n'y a pas d'équivalent de la bibliothèque Mono.Simd dans .NET? – Nishanth
Non, parce que Mono.Simd repose sur les modifications apportées au compilateur JIT –
Probablement pas utile, mais vous pouvez jouer avec les champs internes sur un délégué pour faire appel à un code arbitraire: http://www.atrevido.net/blog/2005/01/28/Inline+X86+ASM+In+C.aspx
Voir les commentaires pour plus de mises en garde et d'autres approches. L'avantage de jouer directement avec une cible de délégués est (AFAIK) vous n'obtiendrez pas une transition managée non gérée comme si vous aviez fait GetDelegateForFunctionPointer ou d'autres approches interop. En revanche, cela signifie que vous devez le coder à la main et vous assurer que les conventions d'appel s'alignent et ainsi de suite. C'est probablement fragile, et le coût de l'appel du délégué pourrait ne pas en valoir la peine.
Pouvez-vous utiliser Mono au lieu de .Net? – Gabe
Je suppose que vous pointez vers Mono.Simd. Mais je dois utiliser .NET :( – Nishanth