Prenant en compte l'exécution du bit Désactiver Quelle est la manière recommandée d'exécuter des instructions contre un processeur natif à partir d'un environnement géré de haut niveau tel que VB.NET 2008 ou C #. De plus, quelqu'un a obtenu des instructions de GPU exécutant des instructions GPU contre un processeur graphique? P>
3 Réponses :
Créer une bibliothèque ingravée .dll avec quelles que soient les instructions que vous souhaitez et utilisez p / invoke pour l'appeler. P>
Ce n'est pas une option. Vous devrez p / appeler une fonction dans la DLL générée par MASM ou écrit dans C / C ++ non géré, à l'aide de l'assemblage ou de l'intrinsique en ligne. Ou utilisez le compilateur C ++ / CLI et génère un code de mode mixte avec #pragma géré. P>
Attention à ce que vous ne puissiez plus dépendre du compilateur JIT que le code de la plate-forme convient au système d'exploitation. Utilisez Project + Propriétés, onglet de construction, citation de la plate-forme pour forcer l'architecture à correspondre à votre code non géré. P>
Regardez Cuda pour le code GPU géré. P>
Il existe quelques options GPU pour C #, pour un accès direct sans renvoyer à P / invoquer ou écrire vos propres emballages C ++: P>
Comme pour les instructions de la CPU, cela nécessiterait généralement une perte de code natif de niveau inférieur avec une instruction d'assemblage. L'option la plus intéressante entièrement gérée (au moins partiellement liée) serait d'utiliser mono. SIMD , qui fournit un accès direct aux instructions SIMD de la CPU à partir du code géré lors de l'exécution de la pile mono. P>
Merci que mono.simd link est génial
La vraie question est la suivante: qu'essayez-vous d'accomplir? Vous pouvez utiliser le GPU avec cuda.net ( HOOPOE-CLOUD.COM/ Solutions / Cuda.net / Default.aspx ).
L'objectif est d'exécuter des calculs personnalisés aussi proches du métal nu que possible mais lancé à partir d'un environnement géré.
Dupliqué possible de Utilisation du GPU avec C #