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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

讓軟件工程師采用他們?cè)缙诘淖匀涣?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)編寫好的庫(kù)。在沒(méi)有一個(gè)大公司或團(tuán)隊(duì)的支持下,很難創(chuàng)造一個(gè)屬于自己的機(jī)器學(xué)習(xí)框架。這條路行不通的話,擁有一個(gè)簡(jiǎn)單自動(dòng)的轉(zhuǎn)換路徑似乎就是一個(gè)最好的選擇了。

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

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

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

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

    關(guān)注

    452

    文章

    49938

    瀏覽量

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

    關(guān)注

    66

    文章

    8320

    瀏覽量

    132165
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    深度學(xué)習(xí)這幾年特別火,就像5年前的大數(shù)據(jù)樣,不過(guò)深度學(xué)習(xí)其主要還是屬于機(jī)器學(xué)習(xí)的范疇領(lǐng)域內(nèi),所以這篇文章里面我們來(lái)嘮
    發(fā)表于 09-06 12:48 ?2398次閱讀
    <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è)佛是哪路神仙。 那今天我們就先帶大家來(lái)深入了解下嵌入式開發(fā)中至關(guān)重要的環(huán):linux驅(qū)動(dòng)。 在學(xué)習(xí)
    發(fā)表于 04-15 09:59

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

    帶你了解步進(jìn)電機(jī)的相關(guān)知識(shí):相、線、極性和步進(jìn)方式2017-09-07 16:45這里不說(shuō)步進(jìn)電機(jī)的 “細(xì)分” 實(shí)驗(yàn),只說(shuō)下有關(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é)語(yǔ)句用紅色標(biāo)出,看紅色字體即可?,F(xiàn)代電機(jī)與控制
    發(fā)表于 08-30 08:38

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

    “本文大部分內(nèi)容來(lá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 ?3824次閱讀
    <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í)變得越來(lái)越火。突然之間,不管是了解的還是不了解的,所有人都在談?wù)?b class='flag-5'>機(jī)器
    發(fā)表于 11-16 01:38 ?3024次閱讀
    <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)勢(shì)

    當(dāng)你打開互聯(lián)網(wǎng)搜索引擎,輸入關(guān)鍵詞尋找并得到想要的鏈接時(shí),“機(jī)器學(xué)習(xí)”已經(jīng)貫穿整個(gè)過(guò)程:搜索到的內(nèi)容是機(jī)器根據(jù)無(wú)數(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外,還針對(duì)人工智慧/機(jī)器學(xué)習(xí)推出專屬的加速運(yùn)算芯片,稱為Google
    發(fā)表于 11-29 14:08 ?659次閱讀

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

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

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

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

    帶你了解電機(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.7w次閱讀

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

    機(jī)器學(xué)習(xí)是指在沒(méi)有明確指令的情況下能夠學(xué)習(xí)和加以改進(jìn)的系統(tǒng)。這些系統(tǒng)從數(shù)據(jù)中學(xué)習(xí),用于執(zhí)行特定的任務(wù)或功能。在某些情況下,學(xué)習(xí),或者更具體地
    的頭像 發(fā)表于 05-16 09:55 ?5661次閱讀
    <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>全過(guò)程