日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如何将FPGA资源平民化?阿里工程师有了新突破

發(fā)布時(shí)間:2024/9/3 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将FPGA资源平民化?阿里工程师有了新突破 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.


阿里妹導(dǎo)讀:FPGA (現(xiàn)場(chǎng)可編程門陣列)由于其硬件并行加速能力和可編程特性,在傳統(tǒng)通信領(lǐng)域和IC設(shè)計(jì)領(lǐng)域大放異彩。一路走來(lái),FPGA并非一個(gè)新興的硬件器件,由于其開(kāi)發(fā)門檻過(guò)高,硬件加速算法的發(fā)布和部署保護(hù)要求非常高,FPGA的使用一直是高冷的美人,沒(méi)有走入尋常百姓家,導(dǎo)致FPGA的計(jì)算潛力還沒(méi)有得到深入的挖掘。


接下來(lái),我們來(lái)看看阿里云對(duì)它進(jìn)行了怎樣的改造。


阿里云ECS的異構(gòu)計(jì)算團(tuán)隊(duì)和高性能計(jì)算團(tuán)隊(duì)一直致力于將計(jì)算資源"平民化";高性能計(jì)算團(tuán)隊(duì)在做的E-HPC就是要讓所有云上用戶都能夠瞬間擁有一個(gè)小型的超算集群,使得超算不再僅僅是一些超算中心和高校的特權(quán);而我們異構(gòu)計(jì)算團(tuán)隊(duì)則致力于將目前最快、最新的計(jì)算設(shè)備在云上提供給用戶,使得曾經(jīng)高冷的計(jì)算資源不再拒人千里之外:我們推出了FPGA云服務(wù)器FaaS?服務(wù), 其中的F1和F2實(shí)例已經(jīng)對(duì)外提供服務(wù),可以通過(guò)一鍵部署的方式把Intel和Xilinx的小規(guī)格的器件計(jì)算能力賦予客戶。


今天我們很高興地宣布:新晉的大規(guī)格FPGA實(shí)例,基于Xilinx 16nm Virtex UltraScale+ 器件VU9P的異構(gòu)計(jì)算實(shí)例F3在阿里云上線了!


我們借此機(jī)會(huì),對(duì)阿里云FPGA計(jì)算服務(wù)(下面簡(jiǎn)稱FaaS)本身,以及這次發(fā)布的F3實(shí)例的底層硬件架構(gòu)和平臺(tái)架構(gòu)做一個(gè)技術(shù)解讀。


FaaS


阿里FPGA云服務(wù)器平臺(tái)FaaS(FPGA as a Service)在云端提供統(tǒng)一硬件平臺(tái)與中間件,可大大降低加速器的開(kāi)發(fā)與部署成本。加速器開(kāi)發(fā)商的加速器可以形成服務(wù)提供給加速器用戶,消除加速技術(shù)與最終用戶的硬件壁壘。用戶則能夠在無(wú)需了解底層硬件的情況下,直接按需使用加速服務(wù)。


為了給加速器提供方和使用方提供更加高效、統(tǒng)一的開(kāi)發(fā)及部署平臺(tái),FaaS提供兩大套件:HDK和SDK。



HDK


HDK給所有的加速器開(kāi)發(fā)者提供統(tǒng)一的FPGA硬件接口,提前幫用戶解決了FPGA開(kāi)發(fā)中難度最大的高速接口開(kāi)發(fā)及調(diào)試,例如PCIe、SERDES接口、DDR控制器等等;使得用戶能夠直接得到硬件平臺(tái)和FPGA接口的最大性能,不會(huì)因?yàn)閳F(tuán)隊(duì)開(kāi)發(fā)能力和經(jīng)驗(yàn)的欠缺,造成硬件平臺(tái)性能浪費(fèi);高效、可靠、統(tǒng)一的接口套件也為云上平臺(tái)的安全隔離、設(shè)備穩(wěn)定提供了保障,不會(huì)因?yàn)橛脩舻慕涌谠O(shè)計(jì)問(wèn)題,造成服務(wù)器宕機(jī);同時(shí)可以杜絕用戶在FPGA端對(duì)主機(jī)的非法操作,為整個(gè)云上安全提供保障。


HDK包括兩個(gè)部分,Shell和 Role;Shell部署在靜態(tài)區(qū)域,提供上述統(tǒng)一接口部分。

?

