芯来科技发布最新NI系列内核,NI900矢量宽度可达512/1024位

参考:芯来科技发布最新NI系列内核,NI900矢量宽度可达512/1024位 (qq.com)

本土RISC-V CPU IP领军企业——芯来科技正式发布首款针对人工智能应用的专用处理器产品线Nuclei Intelligence(NI)系列,以及NI系列的第一款AI专用RISC-V处理器CPU IP——NI900系列内核。

随着Chatgpt的横空出世,全球掀起一股AI的浪潮,从云端数据中心到边缘侧对AI的需求进一步提升。AI应用主要分布在训练和推理,需要大量的并行计算和NPU来完成,更离不开高性能CPU的算力加持。CPU有着广泛的普及性、兼容性、可扩展性和可靠性,并通过多核多节点进行串行计算、混合计算和安全防护等复杂任务;除此之外,CPU的通用矢量(Vector)指令集也可以提供强大且通用的并行计算能力,在AI领域进行高效的并行计算、前处理、后处理、激活函数等工作,更加灵活地处理GPU和NPU相对难以处理的复杂计算任务。

近期OpenAI发布的Sora模型将AI能够理解和生成的内容模态从文字和图片拓展到视频,进一步证明基础模型能力上限不断被突破,想象空间被打开,对算力基础设施的需求也远没有停止。芯来科技此次推出的NI900重点布局AI应用场景,助力本土芯片设计公司快速完成AI产品的设计。

NI900基于900系列处理器,针对“AI应用”进行了多项特性优化

Nuclei Intelligence —— NI900系列之于“AI应用”的优势

NI900基于Nuclei成熟的900系列处理器,针对“AI应用”进行了多项特性优化

NI900主要特性如下:

  • 基础标量处理器:可以配置为900系列的RV32或RV64的任何一款——N900/U900/NX900/UX900
  • RVV1.0 VPU:可配置基于RISC-V V Extension(RVV1.0 Vector指令集)的VPU单元,VPU的VLEN可配置为512b或者1024b
    • 可配Per-Core-VPU:NI900支持Cluster内的每个Core均可以配置VPU
    • 或可配多核共享Shared-VPU:NI900也可支持Cluster内的多个Core共享一份VPU单元
  • NPU加速器:可通过NI900的IOCP(IO Coherent Port)与处理器紧耦合,实现对CPU内部Cache的一致性
  • 用户自定义指令扩展接口:用户可以使用Nuclei的NICE硬件扩展接口,增加自己自定义的指令,包括Scalar或Vector指令

NI900支持RISC-V Vector1.0标准

  • 矢量扩展被称之为RV指令集标准最重要的一组扩展,2015年发起,2021年正式生成标准。
  • RVV 1.0支持的数据类型广泛,运算类型丰富且可动态扩展,同一套指令可无修改适配各种微架构实现。
  • RISC-V GCC从10.2版本已经支持RVV1.0指令,目前GCC13对应的intrinsic API接口已经升级到最新v0.12版本,且已部分支持自动向量化;预计GCC14正式发布,GCC的自动向量化会更加完备。RISC-V CLANG17版本也已支持最新v0.12版本intrinsic APl, 支持自动向量化。
  • RISC-V Linux 6.5 版本开始支持RVV,其它各种计算库及应用中间件都快速支持了RVV1.0。
  • 有了RVV1.0标准和软件生态的完备,为应对AI算力的需求,需要RISC-V CPU 在微架构设计上做更多有针对性的设计。

Nuclei 900系列基础处理器

900系列处理器包括N900(32位)、U900(32位+MMU)、NX900(64位)和UX900(64位+MMU)四个产品系列,其中U900、UX900带MMU可以运行重型操作系统,如Linux等。900系列非常适合对标ARM Cortex-M7、A7、R8、A35、A53、A55等内核,可应用于AIoT边缘计算、数据中心、网络设备和基带通信等领域。

NI900VPU可进行多种参数配置

参数描述

  • VLEN:一个向量寄存器的总bit数(宽度)
  • DLEN:内部运算单元能够并行处理的一个向量元素的最大bit
  • ELEN:并行处理的数据类型的最大宽度,如果ELEN=32,则最大的处理数据类型是INT32FP32

