8
votes

Utiliser Xeon Phi avec une langue basée sur JVM

est-il possible d'utiliser Xeon Phi à l'aide d'une langue basée sur JVM tels que Scala? Y a-t-il un exemple?


1 commentaires

Avez-vous cherché des exemples Java? Tout de là fonctionnera également à Scala.


3 Réponses :


5
votes

Selon leur FAQ, il n'y a pas encore de soutien pour Java:

http: //software.intel.com/en-us/articles/intelr-xeon-phitm-coprocessor-feburien-developer-webinar-qa-responses

Q: Y a-t-il une option Java pour le codage? A: Pas encore.


1 commentaires

En outre (23 octobre 2013): Q: Le Xeon Phi supportera-t-il Java? La FAQ sur le site d'Intel dit "Pas encore". Y a-t-il une chronologie pour cela? A: Pas encore de calendrier. logiciel. Intel.com/en-us/articles/... J'espère bien qu'ils vont le rendre bon. Scala (AKKA) fournit l'abstraction pour programmer un tel matériel.



5
votes

Il n'est pas officiellement pris en charge, cependant, vous pouvez toujours construire la vôtre JVM.

J'ai construit JAMVM avec GNU ClassPath et une version légèrement modifiée de libffi . Vous pouvez également essayer avec la version zéro-assembleur de hotspot . En conséquence, vous pouvez obtenir une machine virtuelle extrêmement lente - même en utilisant 60 threads, il était plus de 10 fois plus lent que mon CPU I7 Mobile I7 de My Quad Core. D'autre part, c'est une excellente occasion de tester une évolutivité des implémentations Java qui fonctionnent simultanément sur des dizaines de threads.

Une autre idée consiste à utiliser Outil Aparapi - Les parties de Java Bytecode sont traduites en opencl et exécuté sur phi.


2 commentaires

Comment puis-je utiliser JAMVM sur le coprocesseur Intel Xeon Phi? Y a-t-il quelque chose que je peux l'exécuter sur le Xeon Phi sans avoir besoin d'utiliser le compilateur d'Intel? Et comment puis-je utiliser les threads mutliples que les supports Xeon Phi?


Wow, c'était il y a des années :). Vous pouvez le construire sans compilateur Intel à l'aide de GCC ( Stackoverflow.com/q/18141941/2865997 ). Pour les threads multiples, tout Java Lib à filetage multi-threads devrait être correct, vous pouvez également rechercher des didacticiels sur l'écriture de threads Java à partir de zaves. Gardez à l'esprit, je l'ai construit pour un très ancien appareil (l'architecture pourrait être différente maintenant) et ce n'était qu'une expérience qui a entraîné une très mauvaise performance.



1
votes

Bien que cela soit certainement possible de pouvoir exécuter Java sur Xeon Phi Cores, un moyen possible d'obtenir relativement facilement le support Xeon dans votre programme Java serait d'utiliser Aparapi ( https://github.com/aparapi/aparapi ), une bibliothèque qui peut interrompre un sous-ensemble de code d'octet Java à OpenCL au moment de l'exécution et exécuter comme un noyau Opencl (Xeon Phi prend en charge Opencl, de même que tout GPU moderne).

Il s'agit d'un processus non trivial de convertir le code Java existant pour exécuter sous forme de noyaux Aparapi (le code appelé à partir de la méthode d'exécution du noyau () doit être essentiellement exempt d'objet - champs, paramètres et locaux doivent être des primitives ou des tableaux des primitives). Mais si le nombre de goulots d'étranglement nécessitant une parallélisation massive est faible, ce ne sera probablement pas un problème formidable d'atteindre cet objectif.

Cela permettrait également à votre projet de bénéficier d'une parallélisation massive sur d'autres quincailleries superinformées (comme Nvidia Tesla).

Ma suspicion est que la course "Toute vieille" Java sur Xeon Phi est peu susceptible d'être soutenue et que, même si c'était le cas, l'optimisation de Opencl sur Phi resterait beaucoup supérieure.


0 commentaires