当前位置: 首页 > 知识库问答 >
问题:

Java8 Lambda表达式是否使用GPU?

范承志
2023-03-14

我最近接触了Java8,我正在尝试学习Lambda表达式。我想做一些图形计算,我的代码到目前为止:

    IntStream.range(0, (screenSize.width * screenSize.height)).parallel().forEach(id -> { 
        int x = id % screenSize.width;
        int y = ((id-x) / screenSize.width);
        /*look up what color this pixel is.*/
    });

所有这些代码都是用于图形的,除了bufferedimage.getrgb(x,y)和使用java.awt.color的操作之外,所有内容都是基本的数学(加、减、乘、模),并且可以单独针对每个像素执行。

现在的问题是:有可能在GPU上运行这个吗?或者这甚至是自动基于GPU的?(我记得在什么地方读到过这个,但我不确定)

共有1个答案

田易安
2023-03-14

JavaVM实现可以自由地实现Java字节码解释,只要结果是正确的。它可以自由地运行GPU上的任何东西,当它想要的时候。然而,我不知道目前有什么Java实现可以做到这一点。有一个为OpenJDK添加GPU加速的项目(project Sumatra)你猜对了:它专注于流API,因为它被设计用来编写可以并行化的代码。但目前还远未准备好生产,而且目前似乎还没有人在做这方面的工作。

今天,当您想从Java程序在GPU上运行计算时,您将需要一个库,它使用Java本机接口封装GPU计算API(如OpenCL)(对于OpenCL有JOCL)。准备学习一门新的编程语言,因为每个GPU计算API都接受不同语言的指令,而且没有一种指令与Java非常相似。

 类似资料:
  • 问题内容: SQLite是否支持公用表表达式? 我想运行这样的查询: 问题答案: 从Sqlite版本3.8.3开始,SQLite支持公用表表达式。 变更记录 指示

  • 我有一个带两个可能输出的字符串,它将被<代码>

  • 问题内容: 具体来说,我有TabPane,我想知道其中是否包含具有特定ID的元素。 因此,我想使用Java中的lambda表达式来做到这一点: 问题答案: 尝试使用Lambda表达式。这是更好的方法。

  • 具体来说,我有TabPane,我想知道其中是否有具有特定ID的元素。 所以,我想用Java中的lambda表达式来实现这一点:

  • 问题内容: 我正在学习正则表达式,我想在Python中使用正则表达式仅定义整数-整数,而不定义小数。 我可以使用来制作一个仅允许数字使用的数字,但也可以使用十进制数字,这是我不想要的: 如何更改代码以 仅 允许整数? 问题答案: 正则表达式基于字符进行工作,表示单个数字…而不是十进制数字。 例如,仅匹配带符号整数的正则表达式可能是 含义 -字符串开始 -可选的(这是什么意思)减号或加号 -一个或多

  • 问题内容: 我有这种模式: 这对于正数很好用,但是我也需要它做负数,例如“ T-1T3T44”应该工作。或者也许使用空格而不是’T’,所以它应适用于这样的字符串:“-1 2 3 2 -1 6 2”。抱歉,我以前没有真正使用过正则表达式。有什么建议吗?谢谢。 问题答案: 您是否想过尝试: 您会注意到我也将(零个或多个)更改为(一个或多个),因为从技术上讲,这不是数字:-)