可配选项

参数值

VLEN_512

VLEN = 512, DLEN = 512ELEN = 32/64

VLEN_1024

VLEN = 1024, DLEN = 1024ELEN = 32/64

NI900VPU特性与配置

VPU特性:

  • Follow RISC-V V Extension (RVV1.0) instruction set with 32 Vector registers
  • Dual vector arithmetic computing pipeline and one Load/Store pipeline
  • Vector registers can be combined (LMUL) up to VLEN*8bits vector operations
  • Full Vector Load/Store memory operations
  • Support Vector Instruction Chaining

VPU支持数据类型:

  • Data type: INT8/16/32, BFP16/FP16/FP32
  • 如果ELEN等于64的配置则也支持INT64FP64
NI900 的标量和矢量双发射机制

900系列双发射机制:

  • Scalar标量部分
  • ALU指令,Ld/St指令,可以任意组合双发射
  • 乘除、浮点以及DSP指令无法进行双发射,但是他们可以和ALU搭配进行双发射
  • CSR/WFE/WFI等特殊指令只能单发射
  • Vector矢量部分
  • Vector Ld/StVector A类型和Vector B类型可以两两组合双发射
  • A类运算单元包含:
  • vmul/vmac
  • vfpu for single precesion
  • B类运算单元包含:
  • 除了上述A类指令和Vector Load Store指令之外的其他运算类型指令
  • (可配置的)第二份vfpu vfadd/vfsub/vfmul/vfmac类型
  • Example: Vector Ld/St + Vector A, Vector Ld/St + Vector B, Vector A + Vector B
  • Scalar指令和Vector指令可以任意双发射
  • Example: Vector Ld/St +ALU
  • Scalar流水线和Vector流水线可以乱序执行
  • ScalarVector共享内存资源(DCacheDLMExternal Memory等)
NI900的VPU的Vector Store Buffer带来性能提升
NI900 VPU 的带来的性能提升
NI900 的多核 VPU 可以灵活进行配置
NI900 提供更轻量级的 VPU 解决方案 —— Lite-VPU
NI900 VPU 面积对比
基于 T22 工艺综合 ( tcbn22ulpbwp30p140ssg@p81vm40c_ccs)

NI900的功耗——Dhrystone与矩阵运算示例

NI900VPU与主Core的内存空间实现完全的Coherent

  • VPUCore LSU共享MMU资源 
    • VPU并非独立的协处理器,而是与主Core的内存空间实现完全的Coherent 
    • Vector指令与普通Scalar一样,支持虚拟地址访问,使得NI900Vector指令可以无缝运行与大型操作系统之上
  • VPUCore LSU共享Memory资源与通道 
    • VPU拥有最高512b位宽访问直接访问DCache 
    • VPU拥有最高1024b位宽访问直接访问DLM 
    • DLM具备1024bSlave PortSoC访问 
  • 可单独配置VLM port以进一步增加性能 
    • VLM port可以直接连接到外部加速器或者内存  
    • VLM port位宽=VLEN(目前支持最多1024b) 
    • Scalar Core也可以通过Load Store访问到VLM区间

NI900IOCP接口可用于连接硬件加速器单元

I/O Coherent Port (IOCP):

  • 支持外部master所有层级的缓存保持一致性 
  •         从IOCP读取:
  •                 从私有cache中获取数据
  •                 如果cache miss则将从系统级缓存获取数据
  •         从IOCP写入:
  •                 Invalidate所有私有缓存
  •                 写入系统级缓存
  • IOCP接口数量可以进行配置
  • IOCP可以被DMA, PCIe, NPU等外部master使用

NI900Scalar/Vector NICE自定义指令接口

NICE(Nuclei Instruction Co-unit Extension)是芯来CPU IP的一种用户可扩展指令接口机制,允许用户基于芯片的标准通用CPU内核定义自己的扩展指令集:

  • NI900提供用于Scalar指令扩展的NICE接口 
  • 可支持单周期,多周期,流水线等不同指令类型
  • NI900提供用于Vector指令扩展的NICE接口 
  • 可支持单周期,多周期,流水线等不同指令类型
  • NI900NICE扩展单元不仅可以进行运算型的自定义指令扩展,还可以通过专用总线访问Core的存储资源(DCache等)实现与主Core的内存一致性 
  • 总线位宽可以达到VLEN(最高1024b)

