我有兴趣在JOGL 2中编写一个OpenGL应用程序,使用着色器而不是固定功能管道。我需要做一些4x4双精度矩阵数学CPU端,以取代固定功能管道的推/弹/变换业务。同一个应用程序还将包含一些需要在大型矩阵上运行的机器学习代码。我已经看过JBLAS用于机器学习的东西了(因为我已经在使用JNI用于JOGL,依赖于另一个本地库有很小的缺点)),但我不确定它是否是GL-的最佳选择相关矩阵。想法?
答案 0 :(得分:2)
这些基准测试可能会帮助您选择符合您的性能需求的产品。
答案 1 :(得分:0)
首先,看看JBLAS的API文档,我认为它不是处理OpenGL矩阵的“最佳选择”,因为它错过了一些基本功能:
要使用OpenGL在屏幕上显示某些内容,您需要使用通常的透视投影矩阵,并可能需要在对象上计算仿射变换。但是第一个只能通过copypasta获得一些LOC,而后者是微不足道的,因为Java已经拥有它们on board,所以我认为你已经准备好了你所拥有的。
答案 2 :(得分:0)
您可能希望将不同的库用于机器学习和OpenGL。
OpenGL将大大受益于使用专为2D,3D和4D矢量设计的小型,快速,优化的矩阵。这些通常包含在您的OpenGL库或游戏引擎中,例如LWJGL包括Matrix4f和朋友。这些库还将提供各种其他与图形相关的功能,例如,你可能想要四元数进行轮换。
另一方面,机器学习算法需要针对并行计算优化的大型矩阵。像Parallel Colt之类的东西是合适的。