在提供統(tǒng)一接口、安全性和便捷性的前提下,阿里云FaaS HDK 也盡最大的努力保證用戶設(shè)計(jì)的靈活性,Role的概念應(yīng)運(yùn)而生。Role部署在動(dòng)態(tài)區(qū)域,是在Shell之外,預(yù)先開(kāi)發(fā)并提供的,用戶可以配合用戶邏輯(Customer Logic)使用。不同于Shell,用戶可以根據(jù)需要,隨時(shí)更換Role部分;這種Shell + Role的組合方式,保證了Shell的最輕量化和穩(wěn)定性,又兼顧了統(tǒng)一性、便捷性和靈活性。


SDK


SDK包括兩個(gè)部分:


  • 和HDK(Shell+Role)對(duì)應(yīng)的主機(jī)端驅(qū)動(dòng)(Drivers)和軟件庫(kù)(Libraries)

  • FPGA管理工具 faascmd套件

?

驅(qū)動(dòng)和軟件庫(kù)和HDK的Shell以及Role相對(duì)應(yīng),和HDK一起,為用戶提供統(tǒng)一及靈活的軟件支持,比如DMA驅(qū)動(dòng)、寄存器訪問(wèn)驅(qū)動(dòng)等等。

?

faascmd工具套件為用戶提供云上FPGA管理服務(wù),包括安全校驗(yàn)、FPGA鏡像生成、下載及管理、FPGA加速卡狀態(tài)查詢反饋等功能。公有環(huán)境使用FPGA,需要考慮用戶FPGA文件的安全,faascmd提供的秘鑰及OSS bucket指定機(jī)制,有效保證了用戶的FPGA下載文件的私密性。在線下的開(kāi)發(fā)及應(yīng)用中,開(kāi)發(fā)者直接對(duì)FPGA進(jìn)行下載操作,但在云上環(huán)境,用戶對(duì)公有的FPGA資源直接操作對(duì)安全造成較大影響。Faascmd工具會(huì)對(duì)用戶操作申請(qǐng)和物理FPGA資源進(jìn)行隔離,保證了用戶下載安全的同時(shí),提供給用戶類似線下操作的體驗(yàn);同時(shí)會(huì)對(duì)用戶提交的網(wǎng)表進(jìn)行校驗(yàn),提高安全、降低風(fēng)險(xiǎn)。faascmd同時(shí)也提供調(diào)用接口,用戶能很容易地在自己的App中調(diào)用管理工具,結(jié)合自身加速器特性實(shí)現(xiàn)各種管理功能。

?

FaaS 的IP市場(chǎng)


FaaS降低了FPGA開(kāi)發(fā)者的開(kāi)發(fā)準(zhǔn)入門檻:云上即開(kāi)即用的FPGA資源、靈活的付費(fèi)模式使得硬件資源觸手可及;同時(shí)簡(jiǎn)化了開(kāi)發(fā)流程,統(tǒng)一了開(kāi)發(fā)接口,把核心加速邏輯從周邊硬件設(shè)備的接口調(diào)試中隔離出來(lái),使得FPGA的新興應(yīng)用可以只關(guān)注業(yè)務(wù)加速的核心邏輯,快速迭代;在這兩點(diǎn)上,阿里云的FaaS 邁出了FPGA計(jì)算資源平民化的第一步。


但即便是大大簡(jiǎn)化了開(kāi)發(fā)流程、提供了觸手可及的硬件資源,FPGA依然有一定的開(kāi)發(fā)門檻。如何把已有的FPGA 邏輯IP價(jià)值最大化,聯(lián)通FPGA加速的需求方和提供方來(lái)擴(kuò)大生態(tài)呢?重要的一點(diǎn)就是如何解決在公共云數(shù)據(jù)中心層面保證FPGA加速IP的安全性,特別是對(duì)不可信的第三方進(jìn)行輸出和部署這個(gè)難題, FaaS是如何解決這個(gè)問(wèn)題的呢?


答案是通過(guò)阿里云FaaS的IP市場(chǎng)。技術(shù)上,通過(guò)與Xilinx聯(lián)合開(kāi)發(fā)的定制虛擬化技術(shù)達(dá)到IP加速與部署環(huán)境的強(qiáng)隔離,IP的用戶與IP的網(wǎng)表文件完全隔離,網(wǎng)表文件的傳輸、部署、加速流程全程對(duì)用戶都不可見(jiàn);同時(shí)加速計(jì)算能力又可以透明地向使用該IP的第三方用戶開(kāi)放,這是阿里云在FPGA云上加速服務(wù)的另外一個(gè)技術(shù)創(chuàng)新。這個(gè)創(chuàng)新,完全杜絕了FPGA IP在云上輸出的時(shí)候被盜版的可能,提供了非常高的安全保護(hù)機(jī)制。


