返回

M1处理器剖析:浅析第二阶段

开发工具

苹果M1 GPU剖析:第二阶段

不到一个月前,我开始调查苹果M1 GPU,希望开发一个免费的开源驱动。本周,我已经达到了第二个里程碑:用自己的开源代码画出了一个三角形。顶点和碎片着色器是用机器代码手写的,我通过IOKit内核驱动与硬件接口,方式与系统的Metal用户空间驱动相同。

新代码的主要部分是负责构建各类著色器、对它们的代码进行必要的预处理,并将它们加载到GPU,然后将其用于GPU编程。

接下来,我计划实现材质。为此,我需要使用iOS内核扩展与GPU通信,还需要利用苹果内部用于驱动Frameworks的Metal框架为其创建一个公共的、文档齐全的替代品。如果成功,我就能够使用Vulkan实现真正的开源驱动,而不必局限于Apple的Metal图形API。

如果要走这条路线,我就需要剖析Apple的Metal框架。因为虽然它是一个非常强大的图形API,但它却不是一个真正的低功耗芯片API。如果我想看到真正的高性能图形,我需要直接与硬件打交道。

换句话说,这意味着我要研究苹果的图形处理器。幸运的是,我已经找到了一个非常有用的参考:逆向工程师Chrissy Dorman为Apple A12X GPU编写了一个详细的文档,我相信其中许多信息也适用于M1。我强烈推荐您阅读她的工作成果。

苹果的M1芯片引领了一场ARM架构处理器的革命

毫无疑问,苹果的M1芯片引领了一场ARM架构处理器的革命。这种低功耗芯片为Mac带来了高性能图形,而这在过去是不可想象的。

M1的GPU是一个令人印象深刻的工程壮举,它证明了苹果在芯片设计方面的实力。我很高兴看到苹果在未来几年会用这种芯片做出什么。

我将继续分享我的研究成果,敬请期待!

如果您有兴趣了解更多关于M1 GPU的信息,请查看以下资源: