<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團(tuán)論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  FPGA初中級  (http://www.hufushizhe.com/bbs/list.asp?boardid=25)
    ----  FPGA是實現(xiàn)綠色搜索技術(shù)的關(guān)鍵  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=25&id=1512)

    --  作者:wangxinxin
    --  發(fā)布時間:2010-11-19 11:22:18
    --  FPGA是實現(xiàn)綠色搜索技術(shù)的關(guān)鍵
    配置文件服務(wù)器根據(jù)從客戶端獲得的配置文件過濾一系列文檔,并返回分?jǐn)?shù)流。為了評估性能,我們同時創(chuàng)建了 C++ 參考實施和 FPGA 加速實施方案。兩種版本的實施方案基本功能相同,都能通過 TCP/IP 接口接收構(gòu)成配置文件的文檔列表,用相關(guān)性模型構(gòu)建配置文件,并根據(jù)該配置文件對存儲器緩沖的文檔進(jìn)行評分,從而通過 TCP/IP 向客戶端返回文檔分?jǐn)?shù)流。可在存儲器中緩沖文檔流,否則會由于緩慢的磁盤存取影響應(yīng)用的性能。

      我們在具有兩個 RC100 刀片的 SGI AlTIx 4700 設(shè)備上實施該應(yīng)用,其中的每個刀片都包含兩個運行頻率為 100 MHz 的賽靈思 Virtex?-4 LX200 FPGA;每個 FPGA 都通過 SGI NUMAlink 高速I/O 接口連接到主機平臺,并能通過最高速度為每秒 16GB 的 128 位數(shù)據(jù)總線存取本地 64MB 的SRAM 存儲庫。主機系統(tǒng)是一套 80 個內(nèi)核的 64 位 NUMA 設(shè)備,運行性能為 64 位 Linux (OpenSuSE)。處理器為雙核 Itanium-2,運行頻率為 1.6 GHz,其中每個處理器都能直接存取 4GB 的存儲器,而且能通過 NUMAlink 存取完整的 320GB 存儲器空間。值得注意的是,Itanium 處理器功耗約為 130 瓦特 [7],而每個 Virtex-4 FPGA 的功耗僅約 1.25 W [8]。

    在 FPGA=

      圖 2 —— 在 FPGA 子系統(tǒng)架構(gòu)中,Virtex-4 器件通過 SGI 的 NUMAlink 接口與主機平臺連接。

      對于 C++ 語言應(yīng)用而言,我們實施 Lemur 信息檢索 (IR) 框架,對于與 FPGA 應(yīng)用的交互,我們則使用 SGI 可配置專用計算 (RASC) 庫。Lemur Toolkit(詳情訪問 www.lemurproject.org)是一套開源工具集,專為 IR 研究而精心設(shè)計,可支持索引以及多種相關(guān)性和檢索模型。RASC 庫是 SGI的專有解決方案,能夠通過高性能 NUMAlink 互連機制將 FPGA 與主機系統(tǒng)相集成。RASC 庫定義的硬件抽象 API 可控制系統(tǒng)中的所有硬件元素。

      我們用 Mitrionics 軟件開發(fā)工具套件 (SDK) 將特定域的 Mitrion-C 語言轉(zhuǎn)換為 VHDL。生成的VHDL 現(xiàn)在能夠方便地指向 FPGA 器件架構(gòu)。我們采用帶 XST 合成工具的賽靈思 ISE? 工具鏈來創(chuàng)建 Virtex-4 比特流。

      高級 FPGA 編程

      Mitrionics SDK 可提供 Mitrion-C 作為高級語言,專用于滿足在 FPGA 上快速開發(fā)應(yīng)用之需。不過,作為后綴的 C 有些誤導(dǎo)作用。盡管這種語言采用了 C 風(fēng)格的語法,但實際上是一種遵循函數(shù)編程風(fēng)格的單賦值數(shù)據(jù)流語言。Mitrion-C 原生支持廣泛(矢量)而深入(管道)的并行功能,因而非常適用于處理數(shù)據(jù)流的算法,例如過濾以及其他眾多類型的文本和數(shù)據(jù)挖掘算法等。

      Mitrion-C 還提供了一種流數(shù)據(jù)類型,可配合 foreach looping 構(gòu)造實現(xiàn)流水線操作;此外,還提供矢量數(shù)據(jù)類型以支持?jǐn)?shù)據(jù)并行工作,以及支持順序列表的列表數(shù)據(jù)類型。具體而言,用戶可過濾foreach loop 的流輸出,生成較小的流,如以下 Mitrion-C 代碼示例所示。此外,程序人員還能用元組結(jié)構(gòu) (tuple construct) 創(chuàng)建功能強大的數(shù)據(jù)類型。最后還有一個需要指出的特性是,該語言能支持可變寬度整數(shù)和浮點數(shù)。

    代碼

      為了在 FPGA 上高效實施評分操作,我們必須解決的關(guān)鍵問題是高效查詢配置文件以及文檔流的高效 I/O 流。

      對于文檔中的每個詞,應(yīng)用都要查詢配置文件中相應(yīng)的詞并獲得詞加權(quán) (term weight)。由于大多數(shù)查詢都找不到結(jié)果(即大多數(shù)文檔的大多數(shù)詞不會出現(xiàn)在配置文件中),因此必須首先丟棄否定詞。鑒于此,我們在 FPGA Block RAM 中采用了 Bloom 過濾器 [9]。BRAM 的內(nèi)部帶寬越高,拒絕否定詞的結(jié)果就越快。由于需要查詢,因此配置文件必須作為某種散列函數(shù)進(jìn)行實施。不過,由于配置文件的大小不能提前知道,因而我們不可能構(gòu)建出完美的散列函數(shù)。不完美的散列函數(shù)會出現(xiàn)沖突問題,進(jìn)而降低性能。

      為了解決這一問題,我們采用了分檔方案,即將外部 SRAM 分區(qū)為 bin,每個 bin 都可包含固定數(shù)量的配置文件詞。Bin 的大小決定了可處理的沖突數(shù)。如需給 bin 分配配置文件詞,只需將詞 ID 的較下部分作為存儲器地址,從而避免了實際的散列操作。


    主站蜘蛛池模板: 久久久久高潮毛片免费全部播放| 国产一级一级一级国产片| 中文字幕精品一区二区| 月夜直播手机免费视频高清| 八戒网站免费观看视频| 蜜柚视频网在线观看免费版| 国内精品久久久久久影院| 久久99精品久久久久久久久久| 欧洲动作大片免费在线看| 免费在线观看中文字幕| 色一情一乱一伦一视频免费看| 国产精品第一区揄拍无码| 丝袜高跟美脚国产1区| 日本无遮挡边做边爱边摸| 亚洲第一区精品日韩在线播放| 精品久久人人做人人爽综合| 国产成人无码免费看片软件| AAAAA级少妇高潮大片免费看| 成人国产经典视频在线观看| 亚洲av中文无码乱人伦| 欧美日韩国产在线播放| 制服丝袜一区二区三区| 色久综合网精品一区二区| 国产热の有码热の无码视频| a级在线观看视频| 少妇愉情理伦片高潮日本| 久久夜色撩人精品国产| 最近中文国语字幕在线播放| 亚洲精品无码专区在线| 狼群资源网在线视频免费观看| 国产一级毛片午夜| 青青草国产精品| 国产精品久久久久乳精品爆| av片在线观看| 女人与大拘交口述| 中文字幕第35页| 无码少妇一区二区三区芒果| 亚洲AV成人中文无码专区| 欧美www网站| 亚洲永久网址在线观看| 波多野结衣女教师在线观看|