用户可以结合自己的应用扩展自定义指令,将NI900处理器内核扩展成为面向AI领域进一步强化的专用处理器

NI900系列NICE示例 通过Vector NICE扩展其私有的访存通路

图例解释如下:

  • 可以通过Vector NICE机制扩展“用户自定义的硬件单元”
  • 该“硬件单元”可以拥有其私有的访存通路,图例中称为VNP(Vector Nice Port)
  • 外部可以有一个多Banks或多PortsMemory模块
  • VNP Port可以直接接到外部的Memory模块
  • CoreVLM Port也可以直接接到外部的Memory模块
  • 来自系统内其他AI加速器的读写Port也可以直接接到外部的Memory模块
  • 用户可以在该“硬件单元”中扩展一条VNP_Load指令
  • VPN_Load指令可以从VNP Port批量读出数据写入标准Vector Regfile
  • 可以使用标量寄存器rs1作为基地址, Vector寄存器作为结果寄存器
  • 用户可以在该“硬件单元”中扩展一条VNP_Store指令
  • VNP_Store指令可以将标准Vector Regfile中的数据批量写出VNP Port
  • 可以使用标量寄存器rs1作为基地址, Vector寄存器作为源操作数寄存器
  • 标准的VLoad/Store指令和VNP_Load/Store可以同时并行访问,如下列伪代码程序序列所示
  • VLoad V7~V0 mem[VLM] #VLM地址区间读数据写入V0V7八个Vector Registers
  • VEXU V15~V8V7~V0rs1 #V0V7八个Vector Registers的数据进行Vector计算,结果写入V8V15八个Vector Registers
  • VNP_Store V15~V8 mem[VNP] #V8V15八个Vector Registers写出VNP地址区间
NI900 Dual-Mode 特性 : Applicat i on + Real-Time
NI900 Cluster Local Memory 模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/717355.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫部分应掌握的重要知识点

目录 一、预备知识1、Web基本工作原理2、网络爬虫的Robots协议 二、爬取网页1、请求服务器并获取网页2、查看服务器端响应的状态码3、输出网页内容 三、使用BeautifulSoup定位网页元素1、首先需要导入BeautifulSoup库2、使用find/find_all函数查找所需的标签元素 四、获取元素的…

基于springboot+vue的健身房管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

●139.单词拆分 ● 关于多重背包,你该了解这些! ●背包问题总结篇!

