我在实时获取的视频源上运行计算机视觉算法。我正在使用DispatchQueue
异步运行这些操作/算法。但是,我收到以下错误,我无法解释:
[MTLDebugComputeCommandEncoder dispatchThreadgroups:threadsPerThreadgroup:]:949: failed assertion (threadgroupsPerGrid.width(0) * threadgroupsPerGrid.y(12) * threadgroupsPerGrid.depth(1))(0) must not be 0.'
这是什么错误?
答案 0 :(得分:0)
此消息表明由[MTLDebugComputeCommandEncoder dispatchThreadgroups:threadsPerThreadgroup:]
中的断言导致断言失败。
据我了解,有人断言这个表达式:
threadgroupsPerGrid.width * threadgroupsPerGrid.y * threadgroupsPerGrid.depth
不应该是0
,而是0
,导致此断言失败。此外,他们还注释了这些变量的值:
threadgroupsPerGrid.width
是0
threadgroupsPerGrid.y
是12
threadgroupsPerGrid.depth
是1
threadgroupsPerGrid.width * threadgroupsPerGrid.y * threadgroupsPerGrid.depth
评估为0
此无效状态可能是您将无效参数传递给[MTLDebugComputeCommandEncoder dispatchThreadgroups:threadsPerThreadgroup:]
的结果。如果我不得不猜测,问题可能是threadgroupsPerGrid.width
是0
。