芯來科技發布最新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.pswp.cn/news/717355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717355.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

反向迭代器

反向迭代器 以list為例,我們完全可以再添加一個__list_reverse_iterator結構體,只需要修改和–的邏輯 template <class T, class Ref, class Ptr> struct __list_reverse_iterator {...self& operator(){_node _node->_prev;return *this;}self operator(int){…

Android 14.0 Launcher3定制化之桌面分頁橫線改成圓點顯示功能實現

1.前言 在14.0的系統rom產品定制化開發中&#xff0c;在進行launcher3的定制化中&#xff0c;在雙層改為單層的開發中&#xff0c;在原生的分頁 是橫線&#xff0c;而為了美觀就采用了系統原來的另外一種分頁方式&#xff0c;就是圓點比較美觀&#xff0c;接下來就來分析下相關…

網絡爬蟲部分應掌握的重要知識點

目錄 一、預備知識1、Web基本工作原理2、網絡爬蟲的Robots協議 二、爬取網頁1、請求服務器并獲取網頁2、查看服務器端響應的狀態碼3、輸出網頁內容 三、使用BeautifulSoup定位網頁元素1、首先需要導入BeautifulSoup庫2、使用find/find_all函數查找所需的標簽元素 四、獲取元素的…

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

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

●139.單詞拆分 ● 關于多重背包,你該了解這些! ●背包問題總結篇!

●139.單詞拆分 物品&#xff1a;wordDict里面的單詞&#xff1b;背包容量&#xff1a;s.size()。 1.dp[j]含義。dp[j]true表示字符串前j個可以拆分成字典中的單詞。dp[s.size()] 就是最后的結果&#xff0c;整個字符串能&#xff08;true&#xff09;不能&#xff08;false…

Docker 創建容器并指定時區

目錄 1. 通過環境變量設置時區&#xff08;推薦&#xff09;2. 掛載宿主機的時區文件到容器中3. 總結 要在 Docker 容器中指定時區&#xff0c;可以通過兩種方式來實現&#xff1a; 1. 通過環境變量設置時區&#xff08;推薦&#xff09; 在 Docker 運行時&#xff0c;可以通…

NumPy數據處理詳解的筆記1

NumPy數據處理詳解的筆記1 第1章NumPy基礎 NumPy是用于處理多維數組的數值運算庫&#xff0c;不僅可用于 機器學習&#xff0c;還可以用于圖像處理&#xff0c;語言處理等任務。 1.1 NumPy的基礎與安裝方法 1.1.1 NumPy入門 NumPy是Python中進行科學計算所必備的基礎軟件庫…

CentOS安裝Docker(黑馬學習筆記)

Docker 分為 CE 和 EE 兩大版本。CE 即社區版&#xff08;免費&#xff0c;支持周期 7 個月&#xff09;&#xff0c;EE 即企業版&#xff0c;強調安全&#xff0c;付費使用&#xff0c;支持周期 24 個月。 Docker CE 分為 stable test 和 nightly 三個更新頻道。 官方網站上…

文件底層的理解之緩沖區

目錄 一、緩沖區的初步認識 二、向文件中寫數據的具體過程 三、緩沖區刷新的時機 一、緩沖區的初步認識 緩沖區其實就是一塊內存區域&#xff0c;采用空間來換時間&#xff0c;可以提高使用者的效率。我們一直說的緩沖區其實是語言層面上的緩沖區&#xff0c;其實操作系統內部…

JVM 第一部分 JVM兩種解釋器 類加載過程和類加載器

JVM是跨平臺跨語言的虛擬機&#xff0c;不直接接觸硬件&#xff0c;位于操作系統的上一層 跟字節碼文件直接關聯&#xff0c;和語言沒有關系 一次編譯成字節碼文件&#xff0c;多次執行 虛擬機可以分成三部分&#xff1a;類加載器&#xff0c;運行時數據區&#xff0c;執行引…

TDengine 在 DISTRIBUTECH 分享輸配電數據管理實踐

2 月 27-29 日&#xff0c;2024 美國國際輸配電電網及公共事業展&#xff08;DISTRIBUTECH International 2024&#xff09;在美國-佛羅里達州-奧蘭多國家會展中心舉辦。作為全球領先的年度輸配電行業盛會&#xff0c;也是美洲地區首屈一指的專業展覽會&#xff0c;該展會的舉辦…

C++從零開始的打怪升級之路(day41)

這是關于一個普通雙非本科大一學生的C的學習記錄貼 在此前&#xff0c;我學了一點點C語言還有簡單的數據結構&#xff0c;如果有小伙伴想和我一起學習的&#xff0c;可以私信我交流分享學習資料 那么開啟正題 今天分享的是關于繼承的知識點 1.派生類的默認成員函數 首先我…

【和鯨冬令營】通過數據打造爆款社交APP用戶行為分析報告

【&#x1f40b;和鯨冬令營】通過數據打造爆款社交APP用戶行為分析報告 文章目錄 【&#x1f40b;和鯨冬令營】通過數據打造爆款社交APP用戶行為分析報告1 業務背景2 數據說明3 數據探索性分析4 用戶行為分析4.1 用戶屬性與行為關系分析4.2 轉化行為在不同用戶屬性群體中的分布…

值類型和引用類型詳解(C#)

可能你對值類型和引用類型還不太了解。 值類型和引用類型&#xff0c;是c#比較基礎&#xff0c;也必須掌握的知識點&#xff0c;但是也不是那么輕易就能掌握&#xff0c;今天跟著我一起來看看吧。 典型類型 首先我們看看這兩種不同的類型有哪些比較典型的代表。 典型值類型…

【云安全】網絡安全領域安全協議

IPSEC協議 IPSec&#xff08;Internet Protocol Security&#xff09;是一種網絡層安全協議&#xff0c;用于在IP通訊過程中確保完整性、認證性和機密性。它通過在標準的IP協議上加入安全機制來實現加密和認證。IPSec主要由兩個協議組成&#xff1a;認證頭&#xff08;AH&…

在Windows 10系統中啟用快速啟動功能

在Windows 10系統中啟用快速啟動功能&#xff0c;可以按照以下步驟進行&#xff1a; 方法一&#xff08;通過設置應用&#xff09;&#xff1a; 點擊任務欄左下角的“開始”按鈕或者按鍵盤上的Win鍵打開“開始”菜單。在“開始”菜單中選擇“設置”圖標&#xff08;齒輪形狀&…

3.3日學習打卡----初學Redis(一)

3.3日學習打卡 目錄&#xff1a; 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/)思路&#xff1a; [2788. 按分隔符拆分字符串](https://leetcode.cn/problems/split-strings-by-separator/)思路&#xff1a; [410. 分割數組的最大…