gpt4 book ai didi

ios - 无法使用 Xcode 8 编译的 Metal 函数

转载 作者:行者123 更新时间:2023-11-29 00:40:48 25 4
gpt4 key购买 nike

自从迁移到 Xcode 8 和 iOS10 以来,我的基于 Metal 的应用程序根本无法运行。启动时出现错误:“编译器因 XPC_ERROR_CONNECTION_INTERRUPTED 失败”

由于未成功创建 MTLComputePipelineState 并在调用 MTLDevice 函数 makeComputePipelineState(功能:)。我对该项目所做的唯一更改是更新到 Swift 3.0,但控制台似乎暗示编译器错误,这是由于我认为崩溃是由于某些 Metal 代码未正确编译所致。

任何帮助将不胜感激,这让我过早变老。

更新:

我已经在 .metal 文件中找到了导致问题的行:

int gi1 = permMod12[ii+i1+perm[jj+j1+perm[kk+k1]]];

permMod12 是一个静态常量数组,声明为:

static constant int permMod12 [512] = {7,4,5,7...}

perm 同样是静态的和常量的:

static constant int perm [512] = {151,160...}

变量iii1jjj1kkk1 都是在同一个内核中计算的整数。

内核相当大,所以我会发布一个 link到 GitHub 位置。导致该问题的是名为 simplex3Dsimplex4D 的函数。这些非常相似,因此只关注其中一个,它们是抄本,但 4D 运行着另一段变量(lll1l 等)。

问题似乎出在使用计算变量查找这些数组,因为当我将变量更改为简单文字时,没有错误。

需要执行内核才能使错误发生。

任何有关此新信息的帮助都会很棒。

最佳答案

我也遇到了同样的错误:“编译器因 XPC_ERROR_CONNECTION_INTERRUPTED 而失败”。问题得到解决。它源于尝试使用“threadgroup bool”类型变量。重构代码以使用“线程组短”变量代替 bool 值解决了该错误。 (在 Metal Version 2 规范中找不到 bool 类型是否是有效的线程组类型。)

关于ios - 无法使用 Xcode 8 编译的 Metal 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com