更加嚴(yán)格的保密機(jī)制也在規(guī)劃中:很快可以通過(guò)阿里云的KMS加密服務(wù)對(duì)IP進(jìn)行加密保護(hù),每次對(duì)IP加載前都需要向KMS服務(wù)獲取秘鑰解密,這樣一來(lái)針對(duì)IP的使用下載有據(jù)可查;并且使得IP發(fā)布方的IP在數(shù)據(jù)中心內(nèi)部都是安全的,因?yàn)闆](méi)有了IP提供方的KMS秘鑰,即便是阿里云也無(wú)法對(duì)加密的網(wǎng)表進(jìn)行解密操作。


在阿里云FaaS IP 市場(chǎng)的幫助下,即便是從來(lái)沒(méi)有任何FPGA開(kāi)發(fā)經(jīng)驗(yàn)的用戶,也可以一鍵從IP市場(chǎng)中獲取相應(yīng)的加速邏輯,并快速部署到對(duì)應(yīng)的FPGA器件上面去。我們相信,通過(guò)即開(kāi)即用的硬件資源、統(tǒng)一的軟硬件邏輯開(kāi)發(fā)接口和IP市場(chǎng),阿里云能夠真正兌現(xiàn)FPGA計(jì)算資源平民化的承諾。


F3硬件架構(gòu)


阿里云FaaS的F3實(shí)例在底層硬件上,是使用阿里云自主研發(fā)的高性能單卡雙芯片的VU9P的板卡。這里要?jiǎng)澲攸c(diǎn)啦:單卡雙芯片。一定有用戶要問(wèn)為什么要這么設(shè)計(jì)呢?單卡雙芯片的硬件設(shè)計(jì)有什么好處呢?


首先,對(duì)于用戶來(lái)說(shuō),通過(guò)單卡雙芯片這樣的規(guī)格設(shè)計(jì),與阿里云配套自研的服務(wù)器一起,最高可以提供單實(shí)例16 塊 VU9P的計(jì)算實(shí)例。16塊 VU9P是非常高的計(jì)算密度了,這是設(shè)計(jì)單卡雙芯片的第一個(gè)目的:通過(guò)提高計(jì)算密度,在同等計(jì)算單元下集成了更多的加速芯片,能夠有效降低單位計(jì)算力的成本,從成本大幅降低和單位實(shí)例的垂直計(jì)算力提升上,客戶可以雙重受益。


單卡雙芯片的兩個(gè)VU9P芯片通過(guò)PCIe 橋接入系統(tǒng),那么雙芯片之間的互相通信呢?是不是只能通過(guò)PCIe的總線來(lái)進(jìn)行呢,答案是否定的,除了FPGA Direct這種通過(guò)PCIe互相通信的能力之外,在阿里云的自研的板卡上也是有特殊考慮的。在兩個(gè)芯片之間,我們?cè)O(shè)計(jì)了一個(gè)高速互聯(lián)通道,使得兩個(gè)FPGA之間可以通過(guò)這個(gè)特殊的通道以高達(dá)600Gb/s的速率進(jìn)行通信,這個(gè)通信技術(shù)我們稱之為FPGA Link。要知道,現(xiàn)在的數(shù)據(jù)中心主流部署的接入交換機(jī)光口通信也只能達(dá)到100Gb/s的通信速率,更高的200Gb/s的交換機(jī)還在試部署中。


