基於NETFPGA的可重構科學計算平臺

2021-01-15 電子產品世界

本文引用地址:http://www.eepw.com.cn/article/201706/348683.htm

1目標和背景

1.1項目目標

大規模科學問題對數學算法運算速度的追求是無止境的,因此需要探索更快速的方法。目前基於FPGA技術的可重構高性能計算系統已經成為研究熱點,把數學算法轉換成硬體邏輯在FPGA中運行是一個好辦法,但數學算法轉換為硬體邏輯的過程複雜,而且受限於硬體電路規模,並不是所有的數學算法都適合轉換為硬體邏輯。且其存在的一個普遍的問題就是用戶應用編程難度較大,且軟體專用、價格昂貴。

本項目的研究目標是探索和建立圖形化數學算法向硬體轉換的理論方法,研究開發數學算法向硬體邏輯轉換的工具,與科學計算軟體相結合建立起基於FPGA陣列的科學計算平臺原型。研究目標結構流程如下:

系統目標結構和流程

FPGA 為各種高速算法的實現提供了一個很好的平臺,但是同樣引申出的問題是如何快速有效的建立這些算法。在數學中最常用的算法表示是流程圖形式,因此本研究針對如何把數學流程圖算法轉換成為硬體邏輯以及建立其原型系統進行研究,計劃建立起一個在數學算法的建立和運算中對用戶屏蔽EDA軟體層,使得各種層次用戶均可透明的使用FGPA計算系統,而不用關心硬體和硬體部署、接口的各個細節,實現PC-FPGA科學計算的原型系統。

1.2應用背景

大規模科學問題對數學算法運算速度的追求是無止境的,因此需要探索更快速的方法。目前基於FPGA技術的可重構高性能計算系統已經成為研究熱點,把數學算法轉換成硬體邏輯在FPGA中運行是一個好辦法,但數學算法轉換為硬體邏輯的過程複雜,而且受限於硬體電路規模,並不是所有的數學算法都適合轉換為硬體邏輯。且其存在的一個普遍的問題就是用戶應用編程難度較大,且軟體專用、價格昂貴。

FPGA 為各種高速算法的實現提供了一個很好的平臺,但是同樣引申出的問題是如何快速有效的建立這些算法。在數學中最常用的算法表示是流程圖形式,因此本研究針對如何把數學流程圖算法轉換成為硬體邏輯以及建立其原型系統進行研究,計劃建立起一個在數學算法的建立和運算中對用戶屏蔽EDA軟體層,使得各種層次用戶均可透明的使用FGPA計算系統,而不用關心硬體和硬體部署、接口的各個細節,實現PC-FPGA科學計算的原型系統。

FPGA (現場可編程門陣列)是一種具有大規模可編程門陣列的器件,不僅具有專用集成電路(ASIC)快速的特點,更具有很好的系統實現的靈活性。FPGA可通過開發工具實現在線編程。與CPLD (複雜可編程邏輯器件)相比, FPGA屬寄存器豐富型結構,更加適合於完成時序邏輯控制。FPGA提供大量的並行資源,在硬體中只需要幾個時鐘周期就可以執行完函數功能,而順序操作的處理器則需要成百上千的時鐘周期。由於只需要很少的時鐘周期,FPGA即使採用較慢的時鐘,也能夠提升性能。減小時鐘速率可以降低功耗,因此,FPGA協處理器的功耗效率遠遠大於處理器。利用當今高性能FPGA(例如,Altera的Stratix III系列FPGA)的結構和資源優勢,大量的應用軟體都可以採用硬體加速協處理器,大大提升性能,如表所示。相對於只採用處理器的應用,基於FPGA的協處理器在實際應用中運算執行速度提高了10倍,速度提高100倍也是很常見的。

FPGA硬體加速列表

註:上表來自 Altera公司.利用FPGA加速實現高性能計算 [j]電子產品世界

可重構計算(Reconfigurable Computing,RC),簡單地說,就是利用FPGA邏輯實現計算任務。有些文獻把它稱為自適應計算(Adaptive Computing),也有的文獻把它稱為FPGA定製計算(Custom Computing)。可重構計算的概念早在20世紀60年代就已提出。在通用微處理器上也運用了這一思想,如組件就是利用多路選擇器來實現功能的變化,而這些組件一般與計算結構不發生直接聯繫。目前,可重構計算已有較大發展,主要目標是希望通過硬體可編程,來自適應計算任務的需求,以期達到最佳性能;而且這種硬體結構的變化,能實時地適應計算任務要求的變化。可重構計算的底層技術是FPGA編程技術,可重構計算的優點是硬體設計的實現基於軟體的靈活性,並且保持了傳統的基於硬體方法的執行速度。其體系結構可變的特點,很好地適應了實際應用中的多元化需求。

國際現狀

國際上主要有XtremeData,Nallatech,美國星橋公司和蘇格蘭愛丁堡大學FPGA高性能計算聯盟研究類似產品。

採用了多片Altera® Stratix® III FPGA,並且使用Intel QuickAssist技術,XtremeData XD2000i In-Socket加速器(ISA)展示了這一強大的1066 MHz協處理解決方案。Stratix III FPGA的快速架構和I/O功能在這一模塊中非常有效,實現了穩定的1,066 MHz FSB速率。XD2000i模塊相對於目前的GPU還具有功耗、體積、存儲器誤碼校正編碼(ECC)等優勢:功耗低於60W,模塊可以緊密安裝在刀片外形封裝中。XD2000i模塊結合了Intel Xeon 5000系列處理器和Stratix III FPGA協處理器,使客戶能夠使用性能最好的FSB加速器,顯著降低了成本和功耗,產品更加緊湊。XD2000i模塊採用了Stratix III FPGA,在基於Intel的平臺上,實現的某些算法具有優異的性能。Intel QuickAssist技術工作檯為Altera和XtremeData等公司提供了創新的協處理器解決方案開發環境。Intel提供基於FPGA的緊耦合In-socket加速器。將基於Stratix III FPGA的XD2000i插入到Intel Xeon處理器插槽中,使協處理器能夠與存儲器和主處理器實現高速連結,不需要改動電路板,從而為設計人員提供了簡單的硬體集成途徑。今年第三季度將提供新版XD2000i模塊,四插槽電路板通過單獨的FSB處理器互聯支持500K邏輯單元(LE)以及1,536個乘法器。

