CXL设备根据其功能和用途被分为三种类型: Type 1、Type 2 和 Type 3, 这三种类型的设备通过支持不同的协议子集(CXL.io、CXL.cache 和 CXL.mem)来满足不同的应用需求.

CXL Type 1 设备主要用于加速计算任务的硬件设备,如加速器(Accelerators),包括 GPU、FPGA、专用集成电路(ASIC)等. 它们通过支持特定的 CXL 协议子集来与主机系统进行高效的交互和数据传输. CXL Type 1 设备通常不具有自己的专用内存,而是依赖于主机的系统内存, 这意味着设备在执行任务时需要通过 CXL.cache 协议来访问主机内存. 另外通过支持缓存一致性, CXL Type 1 设备可以与主机共享内存视图,这使得它们能够高效地处理需要频繁访问主机内存的数据密集型任务. CXL Type 1 设备支持 CXL.io 和 CXL.cache 协议,其中:

  • CXL.io: 用于传统的 PCIe 设备配置和管理,包括设备的发现、初始化、控制和状态监控
  • CXL.cache: 支持缓存一致性协议,使加速器能够与主机共享一致的内存视图, 这种一致性允许设备直接访问和操作主机的内存,同时保持数据的一致性

CXL Type 1 设备主要用于加速数据处理和计算任务,特别是在需要快速数据访问和处理的应用场景中. 由于不依赖于专用内存,CXL Type 1 设备可以更容易地与主机共享资源,从而提高系统的灵活性和扩展性. 通过 CXL.cache 协议,Type 1 设备能够实现低延迟的内存访问,这对于需要快速响应的应用来说是一个重要优势. CXL Type1 设备主要的应用场景:

  • 机器学习和人工智能(AI):用于加速深度学习模型推理和训练过程,特别是在需要快速访问大量数据的场景中
  • 图像和视频处理:加速图像识别、视频编码和解码等任务
  • 高性能计算(HPC):用于科学计算、模拟和建模等需要高计算能力和快速数据访问的应用
  • 数据分析和大数据处理:加速实时数据分析和处理任务,尤其是在需要快速访问和处理大规模数据集时

不过由于没有专用内存,CXL Type 1 设备的性能可能受到主机内存带宽和延迟的限制, 以及维护缓存一致性需要一定的协议开销,可能影响极端性能需求的应用.

图片无法显示,请右键点击新窗口打开图片

CXL Type 2 设备是一种支持缓存一致性和主机管理的设备内存的设备类型,通常用于需要高带宽内存的应用, 这些设备通过 CXL 协议与主机系统进行连接和通信,以提供更高效的计算能力和更大的内存容量. CXL Type 2 设备可以包含由主机管理的设备内存, 这种内存扩展允许设备附加大容量的内存,从而支持更大的数据集和更复杂的应用程序. CXL Type 2 设备支持所有 CXL.cache/CXL.mem 事务, 这包括从主机到设备(H2D)和从设备到主机(D2H)的相干和内存访问事务. 典型应用:

  • 这些设备通常用作硬件加速器,支持如图形处理、科学计算、数据挖掘等任务
  • 能够有效地处理需要高计算能力和大规模数据处理的应用程序

图片无法显示,请右键点击新窗口打开图片

CXL Type 3 设备是一种仅包含主机管理的设备内存的设备类型, 它的主要功能是作为内存扩展器,为主机提供额外的内存容量和灵活性, 这类设备是 CXL 协议的重要组成部分,专注于增强系统的内存能力,并通过 CXL.mem 协议与主机通信. 与 CXL Type 1 和 Type 2 设备不同,CXL Type 3 设备不包含缓存一致性(Coherent Cache). 它只提供由主机完全管理的设备内存. 主机可以将 CXL Type 3 设备的内存视为扩展的内存区域,用于存储数据或运行需要更大内存容量的应用程序.

CXL Type 3 设备主要使用 CXL.mem 协议处理内存读写事务, 它支持两种基本的事务类型:

  • MemRd(内存读取): 主机向设备发送读取请求,设备将数据返回给主机
  • MemWr(内存写入): 主机向设备发送写入请求,设备将数据写入其内存

CXL Type 3 设备允许系统通过 CXL 链路扩展内存容量,而无需直接升级主机的物理内存(如DDR内存). 这种灵活性使得数据中心和高性能计算(HPC)系统能够更经济地扩展内存资源. CXL Type 3 设备主要应用于需要大容量内存的场景, 以下是一些典型的应用领域:

  • 内存扩展: Type 3 设备通常被用作内存扩展器,提供额外的大容量内存. 它可以用于支持需要超大数据集的应用,例如大规模数据分析、科学模拟和数据库管理
  • 冷数据存储: 在内存分级架构中,CXL Type 3 设备可以用作存储较少访问的”冷数据”区域, 主机将频繁使用的”热数据”保存在本地 DRAM 中,而将不常用的数据存储在 CXL Type 3 设备的内存中,从而优化性能和成本
  • 分布式计算和虚拟化: CXL Type 3 设备非常适合虚拟化和云计算环境,这些环境通常需要灵活的内存资源分配. 它可以帮助主机动态扩展内存,支持多个虚拟机或容器共享一组大容量内存
  • 内存密集型工作负载: 适合运行需要高内存带宽和低延迟的大规模并行计算应用,如人工智能(AI)、机器学习(ML)、图像处理和视频渲染

图片无法显示,请右键点击新窗口打开图片