試想一下,無(wú)需額外的交換機(jī)和光口硬件,兩個(gè)FPGA芯片可以通過(guò)FPGA Link技術(shù)以超短時(shí)延通過(guò)6倍于主流光口通信的速率進(jìn)行通信,這個(gè)將會(huì)以極低的成本幫助用戶開(kāi)啟大量新的FPGA加速應(yīng)用模式。比如,小規(guī)模的芯片仿真,需要兩個(gè)器件才能部署得下的情況,可以將整體仿真模塊拆解之后部署到兩個(gè)芯片上,兩個(gè)芯片之間的數(shù)據(jù)通路和同步信號(hào)通過(guò)高速通道互聯(lián);還有其他的應(yīng)用場(chǎng)景,需要把功能模塊部署到兩個(gè)FPGA芯片之上,而兩者之間需要大量的數(shù)據(jù)交換,比如視頻轉(zhuǎn)碼場(chǎng)景:把小規(guī)模但是模塊數(shù)目比較多的解碼單元、視頻處理單元部署到一個(gè)FPGA之上,把面積占用比較多的編碼單元放到另外一個(gè)FPGA上,編解碼模組之間通過(guò)高速互聯(lián)交換裸視頻流。這將大大改善部署的難度,以及極大的解耦兩個(gè)模塊之間的相互依賴和設(shè)計(jì)難度。以上舉了兩個(gè)例子,讀者一定能夠舉一反三地想到,其他需要流水線處理并需要大量數(shù)據(jù)交換的場(chǎng)景,阿里云的F3實(shí)例的雙芯片實(shí)例能夠?yàn)榭蛻籼峁┳畲蟮膬r(jià)值。


不少應(yīng)用場(chǎng)景對(duì)板載的DDR存儲(chǔ)還是有要求的。阿里云的F3實(shí)例,為每個(gè)FPGA搭配了客戶可見(jiàn)的64GB的DDR內(nèi)存,這64GB的DDR分成4個(gè)通道,分別連接到VU9P的3個(gè)硅單元上面,其中一個(gè)通道對(duì)應(yīng)的16GB DDR保留常駐,其余3個(gè)通道對(duì)應(yīng)的48GB存儲(chǔ)以可選的方式可被客戶邏輯加載使用。


目前,我們看到了雙芯片實(shí)例除了FPGA Direct技術(shù)和高達(dá)600Gb/s的FPGA Link高速互聯(lián)能力之外,另外值得一提的是:雙芯片的實(shí)例與其他的雙芯片實(shí)例板卡之間也可以通過(guò)400Gb/s的光口進(jìn)行互聯(lián),而且400Gb/s的以太協(xié)議驅(qū)動(dòng)是通過(guò)Xilinx預(yù)置的MAC硬核來(lái)加速,不占用邏輯面積;通過(guò)以太或者自定義的輕量級(jí)通信協(xié)議,能夠在16芯片之間,以及更多的芯片之間搭建2維Mesh或者環(huán)形互聯(lián),進(jìn)一步擴(kuò)展多片互聯(lián)的使用模式和應(yīng)用場(chǎng)景。?


最后,上一張圖,讓大家對(duì)上面做的硬件的技術(shù)解析有一個(gè)更具體的認(rèn)識(shí):



F3邏輯結(jié)構(gòu)


F3邏輯結(jié)構(gòu),技術(shù)分析之前,先給大家上一幅邏輯架構(gòu)圖:


SHELL和ROLE概念


★SHELL:


Shell是FPGA的靜態(tài)區(qū)域,內(nèi)部包含用戶PCIe、管理PCIEe、板卡管理系統(tǒng)和一個(gè)DDR訪問(wèn)通道。為了提高板卡的安全和穩(wěn)定性,用戶無(wú)權(quán)修改SHELL區(qū)域。

?

★ROLE:


我們?cè)谠O(shè)計(jì)中提出了Role的概念,Role和Shell是類似的封裝。而Role跟Custom Logic一起在動(dòng)態(tài)區(qū)域。Role的提出使我們可以更加輕量化Shell。我們通過(guò)Role實(shí)現(xiàn)了同一個(gè)Shell既可以支持OpenCL開(kāi)發(fā),也可以支持RTL開(kāi)發(fā);最后就是Role的再次抽象降低了用戶對(duì)于FPGA的開(kāi)發(fā)門檻。我們提供基礎(chǔ)的Role,也允許用戶自行設(shè)計(jì)Role。我們希望更多第三方的設(shè)計(jì)者通過(guò)分享自己Role,使得FaaS平臺(tái)更加精彩。


ROLE內(nèi)部結(jié)構(gòu)簡(jiǎn)介


Interconnect:該部分主要是提供給用戶四路DDR通道的訪問(wèn)和USER_PCIe對(duì)四路DDR通路的訪問(wèn)。 該模塊幫助用戶隔離了時(shí)鐘域,使用戶邏輯在同一個(gè)時(shí)鐘域上對(duì)4路DDR通道進(jìn)行訪問(wèn)。


Inter chip interconnect: FPGA 單卡雙芯片間互聯(lián)通路;


Card interconnect: FPGA 卡間互聯(lián)通路;