該公司一直致力於高性能FPGA計算技術的研究與開發,其解決方案包含了目前業內FPGA最成熟和先進的開發技術,在技術的領先性和應用的普遍性方面取得了一個很好的平衡。模塊化的硬體平臺,提供一個由多個FPGA、內存、數模接口和串行接口組合而成的高帶寬、內部連接的結構。具體形式有PCI,VME,cPCI 和PCI-104等形式。FUSE系統軟體可以運行在包括Windows,Linux和VxWorks等作業系統的主機系統上,通過程序環境中的APIs,提供配置、控制以及和FPGA運算平臺通信等功能。提供了在主機系統和Nallatech FPGA運算平臺之間進行配置,控制和通信的功能,支持最常用的作業系統和程式語言。支持的作業系統包括Linux,Windows和VxWorks; FUSE APIs,包括支持DIMEtalk的APIs,支持C/C++ 和Java的APIs; 在單個系統中支持多個FPGA平臺; FUSE Toolbox for MATLAB提供了Matlab和FPGA硬體平臺的直接接口; 支持硬體和主機之間接口的TCL腳本語言。

星橋公司以175000-700000美元的價格銷售4種型號的FPGA「超計算機」,被稱為HC-62的「超計算機」的售價為350000美元,配置11個Xilinx公司生產的價格為3000美元的FPGA晶片,它每秒能夠完成2000億次浮點運算。售價為700000美元型號的「超計算機」包含有22有個Xilinx公司的晶片,每秒能夠完成4000億次浮點運算。另外,客戶還必須購買Viva的許可證,每人每年的價格為45000美元。

Maxwell只佔用了愛丁堡大學並行計算中心的兩個機櫃。這一技術目前存在的問題是,編程非常困難。導致Maxwell還很難投入商業使用。但Maxwell已經試運行了來自石油、金融、醫療成像等行業對處理能力要求較高的應用軟體。在運行金融行業的軟體時,Maxwell的速度是使用標準處理器的相似系統的2-300倍。Maxwell採用了Xilinx的FPGA技術。

在基於FPGA的可重構高性能計算的研究領域,國內主要有中國科學技術大學等少數幾所大學的相關教授在研究FPGA可重構計算的結構和算法,國內的FPGA可重構計算還處於起步階段,與國際水平還有很大差距,尚無通用成品運算平臺,國內主要研究現狀比較見下表。

目前一般情況下對於需要使用PC來解決一個科學計算的問題,首先會使用C、Matlab或者其他語言來實現這個算法,變成程序,程序與作業系統進行交互運行,作業系統與機器碼在CPU 的物理層上運行 ,而CPU 層則是工作在硬體邏輯層之上 . 可以看到,運算工作於3個層次,如果有辦法讓我們的算法直接工作在硬體邏輯層,那麼算法的運算速度將大大提高。

科學計算軟體如Matlab、Scilab是廣大科研工作者廣泛使用的數學工具,科研中大量的科學計算問題都是由科學計算語言來描述的,本研究的最終目的是採用基於FPGA的可重構計算技術對科學計算軟體進行加速,使其能在PC平臺上完成高性能科學計算。

這項研究最核心的問題就是如何把科學計算問題轉換成為硬體邏輯(可綜合)。

數學算法在PC上運行和在FPGA上運行情況對比

隨著微電子工藝水平的提高和EDA工具的進步,目前主流商用FPGA晶片的集成規模已經超過I千萬等效門,而且還在按照摩爾定律增加,利用這些晶片解決問題的能力越來越強。另一方面,隨著應用要求的發展,可重構計算技術所處理問題的規模越來越大,系統也變得越來越複雜,同時對系統設計時間的要求卻是越來越短,迫切需要開發和使用與此需求相適應的支持電路實時重構技術的高級設計方法和工具來充分發揮現有FPGA的能力。目前可重構計算面臨的主要問題是大量設計工作依靠手工方法完成,並要求用戶掌握算法、並行計算、硬體描述語言和電路設計等大量相關知識及豐富的設計經驗,設計難度很大,設計周期較長,嚴重製約著可重構計算技術的推廣和普及。

目前國際上雖然已經有一些面向可編程晶片設計的高級工具,但基本上是借鑑ASIC設計方法,不但缺乏對實時可重構的支持,而且最後自動生成的電路往往難以滿足用戶較為嚴格的時序要求。本研究設計的支持電路實時重構的科學計算平臺為用戶提供一個高級語言設計工具,降低用戶的使用難度,大大加快可重構計算電路設計的速度,必將成為可重構計算技術發展的方向,因此本設計是一個極具前途的研究課題。本系統利用FPGA的可重配置特性,計算機與FPGA運算相結合的計算裝置,如果能與支持電路實時重構的編譯技術相結合,將能很輕鬆地設計出小規模、高性能、低成本、低功耗的硬體平臺,本系統探索和建立數學算法向硬體邏輯轉換的理論方法,對於當前的可重構計算、高速信號處理、FPGA應用設計乃至IC 設計都有著重要意義 ,其關鍵的問題在於給用戶提供數學算法向硬體邏輯轉換的工具,以此來幫助用戶更加快速的建立應用。

研究的意義

探索和建立數學算法向硬體邏輯轉換的理論方法,對於當前的可重構計算、高速信號處理、FPGA應用設計乃至IC 設計都有著重要意義 ,其關鍵的問題在於給用戶提供數學算法向硬體邏輯轉換的工具,以此來幫助用戶更加快速的建立應用。基於FPGA的可重構高性能計算將有可能大大降低對於超級計算機的需求,大量的科學計算問題將有可能提供FPGA的硬體邏輯得以實現 . 同時 ,基於FPGA的可重構高性能計算系統的硬體成本相比高性能超級計算機來說較低,更加有利於普及和推廣。

1.3研發計劃

科學計算工具的研究一直是科學研究的前沿領域,其目前主要方向集中在更高性能的超級計算機構建方面,其主要是利用CPU陣列的規模優勢來實現高性能。本研究採用FPGA可重構數字電路硬體加速的方法在Scilab中實現高性能科學計算,研究使用圖形化方法把數學算法轉換到硬體邏輯的方法和軟體,目標實現PC與FPGA相結合的科學計算系統:實現 Scilab - FPGA運算任務的協同工作 ,對於用戶來說整個系統透明,用戶使用Scilab/Scicos編程,硬體生成和加速工作由系統自動完成,整個系統構成一個具備硬體加速功能的科學計算平臺。

基於前期開發的Scilab/Scicos-HDL軟體,進一步完善,構建起配套的FPGA可重構硬體環境,建立Scilab-FPGA軟硬體聯合仿真運算平臺,並且在其上建立大規模科學運算應用)。

開發與Scilab系統相互通信交FPGA硬體模塊,實現Scilab/Scicos-HDL與FPGA硬體模塊聯合仿真;

在該系統上設計建立大規模科學計算應用來進行大規模矩陣運算等。可行性:基於4年時間的前期工作,課題組已經開發出 科學計算算法(代碼方式和圖形化方式)轉換為 硬體描述語言(支持 VHDL、Verilog、 SystemC)的軟體,本項目申請所要完成的是其FPGA硬體模塊和其協同工作方法有較高的可行性 。

