0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文了解芯片設(shè)計(jì)上使用機(jī)器學(xué)習(xí)驅(qū)動(dòng)的布局

Hx ? 作者:工程師陳翠 ? 2018-06-29 05:48 ? 次閱讀

人工智能機(jī)器學(xué)習(xí)正在滲透所有的行業(yè)。隨著人工智能算法的成熟,支持這些算法的硬件平臺也日趨成熟。目前,這些硬件平臺包括 ASICCPU,GPU以及 FPGA 。在 Plunify,盡管我們的強(qiáng)項(xiàng)是FPGA的設(shè)計(jì)優(yōu)化,但是我們中的很多人本質(zhì)上還是軟件工程師。當(dāng)然,這里所說的“軟件工程師”并不包括嵌入式工程師,固件工程師或者研發(fā)驅(qū)動(dòng)的工程師;我們所說的是使用 .NET, JavaPython, R, SQL, C++ 或者 JavaScript 來寫代碼的開發(fā)者們。

我們最近正在研究的項(xiàng)目是在芯片設(shè)計(jì)上使用機(jī)器學(xué)習(xí)驅(qū)動(dòng)的布局。我們用成千上萬不同的布局來訓(xùn)練,并使用機(jī)器學(xué)習(xí)技術(shù),在布線之前預(yù)測設(shè)計(jì)的最終時(shí)序性能。

使用哪一個(gè)框架來開啟機(jī)器學(xué)習(xí)項(xiàng)目?

市面上有很多選擇,但是我們最終的答案是Tensorflow。這似乎有些難以置信,畢竟我們已經(jīng)開發(fā)了賽靈思 Vivado 的插件 Plunify Cloud 以及設(shè)計(jì)優(yōu)化軟件 InTime,難道不應(yīng)該選擇一個(gè)可以輕易把FPGA作為硬件的框架嗎?我們已經(jīng)對FPGA有所了解,而Tensorflow和FPGA的關(guān)系并不是很密切。

請不要誤解。我們雖然對FPGA的加速性能充滿信心,但是,在每一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目開始的時(shí)候,挑選一個(gè)合適開發(fā)環(huán)境首先要考慮的應(yīng)該是自己的已有技能和可供學(xué)習(xí)的資源。對于已有技能,我們了解上述所有語言和其他的一些語言;至于可供學(xué)習(xí)的資源,Tensor Flow+Keras 教程和文檔可以輕易的擊敗所有的對手。有這么多選擇,您一定想馬上開啟項(xiàng)目來測試您的方法是否可行。

一文了解芯片設(shè)計(jì)上使用機(jī)器學(xué)習(xí)驅(qū)動(dòng)的布局

應(yīng)該選擇哪個(gè)加速平臺?

在生成了成千上萬個(gè)擁有不同布局和資源要求的設(shè)計(jì)時(shí),我們應(yīng)該如何加速機(jī)器學(xué)習(xí)的訓(xùn)練和推理?關(guān)于加速的問題終于來了-究竟是用GPA,TPU還是FPGA呢?很明顯,F(xiàn)PGA由于對用戶不友好勝算不大。合理的選擇仍然是谷歌的云平臺或者GPU。

對我們來說,我們已經(jīng)解決了如何將正在進(jìn)行的項(xiàng)目轉(zhuǎn)換成基于FPGA的加速環(huán)境。這里所說的“轉(zhuǎn)換”并不是完全的重寫。也許我們已經(jīng)開啟了Caffe,但是軟件工程師在開始階段不會(huì)考慮加速平臺。

“不了解發(fā)動(dòng)機(jī),也可以選一臺好車?”

這里有一種替代方法 – 高層綜合(High LevelSynthesis)。用C/C++寫代碼然后轉(zhuǎn)換成Verilog或者VHDL(這個(gè)方法已經(jīng)存在很久并且也有很多批評)。在Hastlayer有一群工程師提供一個(gè).NET的軟件開發(fā)工具包可以把.NET程序轉(zhuǎn)換成VHDL.。這個(gè)開發(fā)包當(dāng)然有一些局限性,但是從軟件工程師的角度上來說,這已經(jīng)是一個(gè)從試圖理解時(shí)鐘,頻率,器件類型的極大飛躍。我們這些軟件工程師比較自我,大多只關(guān)心機(jī)器學(xué)習(xí)的訓(xùn)練可以有多快。如果眼下的程序在CPU上需要運(yùn)行一天,而在FPGA上只需要兩個(gè)小時(shí),我是不是可以用一個(gè)更優(yōu)化的版本(比如同樣的.NET程序但是被InTime優(yōu)化過)30分鐘就完成運(yùn)行呢?

