10

有谁知道 iOS 的线性代数库在幕后使用 OpenGL ES 2.0?

具体来说,我正在寻找一种在 iOS 设备上使用 GPU 对任意大小的矩阵(例如,比 4x4 大得多,更像是 5,000 x 100,000)进行矩阵乘法的方法。

4

3 回答 3

0

您是否有特定原因要求“在幕后使用 OpenGL ES 2.0”?或者你只是想要一个快速的、硬件优化的线性代数库,比如BLAS,它内置在 iOS 中?

于 2013-01-12T04:04:24.923 回答
0

MetalPerformanceShaders.framework 提供了一些经过调整的类似 BLAS 的功能。它不是 GLES。它是金属的,在 GPU 上运行。请参阅 MetalPerformanceShaders/MPSMatrixMultiplication.h

于 2017-08-15T22:06:03.977 回答
-1

iOS 上的 OpenGL 可能是错误的方法。如果您要使用 GPU,iOS 上的金属支持将是更好的选择。

金属

您可以使用 Apple 对 Metal Compute 着色器的支持。我已经为我的博士学位编写了高性能代码。我使用 Metal计算一些分形的早期实验可能会给你一些开始的想法

归根结底,这个问题太宽泛了。您打算将该库用于什么用途,或者您打算如何使用它?是一次性乘法吗?您是否使用当前库进行了测试,发现性能太慢?如果是这样,多少?

一般来说,您可以针对算法 X 在 CPU 与 GPU 与专用硬件上的性能进行教育性或纯信息性实验,但大多数情况下,您会遇到阿姆达尔定律和您的代码与该领域的专家团队的对比。

加速

您还可以查看提供 BLAS 的 Accelerate 框架。

根据 WWDC 2014 演讲What's new in the Accelerate Framework,Apple 已经针对当前一代硬件手动调整了线性代数库。它们不仅速度快,而且节能。也有更新的谈话。

于 2015-02-19T11:43:56.853 回答