本項目建在在充分的前期工作基礎之上。項目組成員自主開發了在開源的科學計算軟體上進行硬體電路算法設計和仿真的軟體Scicos-HDL (2005-2010). 該項目的研究一直在中科院自動化所中法實驗室和法國 INRIA的支持下進行。

目前Scicos-HDL 0.7運行在Windows平臺。具備5個硬體電路仿真庫,包括50多個硬體電路仿真元件和VHDL、verilog、systemc語言編譯器模塊。當前可以完成組合邏輯電路設計、時序邏輯電路設計和基本的數位訊號處理,支持VHDL、verilog、SystemC 3種硬體描述語言,支持自動文檔生成,並且生成的HDL代碼均為可綜合。Scicos-HDL還支持與其它Open Source的EDA軟體進行集成,構建完整的設計工具鏈。用戶在Scilab / Scicos環境下對電子電路進行高級描述,並可對自己的設計方案進行系統仿真和修正,然後通過編譯生成基於VHDL的RTL級結構模型。該模型可通過各種商業化的IC-CAD接口,最終產生對應於所描述系統的硬體平臺。使用這樣的開發工具,用戶在設計集成電路系統時,即使不了解硬體電路的內部細節,甚至不了解 HDL語言,也可以根據自己的需要進行電子電路的設計。還可以使設計數字電路和數位訊號處理電路的工作變得快捷,門檻更低。

Scicos-HDL元件庫示例

課題組前期與中科院自動化所中法實驗室(LIAMA)和法國INRIA Scilab組織在科學計算算法轉換到硬體描述語言方面有著長期合作基礎,合作開發Scilab/Scicos-HDL軟體系統已經數年,在開源領域有一定的知名度。本項目設計把科學計算軟體與FPGA技術可重構系統相結合,構建出低成本和易於使用的高性能科學計算平臺。本系統研究實現了基於FPGA可重構計算技術的科學計算平臺系統原型,實現了Scilab-FPGA運算任務的協同工作,對於廣大用戶,整個系統透明,將其中的數學算法轉換為數字電路硬體邏輯的理論方法和軟體,開發與Scilab系統相互通信交互的FPGA硬體模塊,實現Scilab/scicos-HDL與FPGA硬體模塊聯合仿真,在高性能科學計算領域,有較強的應用價值。

1.4研究意義

探索和建立數學算法向硬體邏輯轉換的理論方法,對於當前的可重構計算、高速信號處理、FPGA應用設計乃至IC 設計都有著重要意義 ,其關鍵的問題在於給用戶提供數學算法向硬體邏輯轉換的工具,以此來幫助用戶更加快速的建立應用。基於FPGA的可重構高性能計算將有可能大大降低對於超級計算機的需求,大量的科學計算問題將有可能提供FPGA的硬體邏輯得以實現 . 同時 ,基於FPGA的可重構高性能計算系統的硬體成本相比高性能超級計算機來說較低,更加有利於普及和推廣。

2設計與實現

本章來說明對於項目整個系統的設計結構進行了說明,並且說明了目前實現的部分。

2.1總體設計

2.1.1總體設計圖

系統中 Scicos-HDL模塊負責 硬體電路的設計、仿真和HDL代碼輸出。當用戶完成了一個 硬體設計後 ,可以先行在Scicos-HDL中進行軟體仿真,仿真完成後,用戶可以導出VHDL、Verilog、SystemC這三種硬體描述語言的代碼(可綜合)。導出的HDL代碼經過用戶手動處理,下載到NETFPGA板子上後,通過千兆乙太網接口,與Scicos-HDL進行軟硬體聯合仿真。

在NETFPGA板子上,通過乙太網連接MicroBlaze處理核心,使用HTTP協議進行數據交換Scicos-HDL導出的代碼以用戶自定義IP的方式加入到系統中。

2.1.2技術發展路線

本節來闡述項目技術的基本原理和發展的技術路線。

(1)數學算法轉換成硬體邏輯原理

圖形化的算法描述和仿真是一種常見的算法表達方式,其也最接近於實物性質的描述,目前計算機軟體中採用圖形化仿真方法的很多,如MatlAB,SystemView、labView等.本研究設計了一套基於硬體知識的圖形化算法仿真機制,使得用戶在軟體中根據算法需要畫出算法流程圖,由系統處理後形成硬體邏輯描述,其基本的結構描述如下:

用途

電腦程式結構

FPGA結構

加法

+ 運算

硬體加法器

乘法

X 運算

硬體乘法器

循環結構

FOR 循環

計數器

判斷結構

IF

數值比較器+數據選擇器

遞增結構

i++

加法計數器

遞減結構

i--

減法計數器

矩陣加法

多條程序實現

矩陣加法器

矩陣乘法

多條程序實現

矩陣乘法器v

賦值

賦值語句

寄存器

功能模塊

函數

算法硬體模塊

數組

數組

RAM

電腦程式結構與FPGA程序結構對比

通過可以看出在程序設計中能夠實現的程序基本結構在FPGA均有對應的硬體實現。本系統中數學算法轉換成硬體邏輯是通過建立圖形化運算機制基礎上:添加FPGA流水線運算基本元件、使用圖形化方法連接各個元件構成算法邏輯圖、把算法邏輯圖轉換成為可綜合HDL描述這三個步驟進行完成。

(2)協同工作中FPGA模塊並行計算

FPGA運算與計算機運算的一個很大的區別在於FPGA中的各個運算單元都是實際硬體存在而計算機運算中的各個運算單元主要是在軟體系統中建立順序執行,因此FPGA可以實現所有運算單元的協調並行計算,但是FPGA並不能自動完成並行計算任務,這需要採用流水線技術來完成。

流水線處理源自現代工業生產裝配線上的流水作業,是指將待處理的任務分解為相對獨立的、可以順序執行的,而又相互關聯的一個個子任務.圖1 是採用流水線技術的一個指令集的操作過程,我們將某一操作分為4 個子任務:取指令I1 ,解碼I2 ,取操作數I3 和運算I4 ,假如每個操作執行的時間均為T ,則執行4 個操作的執行時間為4 T ,將這4 個子任務在時間上重疊,用4 個子部件來完成,相應的4 個子部件連接成串行方式,每個子部件執行的時間為T ,每隔T 時間就可輸出一個操作處理結果,平均速度提高了4 倍,在加入適當的轉移控制之後,即成為流水線操作的工作方式.

採用流水線技術的一個指令集的操作

採用流水線技術,可以大大提高系統運行速度,特別適合於需要進行大批量簡單運算的場合,如數位訊號處理中的卷積操作、FIR 或FFT濾波器等。本研究中作為算法流程機制的FPGA模塊均採用流水線結構,其基本結構如下:

基本算法流程模塊

一個基本的算法流程模塊採用前寄存器和後寄存器,使得系統模塊的工作只取決於自身的運算是否完成,在整體中相對獨立,系統中有多個此類算法模塊是獨立並行工作。

