papier intéressant de Trinity College of Dublin:
implémentation et analyse de chiffrement AES
sur les unités de traitement graphique des produits de base p>
Leur technique utilise OpenGL pour enrôler le GPU pour effectuer les transformations numériques requises par AES. p>
Quelle est la difficulté d'exposer cette capacité - Effectuer un cryptage de flux - via une bibliothèque gérée .NET? p>
Comment puis-je commencer? Conseils? Exemples? p>
EDIT STRORT>: Tout le monde a des expériences à relier à l'aide de Cuda ou d'accélérateur? P>
4 Réponses :
Je suggère de créer une emballeuse gérée autour d'une implémentation CUDA / (C ++ / CLI) ou d'utiliser cuda.net pour tout faire mais em> le noyau lui-même en C #. Il n'est vraiment pas moyen de faire la mise en œuvre du noyau réel dans une langue de haut niveau, avec Cuda, vous devez utiliser C, avec OpenGL / DirectX, vous devez utiliser des shaders. Pour commencer, jetez un coup d'œil à cuda.net ou téléchargez le SDK Cuda et des exemples pour obtenir une introduction à la programmation GPGPU. P>
Il y a déjà un wrapper Cuda.Net ici: hoopoe-cloud.com/solutions /Cuda.net/default.aspx
Je n'ai pas dit d'utiliser une enveloppe autour de Cuda, mais une enveloppe autour d'une Cuda la mise en œuvre i>. La différence est cruciale car si vous utilisez Cuda.net, vous devez avoir à faire beaucoup de choses qui sont beaucoup plus faciles en C / C ++. J'ai aussi eu beaucoup de problèmes avec Cuda.Net, plusieurs des échantillons ne fonctionnent même pas. De plus, vous devrez faire beaucoup de gestion de mémoire / tampon dans C #, ce qui est généralement plus facile dans C / C ++. Vous devrez également choisir entre la mémoire gérée (pas de mémoire pagelockée, donc une performance de transfert de mémoire plus faible) ou une mémoire non gérée (beaucoup plus de frais généraux si vous souhaitez travailler en C #).
Vous pouvez utiliser Microsoft's ACCElerator bibliothèque. Cela vous donne accès au GPU via .NET. P>
Après avoir examiné le travail requis davantage, il s'agit d'une jolie chose non triviale à faire (à moins que vous aime réécrire les algorithmes d'AES). C'est possible cependant. p>
Il peut y avoir d'autres API C # d'ici, mais celui que j'ai rencontré était API de château Bouncy . Ce que vous devriez avoir à faire est de prendre l'API d'accélérateur de Microsoft et de l'utiliser n'importe où une opération mathématique est effectuée dans le code source de l'algorithme AES. P>
Une autre option est Brahma (le site Web semble être en panne). P>
Citation de site Web: P>
Qu'est-ce que Brahma? P>
Brahma est une bibliothèque open source écrite pour le cadre .NET 3.5 (en C # 3.0), afin de fournir un accès de haut niveau aux calculs en streaming parallèles sur une variété de processeurs. Veuillez noter qu'à l'heure actuelle, Brahma dispose d'un fournisseur GPU (et son objectif est de se concentrer sur GPGPU), il peut être adapté à l'exécution de tout type de processeur. P>
Que puis-je faire avec Brahma? P>
Brahma 2.0 utilise la nouvelle syntaxe LINQ's de C # 3.0 pour spécifier la transformation de la diffusion des données. À l'aide de Brahma, vous pouvez mélanger des déclarations exécutées sur le GPU et les déclarations qui fonctionnent sur la CPU à l'intérieur d'une seule méthode! Avec absolument no code de colle requis, un calcul complexe de GPU multipass avec des opérations de processeur intermédiaires peut être effectuée avec seulement quelques lignes de code. Toute la colle et le code de shader requis sont automatiquement générés par BRAHMA. Tout ce que vous avez à faire est d'écrire un code de haut niveau .NET. P> blockQuote>
Je ne l'ai pas utilisé mais je viens de l'avoir récemment écouté à un Podcast A > À ce sujet sur les rochers .net. Cela ressemble à une bonne bibliothèque à utiliser si vous ne voulez pas entrer dans l'apprentissage de la ou des langues Shader GPU. P>
Voici le lien Sourceforge . P>
Tout ce que vous utilisez pour intégrer C # au GPU, vous devez utiliser une implémentation de CUDA d'AES. Ils sont le plus rapide là-bas. La mise en œuvre la plus rapide semble que cela vient des mêmes gars que vous avez liés à - Trinity Group a>. Regardez la cryptographie de clé symétrique pratique sur le papier matériel graphique moderne. P>