●139.单词拆分 物品:wordDict里面的单词;背包容量:s.size()。 1.dp[j]含义。dp[j]true表示字符串前j个可以拆分成字典中的单词。dp[s.size()] 就是最后的结果,整个字符串能(true)不能(false…

Docker 创建容器并指定时区

目录 1. 通过环境变量设置时区(推荐)2. 挂载宿主机的时区文件到容器中3. 总结 要在 Docker 容器中指定时区,可以通过两种方式来实现: 1. 通过环境变量设置时区(推荐) 在 Docker 运行时,可以通…

CentOS安装Docker(黑马学习笔记)

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上…

文件底层的理解之缓冲区

目录 一、缓冲区的初步认识 二、向文件中写数据的具体过程 三、缓冲区刷新的时机 一、缓冲区的初步认识 缓冲区其实就是一块内存区域,采用空间来换时间,可以提高使用者的效率。我们一直说的缓冲区其实是语言层面上的缓冲区,其实操作系统内部…

JVM 第一部分 JVM两种解释器 类加载过程和类加载器

JVM是跨平台跨语言的虚拟机,不直接接触硬件,位于操作系统的上一层 跟字节码文件直接关联,和语言没有关系 一次编译成字节码文件,多次执行 虚拟机可以分成三部分:类加载器,运行时数据区,执行引…

TDengine 在 DISTRIBUTECH 分享输配电数据管理实践

2 月 27-29 日,2024 美国国际输配电电网及公共事业展(DISTRIBUTECH International 2024)在美国-佛罗里达州-奥兰多国家会展中心举办。作为全球领先的年度输配电行业盛会,也是美洲地区首屈一指的专业展览会,该展会的举办…

【和鲸冬令营】通过数据打造爆款社交APP用户行为分析报告

【🐋和鲸冬令营】通过数据打造爆款社交APP用户行为分析报告 文章目录 【🐋和鲸冬令营】通过数据打造爆款社交APP用户行为分析报告1 业务背景2 数据说明3 数据探索性分析4 用户行为分析4.1 用户属性与行为关系分析4.2 转化行为在不同用户属性群体中的分布…

值类型和引用类型详解(C#)

可能你对值类型和引用类型还不太了解。 值类型和引用类型,是c#比较基础,也必须掌握的知识点,但是也不是那么轻易就能掌握,今天跟着我一起来看看吧。 典型类型 首先我们看看这两种不同的类型有哪些比较典型的代表。 典型值类型…

在Windows 10系统中启用快速启动功能

在Windows 10系统中启用快速启动功能,可以按照以下步骤进行: 方法一(通过设置应用): 点击任务栏左下角的“开始”按钮或者按键盘上的Win键打开“开始”菜单。在“开始”菜单中选择“设置”图标(齿轮形状&…

3.3日学习打卡----初学Redis(一)

3.3日学习打卡 目录: 3.3日学习打卡NoSQL为什么要用NoSQL什么是NoSQL?NoSQL的四大分类关系型数据库和非关系型数据及其区别NoSQL经典应用 RedisRedis是什么?Linux下安装RedisDocker下安装Redis基本知识 NoSQL 为什么要用NoSQL 单机Mysql的美好年代 在90年代&…

Sqlmap进行http头注入及流量分析

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 利用 SQLMap 进行 HTTP 头注入的方式对于 Less-19 注入点的注入 SQLMap 工具我使用kali中自带的 注入准备 先使用bp将Less-19靶场的包抓下来保存到 txt 文件中,输入账号 admin…

Ubuntu23.10禁用Wayland

禁用前 编辑custom.conf文件 sudo vim /etc/gdm3/custom.conf 去掉WaylandEnablefalse前的#号 保存退出 重启系统 生效: 成功转换为X11

【LeetCode题解】2809. 使数组和小于等于 x 的最少时间+2788. 按分隔符拆分字符串+410. 分割数组的最大值

文章目录 [2809. 使数组和小于等于 x 的最少时间](https://leetcode.cn/problems/minimum-time-to-make-array-sum-at-most-x/)思路: [2788. 按分隔符拆分字符串](https://leetcode.cn/problems/split-strings-by-separator/)思路: [410. 分割数组的最大…

Leetcoder Day36| 动态规划part03

343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: 10输出: 36解释: 10 3 3 4, 3 3 4 36。说明: 你可以假设 …

如何提取图片中某个位置颜色的RGB值,RGB十进制值与十六进制的转换

打开本地的画图工具,把图片复制或截图粘进去,用颜色提取器点对应的位置就可以提取了。 获取到的 RGB 值为 (66,133,244) 转化后的值为 #4285F4。 【内容拓展一】:RGB 十进制值与十六进制的转换 当我们从 RGB 十进制值转换为十六进制值时&a…

Yapi部署

【GO开发工程师】Yapi部署 推荐个人主页:席万里的个人空间 文章目录 【GO开发工程师】Yapi部署1、Yapi部署 1、Yapi部署 初始化yapi: git clone https://github.com/Ryan-Miao/docker-yapi.git cd docker-yapi docker-compose upyapi启动失败 1.cd进入…

粉丝福利-纯净Windows系统安装镜像下载网站

​Windows操作系统镜像文件是从微软或其他经过验证的来源下载正版操作系统安装介质的关键所在。以下是详细阐述从不同渠道获取Windows系统镜像的说明,尤其强调官方和安全的下载途径。Windows系统镜像可以从多个可靠来源下载,以下是几个推荐的选择: 微软官方网站 微软官方网…

对于《幻兽帕鲁》这样的游戏,如何优化服务器性能以提高游戏体验?

对于《幻兽帕鲁》这样的游戏,如何评估和优化服务器性能以提高游戏体验? 硬件配置优化:选择高性能的服务器,如4核16G的幻兽帕鲁服务器,这样可以保证有足够的计算性能和内存容量来支持游戏的运行。同时,考虑到…