(3) FPGA-PC協同科學計算

此項包含2個方面的內容:一個是FPGA算法系統中本身就有支持科學計算的算法模塊;一個是FPGA運算系統可以和計算機端的科學計算系統連接起來完成FPGA-PC協同科學計算工作。

對於第一個方面本研究在系統的元件庫中設置了矩陣運算元件庫在完成基本的矩陣運算:矩陣運算是科學計算中的一個重要方法,要實現高性能的科學計算在系統內部就必須配置多種硬體矩陣運算處理模塊,如矩陣硬體加法器、乘法器。

對於第二個問題,本研究使用netfpga硬體系統,與開源的科學計算軟體Scilab進行接口,實現FPGA運算系統與科學計算系統協同工作。

本研究中系統軟體基於Scilab/Scicos開發,完成三個主要功能:

使用Scilab/Scicos進行圖形化算法設計;

把圖形化數學算法轉換成為硬體邏輯的功能;支持 VHDL、Verilog、 SystemC 三種硬體描述語言,生成的硬體邏輯可綜合;

與NETFPGA硬體系統實現 FPGA-PC協同任務運算;

2.2軟體設計

軟體模塊的主體功能是硬體設計、仿真、輸出、軟硬體聯合運算。

軟體模塊的結構如下

軟體結構圖

軟體系統目前已經實現的有組合邏輯元件庫、時序邏輯元件庫、虛擬儀器庫、VHDL編譯器、Verilog編譯器、SystemC編譯器。

組合邏輯元件庫

時序邏輯元件庫 超級元件庫

虛擬儀器庫

IP 元件庫

2.2.1組合邏輯元件

所有的組合邏輯元件,均派生自ScilabCode組合模塊 ,使用者只要使用scilab 語言在ScilabCode組合模塊 中定義模塊功能 和 模塊的引腳 ,系統會自動生成相應的硬體描述。

例如:

用戶打開一個ScilabCode組合模塊 放置於 設計區後 ,點擊元件的SET菜單,彈出界面進行引腳的功能的設置:

組合邏輯元件引腳設置界面

組合邏輯元件功能設置界面(使用純Scilab語言描述)

設置完成點擊「QUIT」按鈕,系統自動生成元件

組合元件 74ls04

2.2.2時序邏輯元件

所有的時序邏輯元件,均派生自ScilabCode時序模塊 ,使用者只要使用scilab 語言在ScilabCode時序模塊 中定義模塊功能 和 模塊的引腳 ,系統會自動生成相應的硬體描述。

例如:

用戶打開一個ScilabCode時序模塊 放置於 設計區後 ,點擊元件的SET菜單,彈出界面進行引腳的功能的設置:

時序邏輯元件引腳設置界面

時序邏輯元件功能設置界面(使用Scilab語言描述,狀態轉換圖)

設置完成點擊「QUIT」按鈕,系統自動生成元件

時序邏輯元件例子

2.2.3IP Core元件

所有的IP Core元件,均派生自IP Core模塊 ,使用者只要在IP Core模塊 中定義模塊功能 和 模塊的引腳 ,系統會自動生成元件。

例如:

用戶打開一個IP Core模塊放置於 設計區後 ,點擊元件的SET菜單,彈出界面進行引腳的功能的設置:

IP Core元件引腳設置界面

進行引腳設置以後,系統會自動生成VHDL、Verilog、SystemC這三種硬體描述語言的模板,用戶根據所需功能修改模板,即可完成模塊設計。

VHDL語言模板

Verilog語言模板

SystemC語言模板- 頭文件

SystemC語言模板- 程序文件

編輯完成,點擊:「QUIT」按鈕,系統後自動完成元件的建立。

IP Core元件例子

2.2.4超級模塊元件

超級元件是指由多種不同的元件組合起來的元件,用戶可以根據需要使用 組合邏輯元件、時序邏輯元件、IP Core元件 來建立超級元件,另外超級元件也可由數個超級元件組成。

超級元件內部

超級邏輯元件例子

2.2.5編譯器模塊

VHDL編譯器,可以將Scicos-HDL中設計的硬體電路輸出成為可綜合的VHDL語言代碼。

Verilog編譯器,可以將Scicos-HDL中設計的硬體電路輸出成為可綜合的Verilog語言代碼。

SystemC編譯器,可以將Scicos-HDL中設計的硬體電路輸出成為可綜合的SystemC語言代碼。

2.2.6虛擬儀器模塊

虛擬儀器模塊主要是針對元件電路調試和仿真中經常使用的幾種元件和儀器進行虛擬化。但更多的Scicos-HDL中可以Scicos本身眾多的元件作為虛擬儀器元件。

8位的ADC 與 DAC 元件

圖像的讀取和顯示元件

示波器元件

波形發生器元件

2.2.7接口模塊

接口模塊至關重要,它負責了Scicos-HDL仿真引擎與 Scilab\Scicos系統仿真引擎的接口。

接口元件

2.3硬體設計

系統的硬體部分基於NETFPGA實現。

2.3.1NETFPGA

NetFPGA平臺詳細的組成框圖如下:

NetFPGA是由美國史丹福大學(Stanford University)開發設計的一個低成本可重用硬體平臺。一個完整的NetFPGA系統由NetFPGA開發板、雙口千兆乙太網卡、運行於CentOS作業系統的PC機(或伺服器)以及其他軟體程序組成,通過各個層次軟硬體的互相配合完成複雜的網絡結構測試。其中NetFPGA開發板是整個平臺的核心,為用戶提供了及其豐富的硬體資源。

核心部分是一個Xilinx公司的Virtex-II Pro 50型FPGA,這個比較大的FPGA由用戶自定義的邏輯來編程,其核心時鐘頻率為125 MHz。另外還有一個小的Xilinx Spartan型FPGA用來實現連接主機處理器的PCI接口的控制邏輯。

在外部存儲器方面,兩片4.5MB的Cypress公司SRAM與FPGA核心邏輯同步運行於125 MHz時鐘頻率,字長36比特。總共64 MB的兩片Micron公司DDR2型SDRAM與FPGA異步運行,其時鐘頻率為200MHz,字長32比特,存儲帶寬400 M字/秒(12,800Mb/s)。

在外部接口方面,除了連接PC主機的PCI總線插口,一個Broadcom公司的物理層收發器(PHY)包含了四個千兆位乙太網接口,使該平臺可以連接四根標準的category 5、category 5e、或category 6乙太網雙絞線來收發數據分組,並組成網絡拓撲;四埠的PHY內部連接著作為FPGA軟核的四個千兆位乙太網MAC控制器。此外,兩個SATA連接口使得系統內部的多個NetFPGA可以通過SATA數據線連接起來,互相之間直接以很高的速度交換數據,而不必再通過PCI總線。

