Je suis en train d'implémenter sha512 dans la technologie OpenCL. J'ai la définition simple de la fonction du noyauCaractère de copie OpenCL de la mémoire globale vers la mémoire locale
__kernel void _sha512(__global char *message, const uint length, __global char *hash);
Sur l'hôte j'ai implémenté et testé avec succès l'implémentation de l'algorithme sha512.
J'ai un problème avec les données de copie de message
tableau à variable temporaire appelé character
.
char character = message[i];
Où i
est une variable de boucle - dans la plage de 0 à la taille du message.
Quand j'ai essayé d'exécuter mon programme là-bas j'ai eu cette erreur
0x00007FFD9FA03D54 (0x0000000010CD0F88 0x0000000010CD0F88 0x0000000010BAEE88 0x000000001A2942A0), nvvmCompilerProperty() + 0x26174 bytes(s)
...
0x00007FFDDFA70D51 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)
0x00007FFDDFA70D51 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)
Je readed à propos async_work_group_copy(), mais je ne peux pas comprendre comment l'utiliser - dans docs Je ne peux pas trouver un code d'exemple.
J'ai essayé avec char character = (__private char) message[i];
mais cela ne fonctionne pas aussi.
Je ne comprends pas comment passer le dernier paramètre en async_work_group_copy()
et comment l'utiliser pour copier des données de la mémoire __global
dans la mémoire __private
.