架构上UMA算是个优势,Host跟Device可以在Cache上做Coherency而不必过RAM,且因为这个一致性可以开发层控制好读写同步避免复制数据。
微架构上个人认为倒也确实更先进一些(我对先进的定义是算力利用率这些)。Apple GPU很注重调度灵活性与执行单元的多样化利用性,比如各种分级加回馈信息控制的调度,不同类型走不一样的分布式发射队列实现多发射,等等。最终实现更细粒度与具有动态性与实时性的运行。相比之下NV全是各种编译期的静态信息,运行时也倾向于根据静态信息划分资源与调度,经常性ALU Starvation,全靠暴力堆料。
但是把AppleSilicon GPU的MemorySubsystem很拉垮,SLC延迟大也就算了,OnChip Memory也小的窒息,跑太复杂的内容后经常炸Memory。