NetFPGA通過PCI總線與主機CPU連接,提供了硬體加速的數據通道,分擔CPU的處理任務。主機CPU按照DMA方式讀寫NetFPGA上的寄存器和存儲器來配置NetFPGA的工作模式,並對NetFPGA的工作狀態進行監控。

此外,雙口千兆乙太網卡用來給主機提供本地網絡接口,並與NetFPGA連接,實現特殊的用法。

NetFPGA平臺的組成框圖

NetFPGA開發板的主要硬體組成:

Xilinx Virtex-II Pro 50 FPGA

內嵌兩顆高性能PowerPC處理器

國際通用的JTAG測試埠

4.5 MB高速靜態隨機存取器

內嵌64MB二代內存

4組速率高達1Gbps的標準乙太網接口

支持 Cat5E和Cat6標準電纜

NetFPGA系統框圖:

2.3.2硬體結構

硬體部分基於NETFPGA的硬體,主體結構如下圖:

基於NETFPGA的硬體結構圖

以MicroBlaze為核心,千兆乙太網作為與PC交互接口,Scicos-HDL輸出的代碼,用戶手動添加到 用戶自定義模塊中 ,完成硬體部署。

由於NETFPGA系統基於LINUX,所以本設計採用了一個外部的 XILINX Platform Cable USB設備,進行下載與調試的工作,使得NETFPGA硬體能夠獨立工作。

NETFPGA硬體連接圖

2.3.3微處理器

MicroBlaze 是基於Xilinx公司FPGA的微處理器IP核,和其它外設IP核一起,可以完成可編程系統晶片(SOPC)的設計。MicroBlaze 處理器採用RISC架構和哈佛結構的32位指令和數據總線,可以全速執行存儲在片上存儲器和外部存儲器中的程序,並和其它外設IP核一起,可以完成可編程系統晶片(SOPC)的設計。MicroBlaze處理器採用RISC架構和哈佛結構的32位指令和數據總線,可以全速執行存儲在片上存儲器和外部存儲器中的程序,並訪問其的數據。

Micro Blaze處理器採用RISC架構和哈佛結構,32位地址總線,獨立的指令和數據緩存,並且有獨立的數據和指令總線連接到IBM的OPB總線,使得它能很容易和其它外設IP核一起完成整體功能。圖3.2.2顯示了MicroBlaze的接口連接和架構布局,圖3.2.3顯示了MicroBlaze的內部功能塊圖。

MicroBlaze的接口連接和架構布局

MicroBlaze內部的功能塊圖

(1)內部結構

MicroBlaze內部有32個32位通用寄存器和2個32位特殊寄存器—PC指針和MSR狀態標誌寄存器。為了提高性能,MicroBlaze還具有指令和數據緩存。所有的指令字長都是32位,有3個操作數和2種尋址模式。指令按功能劃分有邏輯運算、算術運算、分支、存儲器讀/寫和特殊指令等。指令執行的流水線是並行流水線,它分為3級流水:取指、解碼和執行,如圖2所示。

(2)存儲結構

MicroBlaze是一種大端存儲系統處理器,使用如圖3所式的格式來訪問存儲器。

(3)中斷控制和調試接口

MicroBlaze可以響應軟體和硬體中斷,進行異常處理,通過外加控制邏輯,可以擴展外部中斷。利用微處理器調試模塊(MDM)IP核,可通過JTAG接口來調試處理器系統。多個MicroBlaze處理器可以用1個MDM來完成多處理器調試。

(4)快速單一連接路接口

MicroBlaze處理器具有8個輸入和8個輸出快速單一鏈路接口(FSL)。FSL通道是專用於單一方向的點到點的數據流傳輸接口。FLS和MicroBlaze的接口寬度是32位。每一個FSL通道都可以發送和接收控制或數據字。

應用EDK(嵌入式開發套件)可以進行MicroBlaze IP核的開發。工具包中集成了硬體平臺生產器、軟體平臺產生器、仿真模型生成器、軟體編譯器和軟體調試工具等。EDK中提供一個集成開發環境XPS(Xilinx平臺工作室),以便使用系統提供的所有工具,完成嵌入式系統開發的整個流程。EDK中還帶有一些外設接口的IP核,如LMB、OPB總線接口、外部存儲控制器、SDRAM控制器、UART、中斷控制器、定時器等。利用這些資源,可以構建一個較為完善的嵌入式微處理器系統。

在FPGA上設計的嵌入式系統層次結構為5級。可在最低層硬體資源上開發IP核,或或已開發的IP核搭建嵌入式系統,這是硬體開發部件;開發IP核的設備驅動、應用接口(API)和應用層(算法),屬軟體開發內容。

利用MicroBlaze構建基本的嵌入式系統。通過標準總線接口—LMB總線和OPB總線的IP核,MicroBlaze就可以和各種外設IP核相連。

EDK中提供的IP核均有相應的設備驅動和應用接口,使用者只需利用相應的函數庫,就可以編寫自己的應用軟體和算法程序。對於用戶自己開發的IP核,需要自己編寫相應的驅動和接口函數。

2.3.4MAC

MAC的控制採用了XILINX的IP EthernetLITE,簡化乙太網子系統。對於遠程監視或控制應用中所需要的簡單網絡接口來說,最小化網絡子系統就足夠了。

  MicroBlaze 「Lite」 Ethernet Subsystem:MicroBlaze乙太網簡化子系統

簡化乙太網子系統

利用不帶中斷的Ethernet Lite IP在簡單的查詢模式下實現設計就可以了。同時還可以將全部軟體,包括簡單的應用層,都存儲在Xilinx FPGA中的本地存儲器中。利用XPS中的基本系統構建嚮導(Base System Builder wizard)可以容易地創建這樣的MicroBlaze設計。

2.3.5HTTP接口

·lwip網絡協議棧

Lwip是Light Weight IP的縮寫,它是專門為嵌入式系統應用的TCP/IP協議棧。Lwip既可以移植到作業系統上,又可以在無作業系統的情況下獨立運行。Lwip支持多網絡接口下的IP轉發,ICMP協議,UDP協議,TCP協議。不同於一般的TCP/IP協議棧,在Lwip的處理器模型中,所有TCP/IP協議棧都在一個進程當中完成,而不是在每一層都有一個單獨的進程。這樣TCP/IP協議棧就和作業系統內核分開了,避免了跨層傳輸數據時頻繁的上下文操作。而應用層程序既可以是單獨的進程也可以駐留在TCP/IP進程中。如果應用程式是單獨的進程,可以通過作業系統的郵箱、消息隊列等和TCP/IP進程進行通訊。如果應用層程序駐留TCP/IP進程中,那應用層程序就利用內部回調函數接口和TCP/IP協議棧通訊。

·SOCKET編程

網絡的Socket數據傳輸是一種特殊的I/O,Socket也是一種文件描述符,它具有類似於打開文件的函數調用Socket()。基於作業系統的Socket編程有三種類型:流式套接字,數據報式套接字,原始式套接字。其中只有流式套接字提供一個面向連接的可靠的數據傳輸服務。

