AI硬件知识

AI硬件

A800只是在A100的基础上,将NVLink高速互连总线的带宽从600GB/s降低到400GB/s,仅此而已。

瑞芯微 RockX RKNN

昇腾 CANN

海光 ROCm

寒武纪 Neuware

自建生态是长久之道,国产头部算力生态厂商受益。全球来看主要的追赶者AMD和Intel均是走兼容模式为主,是以移植方式兼容CUDA生态,以此次报道的要求来看或短期不受影响。国内核心国产AI算力芯片技术路线中,华为昇腾自建CANN生态、寒武纪自建生态Neuware、海光使用AMD的ROCm平台,其中自建生态的华为昇腾和寒武纪在生态自主上走的更稳更远,而海光当前短期或不受影响且可借力AMD,报道中提到的登临科技、摩尔线程、壁仞科技等AI芯片创业或面临较大的AI算力生态压力。

CUDA 库主要包括以下几个部分:

CUDA Runtime API:这是CUDA的核心库,提供了运行时的设备初始化、内存管理、内核执行等功能。

CUDA Driver API:这是CUDA的底层驱动库,提供了与设备和操作系统底层交互的功能。

CUDA CUDART库:这是CUDA运行时库,提供了C语言的标准数学函数和其他功能的接口。

CUDA CUBLAS库:这是CUDA的线性代数库,提供了高效的矩阵和向量运算。

CUDA CUFFT库:这是CUDA的快速傅立叶变换库,用于进行傅立叶变换。

CUDA CURAND库:这是CUDA的随机数库,用于生成各种分布的随机数。

随着 AI 和 HPC 数据集的大小不断增加,为给定应用程序加载数据所花费的时间开始对整个应用程序的性能造成压力。 在考虑端到端应用程序性能时,快速的 GPU 通过缓慢的 I/O 将显著降低GPU的利用率。

I/O 是将数据从存储加载到 GPU 进行处理的过程,历来由 CPU 控制。 随着计算从较慢的 CPU 转移到更快的 GPU,I/O 越来越成为整体应用程序性能的瓶颈。

正如 GPUDirect RDMA(远程直接内存地址)在网络接口卡 (NIC) 和 GPU 内存之间直接移动数据时改善了带宽和延迟一样,一种名为 GPUDirect Storage 的新技术支持本地或远程存储(例如:NVMe 或 NVMe over Fabric (NVMe-oF))与GPU内存之间的直接移动数据。

GPUDirect Storage

在GPU加速系统当中,所有的IO操作都会先经过主机端,也就是需要经过CPU指令把数据传到主机内存里,然后才会到达GPU,CPU通常会通过“bounce buffer”来实现数据传输,“bounce buffer”是系统内存中的一块区域,数据在传输到GPU之前会在这里保存一个副本。很明显,这种中转会引额外延迟和内存消耗,降低运行在GPU上的应用程序的性能,还会占用CPU资源,这就是GPUDirect Storage要解决的问题。

GDS 的工作原理

NVIDIA 力求尽可能采用现有标准,并在必要时扩展这些标准。 POSIX 标准的 pread 和 pwrite 提供存储和 CPU 缓冲区之间的复制,但尚未启用到 GPU 缓冲区的复制。 Linux 内核中不支持 GPU 缓冲区的缺点将随着时间的推移得到解决。

一种名为 dma_buf 的解决方案正在开发中,该解决方案可以在 NIC 或 NVMe 和 GPU 等 PCIe 总线上的对等设备之间进行复制,以解决这一问题。

与此同时,GDS 的性能提升空间太大,无法等待上游解决方案传播给所有用户。 许多供应商都提供了支持 GDS 的替代解决方案,如:MLNX_OFED。 GDS 解决方案涉及新的 API:cuFileRead 或 cuFileWrite,它们与 POSIX pread 和 pwrite 类似。

动态路由、NVLink 的使用以及只能从 GDS 获得的用于 CUDA 流的异步 API 等优化使得 cuFile API 成为 CUDA 编程模型的持久特性,即使在解决了 Linux 文件系统中的缺陷之后也是如此。

以下是 GDS 实施的作用。
首先,当前 Linux 实现的根本问题是将 GPU 缓冲区地址作为 DMA 目标向下通过虚拟文件系统 (VFS) 传递,以便本地 NVMe 或网络适配器中的 DMA 引擎可以执行与 GPU 内存之间的传输。 这会导致错误情况。 我们现在有一个解决这个问题的方法:传递 CPU 内存中缓冲区的地址。

