J'essaie d'exécuter le premier exemple dans la bibliothèque rootbeer
, que vous pouvez trouver à partir de ici .
Le problème est que, même si j'ai suivi toutes leurs instructions, je reçois le message suivant lorsque j'essaie d'exécuter le bocal
root@ubuserver3:/home/ubuadmin/JavaJars/HelloWordGPU# Java -jar HelloWorldGPU.jar
OpenJDK Client VM warning: You have loaded library /usr/lib/libcuda.so.319.37 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Exception in thread "main" Java.lang.NullPointerException
at org.trifort.rootbeer.runtime.Rootbeer.run(Rootbeer.Java:104)
at ScalarMult.test(ScalarMult.Java:13)
at Main.main(Main.Java:17)
Je ne suis pas une personne Linux, donc je ne comprends pas comment exécuter correctement cette commande. Je ne comprends pas non plus ce qu'ils entendent par ce message, car c'est la première fois que je suis en programmation GPU. Mais je sais que jouer avec le GPU avec de mauvaises commandes serait un problème.
Type: execstack --version
pour vérifier si vous avez déjà installé execstack.
Si vous obtenez une commande introuvable, tapez: Sudo apt-get install execstack -y --force-yes
Tapez Sudo execstack -c <file>
par exemple Sudo execstack -c /usr/lib/libcuda.so
1: Vérifiez la version de execstack à l'aide de la commande suivante pour trouver ou non execstack installé
execstack --version
2: Si execstack n'est pas installé, installez-le à l'aide de la commande suivante
Sudo apt-get install execstack -y --force-yes
3: Après une installation réussie, exécutez la commande suivante
Sudo execstack -c <filepath>
par exemple: Sudo execstack -c /usr/lib/libjpcap.so
assurez-vous que vous n'exécutez pas jar 32 bits sur jvm 64 bits en premier
Assurez-vous que vous n'exécutez pas Java 32 bits. Si vous exécutez Java -d64, la version 32 bits affichera une erreur.