·伺服器端HTTP協議的實現

HTTP協議是一種較為常用的應用層協議,它是Hypertext Transfer Protocol的縮寫。HTTP協議採用客戶端和伺服器的模式,通過客戶端向伺服器發出請求,獲得伺服器端的響應。在本系統設計中SOPC系統作為HTTP協議的伺服器。HTTP請求和響應的報文格式是相似的,報文有一個請求行/狀態行和一個頭部組成,有時還可能包括主體。在請求行中包括了請求類型,URL,版本等。在響應行中包括狀態碼,狀態短語等。頭部格式為:(頭部名字:頭值)。下面是一個HTTP請求的例子。

請求

應答

GET /usr/bin/image HTTP/1.1

Accept: image/gif

Accept: image/jpeg

HTTP/1.1 200 OK

Date: Mon,08-Jan-05 13:15:14 GMT

Server: Challenger

MIME-Version: 1.0

Content-length: 2048

(圖像文件主體)

表4-1 一個HTTP請求的例子

在EDK中,每一個外設IP模塊都有自己的軟體函數庫。利用Libgen工具,將所需外設函數數庫的頭文件添加進工程中,通過調用這些函數可以操作和控制這些外設。例如對串口的操作如下:

//初始化串口,設置波特率等參數,清空發送和接收緩衝,禁止中斷;

使用標準C語言進行應用程式的開發,編寫相應的算法軟體,完成系統功能。

將編寫的程序代碼利用mb-gcc編譯工具,根據系統的軟體一併,生成.ELF文件。在編譯連結之前,若選擇調試方式,就會在生成文件中加入調試接口SMDstub,進行程序的硬體調試。

利用系統的硬體模型以及RAM塊的組織結構文件、ELF文件和用戶結束文件,應用FPGA綜合實現工具(如Xilinx XST)進行綜合,然後下載生成的配置BIT文件到目標板上。利用EDK中提供的GDB調試工具可以進行程序調試。有兩種調試方法:軟體仿真和硬體調試。軟體仿真可以進行程序的功能調試,在開發工具內部就可以進行,不需要硬體支持。硬體調試就是通過JTAG接口或串口(可在硬體設計時選擇),連接到目標板上的應用系統中的XMD調試接口,將軟體程序下載到系統中進行調試。本課題使用的目標板上的主晶片為Xilinx Spartan IIE 30萬門的FPGA,系統時鐘為50MHz。實際運行完全滿足設計要求。

H TTP 協議及其實現

嵌入式Web 伺服器技術的核心是HTTP (超文本傳送協議) 引擎。HTTP 是WWW 上的協議。HTTP 協議使Web 伺服器和瀏覽器可以通過Web 交換數據。他是一種請求/ 響應協議,即伺服器等待並響應客戶方請求。當用戶要瀏覽伺服器上的一個網頁時,一個HTTP 請求就會從用戶的瀏覽器發到HTTP 伺服器。伺服器響應這個請求, 把指定的網頁傳送回來, 用戶才看到了網頁。

HTTP協議不維護與客戶方的連接,他使用可靠的TCP連接,通常採用TCP 的80 埠。客戶/ 伺服器傳輸過程可分為4 個基本步驟:瀏覽器與伺服器建立連接;瀏覽器向伺服器請求文檔;伺服器響應瀏覽器請求;斷開連接。伺服器程序開始運行時,主進程就創建一個套接字,

並與主機地址綁定到一起,隨後置為被動監聽狀態,等待客戶端連接請求的到來。一旦接收一個連接,就返回一個新的套接字描述符,主程序則開闢一個新的子程序來處理這個新的連接。這樣系統可以同時

接收多個客戶端的請求。首先創建套接字,將套接字與本地地址和埠綁定,並設置套接字處於監聽狀態。Web 伺服器在接收一個連接請求後,讀取用戶的請求,根據用戶的請求進行相應的處理。當請求位靜態文本時,文檔直接提交輸出,當請求位動態文本時,請求模塊自動調用腳本引擎,將腳本替換位現場數據,再提交輸出,當請求為帶參數的執行命令時,請求解析器調用命令執行模塊分析命令並控制監控前端。

Http 設計模型

CPU 本身是以軟核的方式實現,其功能可根據需要進行定製,非常靈活。EDK 不但在硬體設計上提供了支持,在軟體上也為設計者提供了較好的支持,提供了現成的網絡協議棧。加上EDK提供的集成開發環境使得軟體開發更加便利。採用這種方式的控制系統具有控制分散、開放性好、使用簡單、穩定性好等優點,而且可以通過瀏覽器進行遠程多點監控和遠程支持,是未來控制系統發展的一個趨勢。

2.3.6IP核封裝

設計使用輸入GPIO 32位,輸出GPIO 32位。

2.3.7設計過程

Software:Xilinx ISE Design Suite 10.1 SP3

ISE主界面

新建一個工程

選擇FPGA信號和嵌入式處理器型號

選擇時鐘頻率和調試方式

添加 ETHERNET模塊、GPIO模塊和內存模塊

添加系統時鐘

設置調試方式和系統測試

系統設置清單

設置完成並保存

設置完成後的工程

定義內存型號

定義系統中斷

選擇作業系統 petalinux

2.3.8設計截圖

設計完成之後的系統設計圖

2.3.9編譯代碼

對於嵌入式LINUX系統代碼的編譯,本項目採用虛擬機的方式在Ubuntu下完成。

虛擬機採用開源的 Sun VirtulBox

啟動Ubuntu

安裝缺少的庫

設置環境變量

設置環境變量

Petalinux文件

Petalinux文件

設置Petalinux

轉換autoconfig.in的格式。輸入命令:

>vi autoconfig.in

將出現vi的編輯界面,在vi的命令行模式輸入以下命令:

>:set ff=unix

然後保存退出。輸入命令:

>:wq

這樣,就完成了autoconfig.in的導入工作。

編譯Petalinux

開始編譯

編譯完成

3實驗與分析

3.1實驗設計

3.1.1實驗題目

24位彩色圖像的2值化處理

3.1.2實現結構

根據RGB圖像灰度公式 :

Gray =0.299*R+0.587*G+0.114*B (公式1)

Gray = (R^2.2 * 0.2973 + G^2.2 * 0.6274 + B^2.2 *0.0753)^(1/2.2) (公式2)

本實驗中使用 公式1 進行計算

灰度圖像二值化方法:

閾值法二值化

實驗中採用一個根據參數可調整的設計,以體現本系統在算法可重構方面的優點。

實驗原理圖

3.2模塊分析

本節對於實驗中所使用的各個模塊進行分析。

3.2.1輸入模塊

負責圖像的輸入:

圖像讀取模塊

3.2.2數值計算模塊