当使用 cuFileRead 或 cuFileWrite 等 cuFile API 时,libcufile.so 用户级库捕获 GPU 缓冲区地址并替换传递给 VFS 的代理 CPU 缓冲区地址。 就在缓冲区地址用于 DMA 之前,启用 GDS 的驱动程序对 nvidia-fs.ko 的调用会识别 CPU 缓冲区地址并再次提供替代 GPU 缓冲区地址,以便 DMA 可以正确进行。

libcufile.so 中的逻辑执行前面描述的各种优化,例如:动态路由、预固定缓冲区的使用和对齐。

TSMC N7(7纳米工艺)-DUV(深紫外线)光刻技术
TSMC N4(4纳米工艺)-EUV(极紫外线)光刻技术

FPGA 相比同等面积和工艺 ASIC 的算力差着数量级

大多数大模型 16-bit 权重真的可以量化到 8-bit 而不太损失精度。但要压缩到 4-bit,精度一般就会有比较大的损失了。

NVIDIA 的 Tensor Core 也可以很高效地执行 16-bit 和 8-bit 的计算,8-bit 的算力基本上是 16-bit 的两倍。

FPGA 还是适合用来做智能网卡,也适合做存储编码、压缩、加密等特定算法的加速。AI 大模型还是 ASIC 更在行。

固态硬盘组成

固态硬盘一般由四个部分组成:控制单元(主控)、存储单元(颗粒)、缓存单元、电路板。不过为了节省成本,很多固态硬盘都不使用缓存芯片了。

主控芯片:相当于固态硬盘的大脑,数据处理能力、算法上都要靠它,现在的主流商家有(马牌Marvell、三星、慧荣Silicon Motion、群联Phison、智微Jmicron、英韧InnoGrit等)

闪存颗粒:相当于一个仓库,根据密度差异可以分为SLC、MLC、TLC、QLC、PLC,PLC还没有面世,由于固态硬盘的使用寿命比较长,所以按照主流来购买就可以。

闪存颗粒按照数据稳定性、速度以及价格排序为SLC>MLC>TLC>QLC>PLC,现主流的固态基本采用TLC和QLC居多,当然为了区分品质,还有着闪存颗粒等级区分。

闪存颗粒等级区分:正片、白片、黑片。

正片:分为两种,一种是闪存颗粒生产商(原厂)封装的好颗粒,另一种是由品牌方向原厂直接采购晶圆,之后再由品牌方进行封装而成,这种品质与原厂封装没什么区别无异,原厂封装型号可参考金士顿KC2500。

白片:就是正片中的一些多次检测中有小瑕疵,实际的使用中可能好,也可能一般般,但好在基本问题不大,这种的话不建议当主盘,这种固态硬盘价格会便宜一些,可当游戏副盘使用。

黑片:就是刚检测就有问题的固态硬盘,简单的说就是次品,然后一些厂商便宜的价格收过去,再包装一下,做成固态硬盘,实际体验容易翻车,数据丢失几率大。

缓存芯片:固态硬盘缓存虽然不是主要的参数,但是还是有存在的意义的,特别是常用文件的随机性读写上,主要品牌有南亚,现在市场反而是无外置缓存卖的都特别好,所以很多厂商也都取消了缓存芯片,毕竟更省成本啊,实际缓存带来的提升普通用户体验不出来。

PCB板:主控芯片、闪存颗粒、缓存芯片这三样结合到一块PCB板上,就形成了一个M.2固态硬盘。

M.2固态硬盘规格

现在市场主流的规格是M.2 2280规格,同样是M.2接口,那怎么区分NVMe协议和SATA协议呢?最简单的区分方法就是看接口的位置,NVME协议只有一个口,而SATA协议拥有两个口,但也有一些个别品牌喜欢搞另类,比如把NVME协议的固态硬盘搞成两口的。

M.2:实际也就是NGFF接口,这其中分为B Key和M Key,目前M Key是主流,也就是现在的NVME协议固态硬盘。

M.2 (NGFF)接口的两种类型

M.2接口固态硬盘体积小,适用于台式机与笔记本,(单面颗粒台式笔记本都可用,双面颗粒不兼容一些笔记本),而NVME协议读写入速度高于SATA协议几倍,所以,现在几乎没人选择B Key类型了。

固态硬盘品牌

那PCIE3.0固态硬盘的品牌这么多,需要怎么选择呢?

固态硬盘的品牌主要是分自产颗粒和贴牌。

自产颗粒:三星、西数(闪迪)、致钛(长江存储)、英特尔、海力士、铠侠(东芝)、英睿达(美光)等等

其它品牌:金士顿、威刚、影驰、雷克沙、浦科特、爱国者、海康威视、大华等等。

避坑品牌:某胜、某速、某维、某储、其它杂牌

##PCIE固态硬盘优点

1、读写入速度高于SATA协议几倍
2、体积小,适用于台式机与笔记本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值