问题描述
使用 2048 x 896 纹理,我一直在为 MTLComputeCommandEncoder
调用以下内容:[myEncoder dispatchThreadgroups:a threadsPerThreadgroup:b];
其中“a”是MTLSize(256,30,1)
,“b”是MTLSize(8,8,1)
在我意识到在较新的 GPU 硬件 (since 10.13.x) 上有更好的非统一线程组方法后,我现在看到更好的方法是让 GPU 解决:NSUInteger w = pipeline.threadExecutionWidth;
NSUInteger h = pipeline.maxTotalThreadsPerThreadgroup/threadW;
MTLSize a = MTLSizeMake(texture.width,texture.height,1);
MTLSize b = MTLSizeMake(w,h,1);
[myEncoder dispatchThreads:a threadsPerThreadgroup:b];
其中“a”是MTLSize(2048,896,1)
,“b”是MTLSize(64,16,1)
在 Radeon Vega 48 硬件上,理论性能差异是多少?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)