負責處理圖像數據的灰度變化和二值化計算。

3.2.2.1R分量元件

計算: 0.299*R 採用ScilabCode組合元件模式實現

引腳設置

功能設置

3.2.2.2G分量元件

計算 0.587*G採用ScilabCode組合元件模式實現

界面設置

功能設置

3.2.2.3B分量計算元件

計算 0.114*B採用ScilabCode組合元件模式實現

引腳設置

功能設置

3.2.2.4RGB_ADD

計算 R分量+G分量+B分量 採用IP Core模式實現

引腳設置

功能設置

功能設置

3.2.3數據比較模塊

二值化元件 採用ScilabCode組合元件模式實現

引腳設置

功能設置

3.2.4輸出模塊

圖像顯示模塊

3.3實驗過程

3.3.1運行環境

系統軟體

Scilab 5.1

Scicos-HDL 0.7 for Windows

系統硬體

Hardware:NETFPGA board

Software:Xilinx ISE Design Suite 10.1 SP3

3.3.2安裝 Scilab 5.1 for Windows

在 http://www.scilab.org/ 進行下載

注意 只支持 scilab5.1 的windows版, scilab5.1以後的版本中因為Scicos改作xcos , 此版本正在開發中。

3.3.3安裝Scicos-HDL

1.Download Scicos-HDL package, save it, like (D:/scicoshdl_nv/scicos-hdl)

2. open /scilab-5.1/modules/scicos/etc/scicos.start

