OpenPOWER CAPI简介
OpenPOWER是以IBM、NVIDIA、Mellanox、Google、TYAN为首的5家公司,于2013年8月发起的一个技术推广联盟,截止到2015年6月,OpenPOWER会员数量超过了130家,来自于中国的厂商就超过了20家。
OpenPOWER所推广的技术就是基于IBM POWER8及以后的处理器与平台技术,这其中POWER8处理器所具备的一致性加速处理器接口(CAPI,Coherent Accelerator Processor Interface)就是一个重要的技术点,也正是它让FPGA迅速成为了新一代异构计算的亮点。
CAPI的基本原理就是通过在POWER处理器(从POWER8开始)内部设置一致性加速处理器代理(CAPP,Coherent Accelerator Processor Proxy),而在外置的加速卡上,则内置POWER处理器服务层(PSL,POWER Service Layer),其与CAPP配合,为加速卡在CPU上打通了一个“后门”。加速卡(PSL)与CPU(CAPP)之间采用成熟的PCIe总线+CAPI协议进行数据传输,但不用走复杂的PCIe I/O模式,并获得了与CPU对等访问虚拟内存地址的能力。目前POWER8内部共有两个CAPP,每个CPU可外接两个CAPI加速卡
CAPI最为关键的重点就在于一致性(Coherent),确切的说它包含两个概念,它们之间是相辅相成的。第一个就是虚拟地址空间访问的一致性,这与传统的总线地址或物理地址访问的模式有了本质的区别。虚拟地址空间访问的一致性,是CAPI加速器实现与CPU对等访问的根本体现,否则在应用编程上仍然要有较大的调整。
一致性的第二个含义就是缓存一致性,在IBM提供的PSL硬核模块(可以集成于合作伙伴的芯片,或写入FPGA)中包含有256KB的缓存,而在CPU内部,CAPP则负责维护CAPI一侧的缓存行目录,以保证CPU级的缓存一致性(CC,Cache Coherency )。这就相当于在CPU内部额外增加了一个特殊的处理核心(给CPU开了一个外挂),其对于内存的访问能力与其他“正常的”CPU核心是一致的,纳入到统一的CC体系,这就与传统的通过PCIe插卡实现加速的方式有了本质的不同。
在具体的FPGA加速应用中,应用透过CAPP与PSL的连接,挂载(绑定)加速卡,PSL与CAPP一起协同,让FPGA里的加速功能单元(AFU,Accelerator Functional Unit)实现与CPU的对等访问——可直接看到应用所指向的虚拟内存地址,并通过PCIe总线与应用沟通
在CAPI+FPGA的应用中,用户先将相关应用的加速算法,以HDL(目前主要是Verilog HDL和VHDL)写入FPGA,构成加速功能单元(AFU),它就是上文提到的那个“外挂的特殊CPU核心”。然后再通过PSL与CAPP的协同,将AFU“嵌入”到CPU里,被应用发现并直接调用。AFU可以直接读写应用所管理的虚拟内存空间,以一种嵌入式的外挂处理模式实现应用的加速。从某种意义上说,“外挂”的AFU的作用有点像CPU的加速指令集(比如SSE、MMX等),但可灵活变换且效率明显更高。
在非CAPI加速体系中,传统的加速卡是以一个I/O设备存在的,这必然需要虚拟地址的重新影射,从而在内存中会生成3个数据副本,并需要大量的驱动访问指令,后果就是延迟的增加
在CAPI体系下,CAPI加速器与CPU实现了对等访问,共享虚拟地址,数据无需转手,直接在加速器与应用之间进行沟通。在实际使用时也很简单,CAPI加速卡可以安装在任何提供PCIe3.0接口的OpenPOWER Linux服务器上。应用软件只需要调用一个CAPI函数,即可直接利用CAPI加速,而在对Linux更新驱动后,即可直接调用原有IM/GM等兼容接口函数
由于CAPI接口并非传统意义上的I/O驱动模式,直接走硬件代理与CPU沟通,所以从应用的全局视角,数据的访问步骤明显减少(FPGA与CPU对等访问),让数据访问效率大幅度提高,总延迟约是传统模式的1/36,同时这种应用加速设计,对于应用的编程修改影响最小
CAPI加速器从准备加速到完成加速的沟通流程相当的简洁明了,可以基本总结为——应用:CAPI加速器,我看到你了;CAPI加速器:应用,我已经为你准备好了;应用:我要处理的数据在内存地址AddrX处,剩下的工作就交给你了;CAPI加速器:好的,没问题;(开始循环加速)……CAPI加速器:报告应用,已经处理完毕;应用:好的,你先休息吧,有事我再叫你
从以上图片可以看出,由于一致性特色的加入,让CAPI加速卡避开了传统I/O设备的驱动模式,直接以“硬件代理”的方式嵌入应用的执行,因此在总体的命令开销方面有明显的减少。这直接带来的效果就是延迟大幅降低——总延迟约只有传统加速模式的1/36,并且带来了更大的好处——由于没有了传统I/O设备层,应用平台为了适配加速器的编程修改非常小,应用开发者完全可以将应用做成自适应模式,在非CAPI平台上采用传统的处理模式,当发现系统有CAPI加速器则自动打开CAPI模式,这显然非常有利于CPAI加速模式在相关应用领域里的普及。
在具体的应用环境中,目前CAPI还不能用于虚拟化平台(比如KVM),但完全支持基于Linux核心的Docker容器平台(现在的CAPI全面支持Ubuntu 14.10)。按照IBM未来的发展规划,新一代CAPI正在路上,它将基于PCIe 4.0规格(也可能会采用新的总线接口),并稍加改动,连接带宽较PCIe 4.0稍微提高,以抵销CAPI协议的开销,从而让加速器可以充分利用到PCIe的带宽。另外,CAPI的虚拟化(多个应用可以分时复用加速器)也将是必然的,融入云计算平台的统一管理也将水到渠成。并且单一PSL未来可以挂载多个AFU,在FPGA内部最多可以同时具备4个AFU,PSL分别为它们保存各自的虚拟空间地址,并与CAPP一起保持缓存一致性,这就相当于给系统同时配备了4个外挂核心。在操作系统方面,未来还将支持AIX、RedHat等OS,这将意味着除了PowerLinux平台,传统的AIX POWER服务器上的应用也将能享受到CAPI加速。
好文章,需要你的鼓励
谷歌发布新的AI学术搜索工具Scholar Labs,旨在回答详细研究问题。该工具使用AI识别查询中的主要话题和关系,目前仅对部分登录用户开放。与传统学术搜索不同,Scholar Labs不依赖引用次数或期刊影响因子等传统指标来筛选研究质量,而是通过分析文档全文、发表位置、作者信息及引用频次来排序。科学界对这种忽略传统质量评估方式的新方法持谨慎态度,认为研究者仍需保持对文献质量的最终判断权。
Meta公司FAIR实验室与UCLA合作开发了名为HoneyBee的超大规模视觉推理数据集,包含250万训练样本。研究揭示了构建高质量AI视觉推理训练数据的系统方法,发现数据质量比数量更重要,最佳数据源比最差数据源性能提升11.4%。关键创新包括"图片说明书"技术和文字-图片混合训练法,分别提升3.3%和7.5%准确率。HoneyBee训练的AI在多项测试中显著超越同规模模型,同时降低73%推理成本。
Meta发布第三代SAM(分割一切模型)系列AI模型,专注于视觉智能而非语言处理。该模型擅长物体检测,能够精确识别图像和视频中的特定对象。SAM 3在海量图像视频数据集上训练,可通过点击或文本描述准确标识目标物体。Meta将其应用于Instagram编辑工具和Facebook市场功能改进。在野生动物保护方面,SAM 3与保护组织合作分析超万台摄像头捕获的动物视频,成功识别百余种物种,为生态研究提供重要技术支持。
上海AI实验室团队提出ViCO训练策略,让多模态大语言模型能够根据图像语义复杂度智能分配计算资源。通过两阶段训练和视觉路由器,该方法在压缩50%视觉词汇的同时保持99.6%性能,推理速度提升近一倍,为AI效率优化提供了新思路。