Tag: gpu

硬件加速java中的位图绘制

我希望能够在java中尽快绘制video的连续位图(类型为BufferedImage.TYPE_INT_RGB)。 我想知道这样做的最佳方法。 有没有人有任何建议我应该从哪里开始? 根据我的阅读,有两个选项:1)在使用JAWT的JNI dll中使用GDI / GDI +例程(我在Windows上)2)使用Java3D并将Textures应用到Box的脸部并将其旋转到相机 我对这些主题以及其他任何建议都很感兴趣。 当我创建一个ActiveX控件时,我在VB中做了大量的GDI / GDI +编程,所以使用GDI应该是无痛的,但我猜测Java3D会更多地利用GPU(我可能会错)并提供更好的性能。 你怎么看? GDI和JAWT与我以前的经验,或者与Java3D一起开始和新的API之旅。 提前致谢。 🙂

在CPU上的Java中可以并发运行的最大线程数

我对某事感到困惑。 我所知道的是,在现代计算机的普通CPU上可以并发运行的最大线程数范围为8到16个线程。 另一方面,使用GPU可以同时运行数千个线程,而调度程序不会中断任何线程来安排另一个线程。 在以下几个post中: Java虚拟机 – 最大线程数 https://community.oracle.com/message/10312772人们声称他们在普通CPU上同时运行数千个Java线程。 这怎么可能? 我怎么知道可以并发运行的最大线程数,以便我的代码根据底层架构自动调整它。

如何在GPU上运行我的java程序?如何更改我的程序可以加速?

我编写了一个由几个类组成的程序,但计算速度太慢(程序用粗体表示),我希望让我的java程序在GPU上运行以加速计算,或者是否有其他方法可以加快运行速度,如何更改我的代码?程序的计算如下: public class ComputeThreadPool { public static double[][] distance = new double[40][8]; public static HashMap simMap = new HashMap(); static class WorkThread implements Runnable { private Map testWordTFMap; private Map trainWordTFMap; private Map words; private String trainname; public WorkThread(Map map1, Map map2, Map words,String trainname) { this.testWordTFMap = map1; this.trainWordTFMap = map2; this.words = words; […]

Android GPU分析 – OpenGL动态壁纸很慢

我正在使用OpenGL ES 3.0开发动态壁纸。 我根据http://www.learnopengles.com/how-to-use-opengl-es-2-in-an-android-live-wallpaper/上的优秀教程进行设置,调整GLSurfaceView并在里面使用它动态壁纸。 我对OpenGL / GLSL最佳实践有很好的了解,并且我已经设置了一个简单的渲染管道,其中绘制循环尽可能紧密。 没有重新分配,使用一个静态VBO用于非变化数据,一个动态VBO用于更新,仅使用一个绘制调用,在着色器等中没有分支。 我通常会获得非常好的表现,但在看似随机但又重复的时候,帧速率会下降。 使用屏幕栏进行分析可以得到黄色条(“等待命令完成”)射击的间隔,并将所有内容都高于关键的60fps阈值。 我已经阅读了任何关于剖析和解释我可以得到的数字的资源,包括这里非常深入的SO问题 。 然而,该问题的主要内容似乎是黄色条表示等待阻塞操作完成所花费的时间,以及帧依赖性 。 我不相信我有任何这些,我只是在每一帧画出一切。 没有阅读 。 我的问题很广泛 – 但我想知道什么事情会导致这种类型的帧率下降,以及如何推进这个问题。 以下是可能会或可能不会产生影响的一些细节: 我正在按需渲染,onOffsetsChanged是触发器(脏时渲染)。 有一个单一纹理(仅创建并绑定一次),1024×1024 RGBA。 用普通的vec4替换一个texture2D调用似乎有助于删除一些帧率下降。 将纹理大小减小到512×512对性能没有任何帮助。 着色器并不复杂,如前所述,不包含分支。 场景中没有太多数据。 只有约300个顶点和一个纹理。 systrace没有显示可疑方法 – GL相关方法(如缓冲区填充和状态调用)不在列表的顶部。 更新:作为一个实验,我试图只渲染每一个帧 ,而不是每次onOffsetsChanged(向左/向右滑动)请求渲染。 这对于外观和感觉来说太可怕了,但几乎完全摆脱了黄色的滞后尖峰。 这似乎告诉我,每帧做60个请求太多了,但我无法弄清楚为什么。