我目前正在 JAVA 中开发 Spark,在发布到我们的 Amazon 集群之前,我正在使用 Spark 在本地测试我的代码。我的问题是是否有任何解决方案可以利用我的 GPU?目前我可以通过sparkConf.setMaster("local[4]");
分配我的CPU的多个核心,或者使用 sparkConf.set("spark.executor.memory", "8g");
将更多 RAM 留给执行器和驱动程序或--driver-memory 4g
转变。但显然使用 GPU 来执行计算任务是非常有效的。有没有办法让本地运行的 Spark 使用我的 GPU? CUDA 似乎是一个流行词,但我找不到任何有关如何为 Spark 设置它的信息。
此外,RAM 分配的最佳设置是什么?我有 16GB 可用空间,我应该分配多少给驱动程序以及多少给执行?
关于优化本地 Spark,您还有更多技巧吗?
谢谢!
最佳答案
目前有许多项目专注于利用 GPGPU 编程进行 Spark 应用程序。它们中的大多数实际上与 AMD Aparapi 或 OpenCL 一起使用,因为这提供了更多的可移植性(因为 CUDA 仅适用于 NVidia GPU)。
看一下这两个项目,它们允许您在传统核心(CPU)和非常规核心(GPU、FPGA)上运行 Spark 应用程序:
1.0 SparkCL :我最近在一个项目中使用了这个,并写了一份报告,你可以找到 here .
2.0 HeteroSpark :相当新且有前途。
关于java - Apache Spark - 本地 CUDA GPU 的优化和利用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38232800/