检查设备是不是有神经引擎

Posted

技术标签:

【中文标题】检查设备是不是有神经引擎【英文标题】:Check if device has Neural Engine检查设备是否有神经引擎 【发布时间】:2021-11-11 13:21:06 【问题描述】:

除了推断设备型号和版本外,是否有 API 可以知道当前设备是否具有神经引擎? (Apple 平台)。

目的是在设备没有此类硬件加速的情况下,默认禁用一些依赖 CoreML 模型的非关键功能。

【问题讨论】:

【参考方案1】:

我找不到明确的 API,但使用 Instruments,您可以查看模型是在 ANE 还是 Metal(即 GPU)上运行。我想在运行时你可以使用Objective C和一些方法来查看是否调用了那些ANE类(使用符号断点,它们都以ANE为前缀),但你需要先通过它来找出答案。

MLModelConfiguration 有一个computeUnits 属性,它允许您专门告诉模型不要在 ANE 上运行,但不是相反,系统会调用是否使用 ANE。

这里有一些额外的信息可能会有所帮助: https://github.com/hollance/neural-engine

【讨论】:

谢谢。如果需要某些方法调配和其他方法,则从模型名称和版本推断它可能更容易且更“耐用”。毕竟,所有新设备(目前除了手表)都有 ANE。鉴于系统要求限制了应用程序可以在其上运行的模型数量,维护设备的负面列表非常简单。

以上是关于检查设备是不是有神经引擎的主要内容,如果未能解决你的问题,请参考以下文章

神经引擎 iPhone/iPad 编程

检查列表中是不是存在数字,应用引擎模板

神经网络推荐引擎

如何检查 docker 引擎和 docker 容器是不是正在运行?

Jade - 模板引擎:如何检查变量是不是存在

用于检查网站是不是具有搜索引擎友好 URL 的 Ruby 代码