问题标签 [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.
ios - 使用 OpenGL ES 2.0 for iOS 的线性代数库
有谁知道 iOS 的线性代数库在幕后使用 OpenGL ES 2.0?
具体来说,我正在寻找一种在 iOS 设备上使用 GPU 对任意大小的矩阵(例如,比 4x4 大得多,更像是 5,000 x 100,000)进行矩阵乘法的方法。
tensorflow - 使用金属性能着色器进行反卷积
原来没有像deconvolution
in这样的操作MPS
。中最接近的类似物tensorflow
是conv2d_transpose
.
MPS
是否可以在默认操作之间对插件自定义操作进行排序?
ios - 限制在具有 A8 处理器或更高版本(iPhone 6 及更高版本)的设备上安装应用程序
我有一个主要基于 Metal Performance Shaders 框架的应用程序。但是这个框架在 iPhone5S 上不受支持,因为它使用处理器 A7。因此,如果应用程序运行在 5s 上,它将毫无意义。
所以我想限制 App Store 的可用性,使应用程序仅适用于 iPhone 6 及更高版本的设备,即处理器 A8 或更高版本。
我找到了一种使用 Info.plist 中的密钥来限制 iPhone 5 及以下设备的方法,UIRequiredDeviceCapabilities
但找不到任何可以区分 iPhone 5s 和其他最新设备的密钥。
有没有同样的方法?
ios - 为什么我无法成功初始化 MPSMatrix?
我想知道为什么我不能MPSMatrix
成功初始化?对象方法 initWith 只返回一个 nil(这意味着初始化不成功)。我的代码如下所示,我想创建一个MPSMatrix
命名的 matrixA 但只得到一个 nil 。
swift - 出货后持续训练 CoreML 模型
在查看新的 CoreML API 时,我看不到在生成 .mlmodel 并将其捆绑到您的应用程序后继续训练模型的任何方法。这让我认为我将无法对用户的内容或动作执行机器学习,因为必须事先对模型进行完全训练。
发货后有什么方法可以将训练数据添加到我的训练模型中?
编辑:我刚刚注意到您可以从 URL 初始化生成的模型类,所以也许我可以将新的训练数据发布到我的服务器,重新生成经过训练的模型并将其下载到应用程序中?似乎它会起作用,但这完全破坏了能够在用户数据不离开设备的情况下使用 ML 的隐私方面。
ios - 如何将 MTLTexture 转换为 CVpixelBuffer 以写入 AVAssetWriter?
我需要在实时视频上应用过滤器,我正在尝试在 Metal 中执行此操作。
但是在将过滤器编码为目标过滤器后,我遇到了将 MTLTexture 转换为 CVPixelBuffer 的问题。参考(https://github.com/oklyc/MetalCameraSample-master-2)
这是我的代码。
方法 imageFromCVPixelBuffer 看起来像这样。
这是通过金属渲染图像的屏幕截图
这是将 MTLTexture 转换为 CVPixelBuffer 的同一图像的屏幕截图。
需要将 MTLtexture 转换为 CVPixelBuffer 以写入 AVAssetWriter 然后将其保存到库中。
ios - 是否有另一种方法来分析金属内核?
我尝试使用“捕获 GPU 帧”来分析一些金属内核。我遇到了一些奇怪的错误,例如“Unexpected Replayer Terminated”即将结束时,我无法修复。
那么,是否有另一种方法来测量金属内核的时间?
我正在使用 XCode 8.3.2 和 iOS 10.3.2。我无法在模拟器中运行,因为我使用的是 Metal Performance Shaders。
ios - 在 Metal 中使用自定义计算着色器时出现内存泄漏
MPSKernal
我尝试使用apple 和 custom 提供的默认过滤器通过金属应用实时相机过滤器compute Shaders
。
我在网格中的集合视图上应用自定义过滤器,并结合默认和自定义内核函数。
它看起来像在应用程序剪辑中。
memory leaks
但是我观察到的是,与苹果提供的默认内核函数相比,使用自定义过滤器有很多。
我不知道我犯了什么错误,如果有的话。
这是我的自定义计算着色器。
关于我创建我的管道和通过线程组进行调度,代码在这里
带有自定义 Shader 的 Pipeline 状态是这样创建的。
Malloc 16 bytes
在仪器仪表中,它表明某些方法和方法存在泄漏[Mtkview draw]
。
屏幕截图如下所示。
我需要帮助找出问题发生的位置和方式。
谢谢。
ios - 如何使用使用金属的自定义计算着色器并获得非常流畅的性能?
MPSKernal
我尝试使用apple 和 custom 提供的默认过滤器通过金属应用实时相机过滤器compute Shaders
。
在计算着色器中,我使用 MPSImageGaussianBlur 进行了就地编码,代码在这里
但有时原地纹理往往会失败,最终会在屏幕上产生抖动效果。
因此,如果有人可以在不使用就地纹理或如何使用fallbackCopyAllocator
或compute shaders
以不同方式使用的情况下向我提出解决方案,那将非常有帮助。
ios - 如何在使用自定义着色器时裁剪纹理?
我尝试裁剪MTLTexture
苹果使用clipRect
和offset
属性提供的使用默认过滤器,它与实时视频过滤配合得很好。
但是对于自定义过滤器(使用custom shaders
)的属性clipRect
,offset
对裁剪没有影响,MTLTexture
我尝试使用MPSImageLanczosScale
引用Crop 和缩放 MTLTexture进行裁剪。
正如您在此处看到的,我们正在尝试裁剪纹理,然后对过滤器进行编码,这是一种双向操作,过程非常缓慢。
但是如果在不裁剪纹理的情况下应用过滤器,则性能非常平滑。编码方法看起来像这样。
无需使用模糊过滤器进行编码。但是我添加了这种跳跃,它会使用clipRect
和offset
属性进行裁剪,但没有运气。
因此,如果有人有更好的解决方案,可能会在自定义着色器方法中修改纹理矩形,这会很有帮助。另外,如果有人会建议我苹果如何使用它clipRect
以及offset
对我有帮助的属性。