金属线程组性能增量

问题描述

使用 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 (将#修改为@)