采用自然習(xí)慣還是稍后再轉(zhuǎn)換?

讓軟件工程師采用他們早期的自然習(xí)慣肯定是有幫助的??纯催@個(gè)領(lǐng)域擴(kuò)展地有多快吧,編寫機(jī)器學(xué)習(xí)算法的程序員絕大多數(shù)都不會(huì)成為擁有數(shù)學(xué)博士的數(shù)據(jù)科學(xué)家或者FPGA/ASIC設(shè)計(jì)工程師。他們大多是像你我這樣擁有一個(gè)計(jì)算機(jī)學(xué)位的普通人,使用已經(jīng)編寫好的庫。在沒有一個(gè)大公司或團(tuán)隊(duì)的支持下,很難創(chuàng)造一個(gè)屬于自己的機(jī)器學(xué)習(xí)框架。這條路行不通的話,擁有一個(gè)簡單自動(dòng)的轉(zhuǎn)換路徑似乎就是一個(gè)最好的選擇了。

所以別再說“你需要一開始就學(xué)習(xí)FPGA”這樣的話了,我們應(yīng)該說“將Tensorflow / Pytorch轉(zhuǎn)換成適用于FPGA的代碼”?;蛘咧苯幼屛覀儊韼湍贔PGA上運(yùn)行吧。

這兩種選擇,都需要逾越一條鴻溝。如果您是一個(gè)已經(jīng)遇見這些問題的軟件工程師,我們十分希望能聽見您的心聲。

InTime是一款使用機(jī)器學(xué)習(xí)來優(yōu)化 FPGA 設(shè)計(jì)的軟件。如果您有興趣,點(diǎn)擊這里來了解更多 InTime 的信息,或者直接申請免費(fèi)試用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    50223

    瀏覽量

    420978
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8353

    瀏覽量

    132315
