网站首页 > 开源技术 正文
近日开发人员道格·约翰逊通过反向工程发现苹果M1处理器中存在名为AMX的协处理器,它不同于M1片上系统(SoC)中的神经网络引擎,甚至没有出现在苹果的各种宣传资料当中。
这个神秘的AMX协处理器可以高效率地执行矩阵运算(包括加、减、缩放和乘积操作),加速诸如图像处理、机器学习、语音和手写识别、人脸识别、数据压缩、音频和视频处理等任务。这或许就是M1能够在一些性能测试中击败酷睿i9等x86处理器的原因。
AMX协处理器同大家熟知的神经网络引擎有一定的区别,GPU和神经网络引擎属于加速器范畴。CPU、协处理器和加速器可以通过共享数据总线交换数据,CPU通常控制内存访问,而加速器通常具有自己的专用内存。加速器的这种架构可以在大规模计算中得到回报,但由于协调等方面的原因,对于较小的任务开销太高。
协处理器则不同,它可以监视从内存读取到CPU的指令流,并对特定指令做出反应,与此同时CPU会忽略这些指令,或者帮助协处理器处理这些指令,延迟更低。
协处理器执行的指令可以放在常规代码中,而不是单独的内存缓冲区中。对于涉及矩阵处理器的较小工作负载,AMX协处理器的效率将优于神经网络引擎。
当然要实现以上目标,苹果需要在微处理器的指令集架构中定义新的特定指令,使协处理器和CPU紧密集成。苹果并未公开AMX协处理器,而是为矩阵相关的数据计算提供了一些特殊的库或框架,比如图形格式转换和处理的vImage、线性代数行业标准BLAS、用于运行神经网络和训练的BNNS、用于信号处理的vDSP、用于求解线性方程组等运算的LAPACK。苹果向开发者提供这些库或框架,而无需关心它的底层实现方法。根据nod.ai的测试结果证明,苹果AMX协处理器执行矩阵乘法运算的效率比ARM v8.6的标准NEON指令高出约2倍,说明苹果的自定义AMX协处理器在机器学习和高性能计算工作中极具优势。
无独有偶,索尼PlayStation 5的片上处理器(SoC)也使用了大量定制设计,在CPU部分仍采用x86架构ZEN2核心的同时,RDNA2.0架构的GPU进行了深度定制以提供更强性能。在我们B站视频账号上也对此有过介绍:https://www.bilibili.com/video/BV1bg4y1873K
PS5的图形处理核心删除了RDNA2.0 GPU中对VRS、Mesh Shader以及DXR等DirectX 12 Ultimate特性的支持,取而代之的是Geometry Engine和Intersection Engine,但对前面那些特效有同样的支持,只是实现细节与名称有所不同。
Geometry Engine为开发者提供了更好的多边形控制能力和地形隐面消除能力,Intersection Engine主要负责光线追踪的硬件加速处理,实现空间反射、环境光遮蔽、阴影画、全局光照等功能。更具体的细节需要索尼方面逐步解密才可了解。
SoC虽然行业中早已在定制芯片中采用,但由于商业保密的原因,这方面公开资料很少。作为电脑玩家,如果仅以DIY圈子内所了解的公开信息去看待这些定制芯片,往往会发现很多现象无法解释,进而得到错误结论,这是需要注意的。
猜你喜欢
- 2024-10-20 R语言学习 - 入门环境Rstudio(r语言基础操作)
- 2024-10-20 WGCNA分析,简单全面的最新教程(wgcna分析不看差异吗)
- 2024-10-20 基础数据类型Tensor(3)(基础数据类型的输入(2)浮点型)
- 2024-10-20 Stata 17 高级统计分析软件|计量经济学
- 2024-10-20 PCA 主成分分析(PCA主成分分析中的PC1是什么意思)
- 2024-10-20 一段段视频在编辑软件里面提取音频太麻烦试试这个批量处理脚本
- 2024-10-20 奇异值分解与主成分分析,一文带你理解Spark分布式降维方法
- 2024-10-20 让Python性能超过一切语言?当然可行,为什么不可行呢?
- 2024-10-20 一文弄清深度学习、TensorFlow和张量之间的关系
- 2024-10-20 C语言标准库函数和第三方库函数的介绍和比较,如何选择合适的库
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)