找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

苹果M1使用了Arm自定义指令集?开发者逆向惊奇发现:?苹果M1未公开的秘密...

苹果M1使用了Arm自定义指令集?开发者逆向惊奇发现:?苹果M1未公开的秘密...
回复

使用道具 举报

大神点评(1)

苹果M1确实使用了未公开的矩阵协处理器(AMX),但未采用Arm官方定义的自定义指令集,而是通过协处理器架构实现紧密集成。 以下从技术背景、协处理器与加速器的区别、AMX的发现过程及性能优势等方面展开分析:
一、技术背景:矩阵运算与专用硬件需求矩阵是数字的二维表格,广泛应用于图像处理、机器学习、语音识别等领域。例如,机器学习中的神经网络训练依赖大量矩阵乘法运算,而传统CPU通过增加核心数量难以满足其高性能需求。为此,芯片厂商通常通过添加专用硬件(如协处理器或加速器)提升矩阵运算效率。
苹果M1的片上系统(SoC)已包含神经引擎(Neural Engine),用于加速机器学习任务中的矩阵运算。但开发者Dougall Johnson通过逆向工程发现,M1还隐藏了一个名为AMX的矩阵协处理器,其设计目标与神经引擎不同,且未在官方文档中公开。
z1.jpg
图:苹果M1芯片架构示意图(AMX协处理器未在官方标注中显示)二、协处理器与加速器的核心区别
    数据交互方式
    加速器(如GPU、神经引擎):拥有独立内存区域,需CPU预先填充数据并发送指令列表。CPU与加速器间的数据交换需通过共享总线完成,协调开销较高,适合大规模任务。
    协处理器(如AMX):直接监视CPU缓存中的指令流,对特定指令(如矩阵运算)作出反应。CPU可忽略这些指令或辅助协处理器执行,指令可嵌入常规代码中,适合小规模任务。
    集成度与灵活性
    协处理器需与CPU紧密集成,需在指令集架构(ISA)中定义新指令。ARM长期拒绝扩展自定义指令,直至2019年10月才允许客户添加非公开指令(如AMX)。
    加速器(如神经引擎)作为独立模块,无需修改ISA,但与CPU的协同效率较低。
    性能场景
    AMX协处理器通过直接嵌入矩阵运算指令,减少了数据搬运和协调开销,在小规模矩阵任务中效率显著高于神经引擎。
    神经引擎更适合处理大规模、并行化的机器学习任务(如图像分类)。
三、AMX的发现过程与逆向工程开发者Dougall Johnson通过以下步骤发现AMX:
    分析苹果矩阵运算库:苹果的Accelerate框架包含vImage(图像处理)、BLAS(线性代数)、BNNS(神经网络)等子库,均依赖矩阵运算。逆向工程指令流:Johnson编写程序跟踪这些库的机器代码,发现未记录的AMX专用指令(如矩阵乘法、转置等)。验证性能优势:通过对比AMX与ARM官方Neon指令(SIMD向量引擎)的矩阵运算性能,证实AMX效率提升近一倍。
四、苹果未公开AMX的原因
    ARM生态限制ARM长期拒绝自定义指令扩展,以避免生态系统碎片化。2019年允许客户添加非公开指令后,苹果选择将AMX指令隐藏在库中,而非公开ISA定义。
    垂直整合优势
    苹果通过控制硬件(M1芯片)和软件(Accelerate框架),可灵活调整AMX的实现方式(如未来用神经引擎替代AMX)。
    开发者仅需调用框架接口,无需关注底层硬件变化,降低了兼容性风险。
    性能竞争壁垒AMX的隐藏特性使竞争对手难以直接复制其设计,为苹果在机器学习和高性能计算(HPC)领域建立技术优势。
五、AMX的性能优势与实际应用
    性能对比
    NodLabs测试:AMX的矩阵乘法性能是ARM Neon指令的2倍,尤其在8x8或16x16小规模矩阵运算中优势显著。
    能效比:AMX通过减少数据搬运和指令解析开销,在相同功耗下提供更高吞吐量。
    应用场景
    机器学习:加速神经网络推理中的矩阵运算(如自然语言处理、图像识别)。
    多媒体处理:提升视频编解码、音频信号处理的实时性。
    科学计算:优化线性代数运算(如求解线性方程组)。
六、技术延伸:AMX与SIMD向量引擎的区别
    设计定位
    SIMD(如Neon):作为CPU内核的一部分,通过单指令多数据(SIMD)并行处理向量运算(如加法、乘法)。
    AMX:作为协处理器外置,专门优化矩阵运算(如矩阵乘法、点积),指令集更复杂且针对性更强。
    硬件实现
    SIMD向量引擎与ALU、FPU共享指令解码器,由CPU统一调度。
    AMX拥有独立指令流,直接响应缓存中的矩阵运算指令,减少CPU干预。
总结苹果M1通过隐藏的AMX矩阵协处理器,在未违反ARM生态规则的前提下,实现了对矩阵运算的高效加速。其协处理器架构与神经引擎形成互补,覆盖了从小规模到大规模的矩阵任务需求。苹果的垂直整合策略不仅提升了性能,还通过隐藏硬件细节维持了软件生态的稳定性。这一设计为ARM架构在机器学习领域的竞争提供了新思路,也凸显了定制化硬件在专用计算任务中的价值。
回复 支持 反对

使用道具 举报

说点什么

您需要登录后才可以回帖 登录 | 立即注册
HOT • 推荐