before (//end // if %scicos)

please add the following sentence:

exec(D:/bak/scicoshdl_nv/scicos-hdl/ScicosHDL_start.sce);

3. Run Scilab/Scicos, you can use Scicos-HDL now.

Scicos-HDL is a free software.

Under Scilab licence.

Scicos-HDL Copyright (c) 2004-2010

ZhangDongKangCai (NXU, LIAMA,SCILAB)

scicoshdl@gmail.com

4. all examples :/scicos-hdl/example

5. Contact: scicoshdl@gmail.com

安裝完成之後,啟動Scilab5.1 , 可以看到Scilab加載的時候,Scicos-HDL已經啟動。

Scicos-HDL安裝後Scilab啟動界面

3.3.4安裝SIVP

Scilab圖像讀取等工作我們使用了SIVP作為工具,因此需要安裝 SIVP (http://sivp.sourceforge.net/ 下載 )

啟動Scilab後,點擊Toolboxes菜單的SIVP菜單,啟動SIVP.

3.3.5啟動Scicos

在Scilab中輸入 scicos 命令, 即可啟動Scicos

啟動scicos

Scicos啟動後界面如下:

Scicos界面

點擊Palette菜單的Palette選項

Scicos元件菜單

點擊以後可以看到Scicos-HDL的各個庫文件已經安裝

Scicos元件菜單

3.3.6Scicos-HDL

時序邏輯元件庫

超級元件庫

虛擬儀器庫

IP 元件庫

組合邏輯元件庫

3.3.7打開實驗工程

使用Scicos 打開 設計工程

打開實驗工程

圖像處理工程

加載圖片

加載的圖片顯示

點擊simulate菜單中的RUN選項

處理過程開始

處理完成的結果

代碼輸出

使用VHDL、Verilog、SystemC編譯器對設計好的代碼進行輸出。

輸出的VHDL代碼

輸出的Verilog代碼

輸出的SystemC代碼 (帶一個VC++ 2008的工程文件做調試用,Scicos-HDL系統內置 BCC5.5)

硬體連接圖

NETFPGA直接通過JTAG接口與計算機相連

NETFPGA與Scicos-HDL協同運算部分,部分完成,本項目未完全完成,尚需繼續努力。(略)

3.4提交的內容

本項目的軟體部分和設計部分完成,硬體部分部分完成。

提交的內容:

相關焦點

  • 美研究者實現基於MEMS的可重構超透鏡
    據麥姆斯諮詢報導,美國阿貢國家實驗室(Argonne National Laboratory)和哈佛大學(Harvard University)的研究人員在《APL Photonics》期刊發表了題為「Dynamic metasurface lens based on MEMS technology」的論文,論文詳細闡述了研究人員通過將定製設計的超表面轉移到2D掃描MEMS平臺上
  • 慧智微電子彭洋洋博士:5G可重構射頻前端技術創新與應用|直播預告
    廣州慧智微電子是一家高性能微波射頻前端晶片提供商,其獨創的射頻前端可重構技術,使射頻前端器件可以通過軟體配置實現不同頻段、模式、制式和場景下的復用。慧智微電子基於其可重構技術平臺,已經完成了5G射頻前端完整方案量產出貨。8月28日晚7點,由智東西公開課策劃推出的IoT晶片合輯第3講將開講,由慧智微電子市場總監彭洋洋博士主講,主題為《5G可重構射頻前端技術創新與應用》。
  • 南方科技大學本科生在邊緣智能計算領域取得研究進展
    近日,南方科技大學深港微電子學院2017級本科生管子義、李凱在邊緣智能計算人工智慧領域的算法設計和晶片設計方向取得研究成果,分別以「A Video-based Fall Detection Network by Spatio-temporal Joint-point Model on Edge Devices」和「A Reconfigurable Multiple-Precision
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 清華大學天機晶片登Nature:類腦加傳統計算融合通用人工智慧
    新型晶片結合了類腦計算和基於計算機科學的人工智慧——這種融合技術有望提升各類系統的能力,最終實現通用人工智慧。作為人工智慧的終極目標,人們對於「通用人工智慧」的定義通常是:一種可以執行人類能夠完成的所有任務的 AI。
  • 北京大學多學科交叉催生DNA計算取得系列...
    在眾多前瞻計算技術中,DNA計算和分子智能系統以其高分子並行性、存儲能力以及生物兼容性吸引了人們的目光。其中, DNA電路(DNA circuit)是該領域重要的分子信息調控和處理技術。其應用涉及多個領域,包括分子計算與存儲、基因編輯和納米機器等。然而,與矽基電路只消耗輸入電信號不同,傳統的DNA電路其自身會作為反應物消耗,從而降低了系統的穩定性,並增加了複雜性和DNA編碼難度。
  • 國產超導量子計算雲平臺上線
    中新社合肥9月12日電 (記者 吳蘭)本源量子超導量子計算雲平臺12日在安徽合肥正式上線發布。據介紹,這款國產超導量子計算雲平臺,基於超導量子計算機——悟源,向全球用戶提供真實的量子計算服務。悟源是一臺能夠脫離實驗室環境穩定運行的超導量子計算系統,也是中國國內率先實現工程化的量子計算機。
  • 新材料助力類腦計算 探路「電子大腦」
    近日,南京大學物理學院繆峰教授團隊分別在類腦視覺傳感器和可重構類腦電路方面取得重要進展。這些研究成果發表在權威期刊《科學·進展》和《自然·電子學》上。打造二維「可重構」器件,讓類腦電路「瘦身」目前,主流的信息處理技術依賴於馮·諾依曼架構,在這種架構中,數據的存儲和計算是分開進行的。數據在存儲和計算單元之間來回「搬運」,會產生較大的延時和較高的功耗,隨時有「交通堵塞」的風險。
  • 新材料助力類腦計算,探路「電子大腦」
    近日,南京大學物理學院繆峰教授團隊分別在類腦視覺傳感器和可重構類腦電路方面取得重要進展。這些研究成果發表在權威期刊《科學·進展》和《自然·電子學》上。像搭「樂高」一樣,搭出類腦視覺傳感器「傳統的機器視覺系統需要先探測再處理,使用的圖像傳感器在探測目標圖像的同時會產生大量冗餘信息,此類信息通過有限的帶寬再傳輸至計算機,會導致較大的時間延遲和較高的功耗。
  • 新材料助力類腦計算,探路「電子大腦」
    近日,南京大學物理學院繆峰教授團隊分別在類腦視覺傳感器和可重構類腦電路方面取得重要進展。這些研究成果發表在權威期刊《科學·進展》和《自然·電子學》上。  打造二維「可重構」器件,讓類腦電路「瘦身」  目前,主流的信息處理技術依賴於馮·諾依曼架構,在這種架構中,數據的存儲和計算是分開進行的。數據在存儲和計算單元之間來回「搬運」,會產生較大的延時和較高的功耗,隨時有「交通堵塞」的風險。
  • 科學計算軟體Matlab的誕生與發展:打造基礎平臺才能贏得未來
    於是在1976年,Cleve Moler博士申請了國家科學基金,與同事一起利用Fortran語言開發了用於求解特徵值的程序庫EISPACK以及用於解線性方程的程序庫LINPACK。博士畢業之後,Cleve Moler進入美國新墨西哥大學計算機系擔任系主任。
  • 合肥開建全國首家量子計算雙創平臺
    12月25日,由合肥本源量子計算科技有限責任公司和合肥市大數據資產運營有限公司共同打造的量子計算創新創業平臺(簡稱「雙創平臺」)正式發布,這是全國首家以量子計算為主要特色的雙創平臺。雙創平臺優勢顯著據介紹,量子計算雙創平臺,是基於先進計算中心運營的重要創新。正在建設中的合肥先進計算中心,是合肥國家綜合性科學中心的重要基礎設施。
  • 用生物計算技術打造生命科學平臺,李彥宏牽頭創立「百圖生科」
    然而,這些技術所帶來的的海量數據和由此而來的挖掘、分析、匹配需求,也向生命科學行業的平臺和工具框架提出了巨大挑戰。原本配置已不能充分應對和利用新獲取的生物數據。為了解決生命科學領域的這些嶄新需求,9月25日,「百圖生科」正式成立,希望在急劇增長的生物數據時代,能為行業提供更好的生物地圖,幫助藥廠找到化合物,幫助醫生找到生物標誌物,幫助科研人員找到各種生物數據背後的意義。
  • 浙大重磅發布億級神經元類腦計算機:基於 792 顆自研「達爾文 2 代...
    據介紹,這一作業系統:面向馮·諾依曼架構與神經擬態架構的混合計算架構,實現了對異構計算資源的統一調度和管理,為大規模脈衝神經網絡計算任務提供運行和服務平臺。就應用而言,該類腦計算機已助力實現了:雷鋒網此前曾報導:在進行學習、認知等複雜計算時,人腦功耗僅 20 瓦;大腦會重複利用神經元,並突觸、異步、並行、分布式、緩慢、不具通用性地處理問題,是可重構的、專門的、容錯的生物基質,並且人腦記憶數據與進行計算的邊界是模糊的。因此,最終旨在實現強人工智慧和通用智能的類腦計算應運而生。
  • 基於LLVM的內存計算
    但身為一個在內存計算方面研究3年左右的筆者,感覺很多人對於內存計算的理解僅停留在把數據緩存在內存中,或者使用最新的SIMD指令集,但筆者在這三年的研發過程中的最大發現並不是這樣,我個人覺得內存計算引擎相對於傳統數據處理引擎,最大的革新是基於LLVM編譯器的動態代碼生成技術,所以本文將給大家介紹現在的產品和技術是如何使用LLVM編譯器來動態生成執行代碼的,從而實現真正意義上的內存計算,那麼在深入這個技術之前
  • AI+科學計算 【AI+科學系列 · 第二期】報名了!
    AI技術,特別是機器學習和強化學習方法,基於實驗或者計算產生的數據對所求解的問題進行可計算建模,從而得到複雜問題的有效解決方式,這對當今科學計算領域的研究範式已經產生了巨大影響。活動日期2020年5月9日(周六)晚上19:30-22:00(北京時間)參與方式PolyV線上直播平臺 主題內容- 科學計算的現狀和挑戰- 科學計算與人工智慧融合的價值
  • 「納米」可重構的活性液態金屬遊動納米機器人集群
    受生命體非平衡動態自組織行為的啟發,藉助活性的遊動納米機器人構建具有可交互、自適應功能的可重構活性軟物質系統,將為更好地理解生命體系湧現性自組織行為提供絕佳的物理模型,也為下一代活性軟物質材料工程提供了新的方向。
  • 浙大重磅發布億級神經元類腦計算機:基於 792 顆自研「達爾文 2 代」晶片,可「意念」打字
    類腦計算機將成為未來計算的主要形態和重要平臺。2020 年 9 月 1 日,我國首臺基於自主智慧財產權類腦晶片的類腦計算機重磅發布。據介紹,這一作業系統:面向馮·諾依曼架構與神經擬態架構的混合計算架構,實現了對異構計算資源的統一調度和管理,為大規模脈衝神經網絡計算任務提供運行和服務平臺。
  • 2020 OCPChinaday議題4實錄:基於開放標準的異構計算加速平臺
    OCP 發布的 OAI 標準是推動異構計算加速平臺發展的重要支撐,該標準為AI 硬體加速模塊和系統設計提供指導和參考,可兼容多元化 AI 加速晶片。目前,百度已經推出了支持 OAI 標準的超級 AI 計算平臺 X-MAN4.0。浪潮也開發了符合OAI標準的參考系統。除了遵循 OAI 標準,OCP 社區成員還不斷加速 AI 基礎架構創新,推出異構加速模塊,提供更強大的異構計算能力。
  • 美研究人員將超表面安裝在2D掃描器等靜電驅動MEMS平臺
    導讀: 這種概念驗證的MEMS上超透鏡(metalens-on-a-MEMS)集成可擴展到電磁波譜的可見光部分和其他頻譜部分,用於包括基於MEMS的顯微鏡系統、全息和投影成像、雷射雷達掃描或雷射列印在內的廣泛應用。