加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 8 Lambda表达式是否使用GPU?

发布时间:2020-12-14 05:37:07 所属栏目:Java 来源:网络整理
导读:我最近与 Java 8取得联系,我正在尝试学习Lambda表达式. 我想做一些图形计算,到目前为止我的代码: IntStream.range(0,(screenSize.width * screenSize.height)).parallel().forEach(id - { int x = id % screenSize.width; int y = ((id-x) / screenSize.wid
我最近与 Java 8取得联系,我正在尝试学习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的? (我记得在某个地方看过这个,但我不确定)

解决方法

只要结果正确,JavaVM实现就可以自由地实现Java字节码解释.它可以随意在GPU上运行任何东西.但是,我不知道目前正在执行此操作的任何Java实现.有一个项目可以为OpenJDK( Project Sumatra)添加GPU加速,你猜对了:它专注于流API,因为它是为编写可以并行化的代码而设计的.但目前这还远没有准备好生产,目前似乎没有人在研究它.

如果你想今天从Java程序在GPU上运行计算,你需要一个库,它使用Java Native Interface包装像OpenCL这样的GPU计算API(对于OpenCL,有JOCL).准备好学习一种新的编程语言,因为每个GPU计算API都使用不同语言的指令,而且它们都与Java非常相似.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读