收藏 人收藏

    評論

    相關(guān)推薦

    詳解機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的區(qū)別

    深度學(xué)習(xí)這幾年特別火,就像5年前的大數(shù)據(jù)樣,不過深度學(xué)習(xí)其主要還是屬于機(jī)器學(xué)習(xí)的范疇領(lǐng)域內(nèi),所以這篇文章里面我們來嘮
    發(fā)表于 09-06 12:48 ?2434次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b>的區(qū)別

    帶你深入了解linux驅(qū)動(dòng)

    根本都不知道這個(gè)佛是哪路神仙。 那今天我們就先帶大家來深入了解下嵌入式開發(fā)中至關(guān)重要的環(huán):linux驅(qū)動(dòng)。 在學(xué)習(xí)
    發(fā)表于 04-15 09:59

    帶你了解步進(jìn)電機(jī)的相關(guān)知識

    帶你了解步進(jìn)電機(jī)的相關(guān)知識:相、線、極性和步進(jìn)方式2017-09-07 16:45這里不說步進(jìn)電機(jī)的 “細(xì)分” 實(shí)驗(yàn),只說下有關(guān)步進(jìn)電機(jī)的基礎(chǔ)概念以及步進(jìn)電機(jī)的三種工作方式——單
    發(fā)表于 07-08 06:48

    了解BLDC與PMSM的區(qū)別

    參考文件:了解BLDC與PMSM的區(qū)別? ?????BLDC和PMSM電機(jī)區(qū)別???? ? STM32 FOC BLDC與PMSM的區(qū)別PS:總結(jié)語句用紅色標(biāo)出,看紅色字體即可。現(xiàn)代電機(jī)與控制
    發(fā)表于 08-30 08:38

    了解LVGL的學(xué)習(xí)路線

    “本文大部分內(nèi)容來自LVGL官方文檔,手翻版,如有錯(cuò)誤歡迎指正?!毕盗形恼履夸?b class='flag-5'>一、LVGL系列(了解LVGL的
    發(fā)表于 12-07 12:55

    什么是機(jī)器學(xué)習(xí)? 機(jī)器學(xué)習(xí)基礎(chǔ)入門

    微控制器和單板計(jì)算機(jī)等受限設(shè)備機(jī)器學(xué)習(xí))的出現(xiàn),機(jī)器學(xué)習(xí)已經(jīng)與所有類型的工程師相關(guān),包括那些從事嵌入式應(yīng)用的工程師。此外,即使您熟悉 T
    發(fā)表于 06-21 11:06

    解析機(jī)器學(xué)習(xí)常用35大算法

    本文將帶你遍歷機(jī)器學(xué)習(xí)領(lǐng)域最受歡迎的算法。系統(tǒng)地了解這些算法有助于進(jìn)步掌握機(jī)器學(xué)習(xí)。當(dāng)然,本文
    的頭像 發(fā)表于 06-30 04:24 ?3843次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解析<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>常用35大算法

    讀懂深度學(xué)習(xí)機(jī)器學(xué)習(xí)的差異

    機(jī)器學(xué)習(xí)和深度學(xué)習(xí)變得越來越火。突然之間,不管是了解的還是不了解的,所有人都在談?wù)?b class='flag-5'>機(jī)器
    發(fā)表于 11-16 01:38 ?3044次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>讀懂深度<b class='flag-5'>學(xué)習(xí)</b>與<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的差異

    了解高速差分ADC驅(qū)動(dòng)器設(shè)計(jì)考慮

    了解高速差分ADC驅(qū)動(dòng)器設(shè)計(jì)考慮
    發(fā)表于 04-08 14:07 ?30次下載
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>高速差分ADC<b class='flag-5'>驅(qū)動(dòng)</b>器設(shè)計(jì)考慮

    解讀機(jī)器學(xué)習(xí)的作用及優(yōu)勢

    當(dāng)你打開互聯(lián)網(wǎng)搜索引擎,輸入關(guān)鍵詞尋找并得到想要的鏈接時(shí),“機(jī)器學(xué)習(xí)”已經(jīng)貫穿整個(gè)過程:搜索到的內(nèi)容是機(jī)器根據(jù)無數(shù)人搜索關(guān)鍵詞的統(tǒng)計(jì)結(jié)果,返回的最可能被需要的目標(biāo)信息;而同時(shí),你的這
    的頭像 發(fā)表于 07-07 09:09 ?1.3w次閱讀

    看懂谷歌的AI芯片布局

    IoT Core、人工智慧/機(jī)器學(xué)習(xí)(AI/ML)軟件Edge ML外,還針對人工智慧/機(jī)器學(xué)習(xí)推出專屬的加速運(yùn)算芯片,稱為Google
    發(fā)表于 11-29 14:08 ?676次閱讀

    機(jī)器學(xué)習(xí)算法使用機(jī)器了解給定的數(shù)據(jù)集

    機(jī)器學(xué)習(xí)詞經(jīng)常與AI互換使用,盡管有明顯的區(qū)別。機(jī)器學(xué)習(xí)算法使用機(jī)器
    的頭像 發(fā)表于 09-16 17:05 ?2187次閱讀

    了解一下機(jī)器學(xué)習(xí)中的基礎(chǔ)知識

    機(jī)器學(xué)習(xí)中的基礎(chǔ)知識 demi 在 周四, 03/07/2019 - 09:16 提交 機(jī)器學(xué)習(xí)中涉及到了很多的概念,當(dāng)然要想了解
    的頭像 發(fā)表于 03-31 17:08 ?3779次閱讀

    帶你了解電機(jī)驅(qū)動(dòng)芯片和電機(jī)驅(qū)動(dòng)模塊

    什么是電機(jī)驅(qū)動(dòng)芯片和電機(jī)驅(qū)動(dòng)模塊? 電機(jī)驅(qū)動(dòng)芯片是集成有CMOS 控制電路和DMOS 功率器件的芯片
    的頭像 發(fā)表于 07-18 14:46 ?1.8w次閱讀

    機(jī)器學(xué)習(xí)步驟詳解,了解全過程

    機(jī)器學(xué)習(xí)是指在沒有明確指令的情況下能夠學(xué)習(xí)和加以改進(jìn)的系統(tǒng)。這些系統(tǒng)從數(shù)據(jù)中學(xué)習(xí),用于執(zhí)行特定的任務(wù)或功能。在某些情況下,學(xué)習(xí),或者更具體地
    的頭像 發(fā)表于 05-16 09:55 ?5772次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>步驟詳解,<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>全過程