问题标签 [metal-performance-shaders]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
980 浏览

ios - 使用 OpenGL ES 2.0 for iOS 的线性代数库

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

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

0 投票
3 回答
1145 浏览

tensorflow - 使用金属性能着色器进行反卷积

原来没有像deconvolutionin这样的操作MPS。中最接近的类似物tensorflowconv2d_transpose.

MPS是否可以在默认操作之间对插件自定义操作进行排序?

0 投票
0 回答
153 浏览

ios - 限制在具有 A8 处理器或更高版本(iPhone 6 及更高版本)的设备上安装应用程序

我有一个主要基于 Metal Performance Shaders 框架的应用程序。但是这个框架在 iPhone5S 上不受支持,因为它使用处理器 A7。因此,如果应用程序运行在 5s 上,它将毫无意义。

所以我想限制 App Store 的可用性,使应用程序仅适用于 iPhone 6 及更高版本的设备,即处理器 A8 或更高版本。

我找到了一种使用 Info.plist 中的密钥来限制 iPhone 5 及以下设备的方法,UIRequiredDeviceCapabilities但找不到任何可以区分 iPhone 5s 和其他最新设备的密钥。

有没有同样的方法?

0 投票
2 回答
287 浏览

ios - 为什么我无法成功初始化 MPSMatrix?

我想知道为什么我不能MPSMatrix成功初始化?对象方法 initWith 只返回一个 nil(这意味着初始化不成功)。我的代码如下所示,我想创建一个MPSMatrix命名的 matrixA 但只得到一个 nil 。

0 投票
7 回答
3402 浏览

swift - 出货后持续训练 CoreML 模型

在查看新的 CoreML API 时,我看不到在生成 .mlmodel 并将其捆绑到您的应用程序后继续训练模型的任何方法。这让我认为我将无法对用户的内容或动作执行机器学习,因为必须事先对模型进行完全训练。

发货后有什么方法可以将训练数据添加到我的训练模型中?

编辑:我刚刚注意到您可以从 URL 初始化生成的模型类,所以也许我可以将新的训练数据发布到我的服务器,重新生成经过训练的模型并将其下载到应用程序中?似乎它会起作用,但这完全破坏了能够在用户数据不离开设备的情况下使用 ML 的隐私方面。

0 投票
1 回答
4135 浏览

ios - 如何将 MTLTexture 转换为 CVpixelBuffer 以写入 AVAssetWriter?

我需要在实时视频上应用过滤器,我正在尝试在 Metal 中执行此操作。

但是在将过滤器编码为目标过滤器后,我遇到了将 MTLTexture 转换为 CVPixelBuffer 的问题。参考(https://github.com/oklyc/MetalCameraSample-master-2

这是我的代码。

方法 imageFromCVPixelBuffer 看起来像这样。

这是通过金属渲染图像的屏幕截图

在此处输入图像描述

这是将 MTLTexture 转换为 CVPixelBuffer 的同一图像的屏幕截图。

在此处输入图像描述

需要将 MTLtexture 转换为 CVPixelBuffer 以写入 AVAssetWriter 然后将其保存到库中。

0 投票
0 回答
240 浏览

ios - 是否有另一种方法来分析金属内核?

我尝试使用“捕获 GPU 帧”来分析一些金属内核。我遇到了一些奇怪的错误,例如“Unexpected Replayer Terminated”即将结束时,我无法修复。

那么,是否有另一种方法来测量金属内核的时间?

我正在使用 XCode 8.3.2 和 iOS 10.3.2。我无法在模拟器中运行,因为我使用的是 Metal Performance Shaders。

0 投票
1 回答
791 浏览

ios - 在 Metal 中使用自定义计算着色器时出现内存泄漏

MPSKernal我尝试使用apple 和 custom 提供的默认过滤器通过金属应用实时相机过滤器compute Shaders

我在网格中的集合视图上应用自定义过滤器,并结合默认和自定义内核函数。

它看起来像在应用程序剪辑中。

在此处输入图像描述

memory leaks但是我观察到的是,与苹果提供的默认内核函数相比,使用自定义过滤器有很多。

我不知道我犯了什么错误,如果有的话。

这是我的自定义计算着色器。

关于我创建我的管道和通过线程组进行调度,代码在这里

带有自定义 Shader 的 Pipeline 状态是这样创建的。

Malloc 16 bytes在仪器仪表中,它表​​明某些方法和方法存在泄漏[Mtkview draw]

屏幕截图如下所示。

在此处输入图像描述

我需要帮助找出问题发生的位置和方式。

谢谢。

0 投票
2 回答
1474 浏览

ios - 如何使用使用金属的自定义计算着色器并获得非常流畅的性能?

MPSKernal我尝试使用apple 和 custom 提供的默认过滤器通过金属应用实时相机过滤器compute Shaders

在计算着色器中,我使用 MPSImageGaussianBlur 进行了就地编码,代码在这里

但有时原地纹理往往会失败,最终会在屏幕上产生抖动效果。

因此,如果有人可以在不使用就地纹理或如何使用fallbackCopyAllocatorcompute shaders以不同方式使用的情况下向我提出解决方案,那将非常有帮助。

0 投票
0 回答
1040 浏览

ios - 如何在使用自定义着色器时裁剪纹理?

我尝试裁剪MTLTexture苹果使用clipRectoffset属性提供的使用默认过滤器,它与实时视频过滤配合得很好。

但是对于自定义过滤器(使用custom shaders)的属性clipRectoffset对裁剪没有影响,MTLTexture我尝试使用MPSImageLanczosScale引用Crop 和缩放 MTLTexture进行裁剪。

正如您在此处看到的,我们正在尝试裁剪纹理,然后对过滤器进行编码,这是一种双向操作,过程非常缓慢。

但是如果在不裁剪纹理的情况下应用过滤器,则性能非常平滑。编码方法看起来像这样。

无需使用模糊过滤器进行编码。但是我添加了这种跳跃,它会使用clipRectoffset属性进行裁剪,但没有运气。

因此,如果有人有更好的解决方案,可能会在自定义着色器方法中修改纹理矩形,这会很有帮助。另外,如果有人会建议我苹果如何使用它clipRect以及offset对我有帮助的属性。