8

是否可以使用基于 JVM 的语言(例如 Scala)来使用 Xeon Phi?有什么例子吗?

4

3 回答 3

5

根据他们的常见问题解答,尚不支持 Java:

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

问:是否有用于编码的 Java 选项?答:还没有。

于 2013-08-09T12:29:20.217 回答
5

它不受官方支持,但是,您仍然可以自己构建 JVM。

我用GNU Classpath和libffi的略微修改版本构建了JamVM您也可以尝试使用HotSpot的零汇编版本。结果,你会得到非常慢的虚拟机——即使使用 60 个线程,它也比我的四核移动 i7 CPU 慢 10 倍以上。另一方面,这是测试同时在数十个线程上运行的 Java 实现的可伸缩性的绝佳机会。

另一个想法是使用Aparapi工具——部分 Java 字节码被翻译成 OpenCL 并在 Phi 上执行。

于 2014-10-30T20:12:12.860 回答
1

虽然要在 Xeon Phi 内核上运行 Java 肯定还有很长的路要走,但在 Java 程序中相对容易地获得 Xeon 支持的一种可能方法是使用 Aparapi ( https://github.com/aparapi/aparapi ) ,一个库,它可以在运行时将 Java 字节码的子集交叉编译为 OpenCL,并将其作为 OpenCL 内核执行(至强融核支持 OpenCL,任何现代 GPU 也是如此)。

将现有 Java 代码转换为作为 Aparapi Kernels 运行是一个不平凡的过程(从 Kernel run() 方法调用的代码本身需要本质上是无对象的 - 字段、参数和局部变量必须是基元或基元数组) . 但是,如果需要大规模并行化的瓶颈数量很少,那么实现这一点可能不会很麻烦。

这也将使您的项目受益于其他超级计算硬件(如 Nvidia Tesla)上的大规模并行化。

我怀疑在 Xeon Phi 上运行“任何旧的”Java 不太可能得到支持,即使支持,在 Phi 上对 OpenCL 的优化仍然要好得多。

于 2015-04-02T19:34:42.787 回答