当前位置: 首页 > 知识库问答 >
问题:

苹果硅的这种金属计算功能有什么错误?

施振海
2023-03-14

我正在开发具有金属计算功能的人工智能应用程序。如从Metal Debugger捕获的以下图片所示:预览图片错误,而附件视图中的图片正确。最终结果与预期的预览图片相同。

此错误没有出现在x86_64Macbook中,而是出现在M1 Macbook中。我认为将您的Metal应用程序带到Apple硅Mac中可能提到了一些问题(例如并发读取)。

如何调试它?

共有1个答案

张高义
2023-03-14

错误已修复。

原因:使用未跟踪的MTLHeaps,但不使用MTLFence来保护GPU可能会并行执行两个过滤器,从而读取从堆中分配的未初始化动态纹理数据。

解决方案1:设置MTLFence,见https://developer.apple.com/documentation/metal/synchronization/implementing_a_multistage_image_filter_using_heaps_and_events

解决方案2:将未跟踪的MTLHeap转换为跟踪的MTLHeap,也就是说,让heapDescriptor。HazartTrackingMode=mtlhazardTrackingModeTracking,请参阅https://developer.apple.com/documentation/metal/mtlheapdescriptor/3131686-hazardtrackingmode

 类似资料:
  • 新的Xcode 12是否支持为不在新的Apple Silicon上运行的计算机制作应用程序?我想知道这一点,因为我需要为自己制作一个新的应用程序。

  • 在我之前的基于英特尔的Mac电脑上,我曾经包括 在我的shell资源文件中。新的基于ARM的Apple芯片上的正确编译标志是什么?????似乎还没有很多资源,任何指针都非常感谢!

  • 由于ffi问题,我在M1 MacBook上运行“pod安装”失败,如下所述。 我遵循了一些解决方法(我想我以不同的顺序尝试了所有方法),但现在我得到了一个稍微不同的错误: 看来我现在有了ffi,但架构不对?我该怎么解决这个问题?在Rosetta模式下运行/不运行终端时会发生这种情况。 顺便说一句,其中一个提议的变通办法对我来说没有成功。当我尝试时: 我得到: 不确定这是否相关。

  • 我有一个Flutter项目,我正试图在iOS上运行。它在我的基于英特尔的Mac电脑上正常运行,但在我的新的基于苹果硅的M1 Mac电脑上,它无法安装吊舱。 基于Github解决方案,我尝试使用rosetta运行Terminal,但问题仍然是:https://github.com/CocoaPods/CocoaPods/issues/9907#issuecomment-655870749 意识到现在

  • 所以我已经从他们的网站上下载了正确的苹果硅android studio安装。当试图安装时,安装过程卡在这条消息上: 正在下载https://dl . Google . com/Android/repository/emulator-Darwin _ aarch 64-8807927 . zip警告:此下载无法从临时状态完成。不缓存重试。正在下载https://dl . Google . com/A

  • 我在用jmeter记录我的https流量时遇到问题,并且总是收到此错误消息。不过,我在记录常规流量方面没有任何麻烦。 响应代码:非HTTP响应代码:javax.net.ssl.SSLHandshakeException响应消息:非HTTP响应消息:java.security.cert.CertificateException:没有可用的X509TrustManager实现 到目前为止,我为克服这个