Custom Logic:用戶自定義邏輯部分;


Custom Logic介紹


用戶邏輯是屬于Role的一部分,屬于動(dòng)態(tài)加載區(qū)域。 為了方便用戶標(biāo)準(zhǔn)化使用,我們?cè)赗TL設(shè)計(jì)中使用了標(biāo)準(zhǔn)的AXI-4和AXI-LITE接口。

?

1.我們將詳細(xì)介紹用戶接口,其列表如下:


接口

Name

Direction

Clock Domain

Description

時(shí)鐘和復(fù)位

sys_alite_aclk

I

/

寄存器通路時(shí)鐘50Mhz

sys_alite_aresetn

I


usr_clk

I

用戶時(shí)鐘,300Mhz,該時(shí)鐘固定不可配置

usr_rstn

I


kernel_clk_300m

I

用戶時(shí)鐘,300Mhz,該時(shí)鐘固定可配置

kernel_clk_rstn

I


kernel2_clk_500m

I

用戶時(shí)鐘,500Mhz,該時(shí)鐘固定可配置

寄存器通路

AXI_LITE


sys_alite_aclk

axi4_alite接口,用戶寄存器傳輸,地址空間0x0~0x7fffff

DDR

AXI4

C0_sys_axi*

/

kernel_clk_300m

dimm0 數(shù)據(jù)交互訪問(wèn)接口(base addr:0x0000_0000_0000_0000)

C1_sys_axi*

/

dimm0 數(shù)據(jù)交互訪問(wèn)接口(base addr:0x0000_0004_0000_0000)

C2_sys_axi*

/

dimm0 數(shù)據(jù)交互訪問(wèn)接口(base addr:0x0000_0008_0000_0000)

C3_sys_axi*

/

dimm0 數(shù)據(jù)交互訪問(wèn)接口(base addr:0x0000_000c_0000_0000)

Dma

AXI4

Dma_axi_*

/

kernel_clk_300m

用戶邏輯直接dma訪問(wèn)通路

Interrupt

usr_int_en

I

kernel_clk_300m

?

中斷使能

usr_int_req

I

中斷請(qǐng)求,最大支持16個(gè)中斷

usr_int_ack

O

中斷應(yīng)答

錯(cuò)誤檢測(cè)

ddr_cal_done

I

kernel_clk_300m


dma_4k_r_err_flag

I


dma_4k_w_err_flag

I


注:板間互聯(lián),卡卡互聯(lián)接口邀測(cè)階段缺省不提供,需要特殊申請(qǐng)對(duì)外開(kāi)放。

?

2.AXI-4 and AXI-Lite 限制

?

AxBURST

Only INCR burst is supported.

AxLOCK

Lock is not supported.

AxCACHE

Memory type is not supported

AxPROT

Protection type is not supported

AxQOS

Quality of Service is not supported

AxREGION

Region identifier is not supported

?

3. 正如我們?cè)诮榻BRole中所述,用戶可以定制化Role操作。我們阿里云FaaS團(tuán)隊(duì)為了方便用戶更有效的使用平臺(tái),多個(gè)Role版本正在發(fā)布中,敬請(qǐng)關(guān)注。降低用戶使用門檻,縮短開(kāi)發(fā)時(shí)間,健全FPGA使用生態(tài)始終是我們的使命。



前方廣告時(shí)間:阿里妹的同桌——小嘰童鞋最近開(kāi)了個(gè)公眾號(hào),叫“阿里巴巴機(jī)器智能”。


?目前粉絲只有可憐倆,

翹首以盼等你來(lái)關(guān)注


這個(gè)號(hào)聚焦在AI領(lǐng)域,關(guān)注算法方向,將陸續(xù)披露阿里各類頂會(huì)論文解讀(涵蓋CVPR、SIGIR、IJCAI、ACL、SIGKDD、NIPS等等)、前沿學(xué)術(shù)合作成果、阿里算法實(shí)踐案例,不定期舉行線下分享沙龍。


如果你關(guān)注人機(jī)交互、機(jī)器學(xué)習(xí)、機(jī)器視覺(jué)、機(jī)器學(xué)習(xí)信息檢索、NLP、數(shù)據(jù)挖掘、搜索與推薦等領(lǐng)域,相信它能為你帶來(lái)一定價(jià)值。

總結(jié)

以上是生活随笔為你收集整理的如何将FPGA资源平民化?阿里工程师有了新突破的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。