是否可以用Java进行GPU编程?我的意思是不使用本机库。
当我们切换到GPU时,可以期待多少性能提升?
编辑:
我不是在看游戏编程,而是想做硬核数字运算。
是。
Java3D,LWJGL和JOGL支持GLSL(OpenGL阴影语言)。
编辑:
如果要在GPU上进行与平台无关的通用计算,则可以使用OpenCL。尽管功能集和执行环境千差万别,但该框架使您可以编写将所有处理单元均一地对待的代码。但是,与Java相比,这是非常底层的编程。
似乎理想的情况是使用OpenCL支持编写的JVM。在网上搜索时,我发现对该创意有点兴趣,但没有任何重大支持的证据。
可以期望多少性能提升
这取决于您所运行的系统以及要处理的数据类型(矩阵和矢量数学在GPU上极为有效)。您可能会在像我这样的系统上获得一些重大收获,该系统具有两个强大的GPU和一个适度的单核CPU。但是,在具有适度GPU和四核CPU的计算机上,性能提升可能很难克服开销。
技术的学习是一个登山的过程。第一章是最为平坦的山脚道路。而从这一章开始,则是正式的爬坡。无论是我写作还是你阅读,都需要付出比第一章更多的代价。那么问题就是,付出更多的精力学习模板是否值得? 这个问题很功利,但是一针见血。因为技术的根本目的在于解决需求。那C++的模板能做什么? 一个高(树)大(新)上(风)的回答是,C++里面的模板,犹如C中的宏、C#和Java中的自省(restropection)
问题内容: 在过去的两年中,我一直在编写Java,现在,我开始用python(另外)进行编写。 问题是,当我查看我的Python代码时,似乎有人试图将Java代码转换为python格式,但结果却很糟糕,因为- python不是Java。 关于如何摆脱“用Python编写Java”模式的任何技巧? 谢谢! 问题答案: 您可能会考虑将自己沉浸在Python范例中。最好的方法是先了解他们的知识,然后通过
编辑#2:因为它看起来像一个bug,我已经在javaFx jira中发布了一个bug报告。您必须拥有一个帐户才能访问该问题。如果有新的信息,我会及时更新这篇文章。 原始帖子:我有一个简单的UI,带有一个按钮和一个树状视图。如果按钮被按下,应该会有一个新的项目添加到树视图。此项一出现在树中就应可编辑。 我使用的CellFactory是JavaFXAPI的一部分。 如果我看看api-留档(TreeVi
比较传统的服务端程序(PHP、FAST CGI 等),大多都是通过每产生一个请求,都会有一个进程与之相对应,请求处理完毕后相关进程自动释放。由于进程创建、销毁对资源占用比较高,所以很多语言都通过常驻进程、线程等方式降低资源开销。即使是资源占用最小的线程,当并发数量超过 1K 的时候,操作系统的处理能力就开始出现明显下降,因为有太多的 CPU 时间都消耗在系统上下文切换。 由此催生了 C10K 编程
我是初学者。我可以在一个JFrame中有多个布局吗?我想用java做一个井字游戏项目,并给它添加一个图形用户界面,所以除了3x3网格之外,我还想要一个JLabel和一个J按钮。那么,我如何构建网格以及添加菜单和单选按钮呢?我应该使用哪种布局?
元编程 避免无谓的元编程。 当编写程序库时,不要使核心类混乱(不要使用 monkey patch)。 对于 class_eval 方法,倾向使用区块形式,而不是字符串插值形式。 当使用字符串插值形式时,总是提供 __FILE__ 及 __LINE__,以使你的调用栈看起来具有意义: class_eval 'def use_relative_model_naming?; true; end', __
1 台阶问题/斐波那契 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) 第二种记忆方法 def memo(func): cache = {} def wrap(*args): if args not in ca
Metaprogramming is a programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyze or tran