對于深度學(xué)習(xí)而言,FPGA提供了優(yōu)于傳統(tǒng)GPP加速能力的顯著潛力。GPP在軟件層面的執(zhí)行依賴于傳統(tǒng)的馮·諾依曼架構(gòu),指令和數(shù)據(jù)存儲于外部存儲器中,在需要時再取出。這推動了緩存的出現(xiàn),大大減輕了昂貴的外部存儲器操作。該架構(gòu)的瓶頸是處理器和存儲器之間的通信,這嚴(yán)重削弱了GPP的性能,尤其影響深度學(xué)習(xí)經(jīng)常需要獲取的存儲信息技術(shù)。相比較而言,FPGA的可編程邏輯原件可用于實現(xiàn)普通邏輯功能中的數(shù)據(jù)和控制路徑,而不依賴于馮·諾伊曼結(jié)構(gòu)。它們也能夠利用分布式片上存儲器,以及深度利用流水線并行,這與前饋性深度學(xué)習(xí)方法自然契合?,F(xiàn)代FPGA還支持部分動態(tài)重新配置,當(dāng)FPGA的一部分被重新配置時另一部分仍可使用。這將對大規(guī)模深度學(xué)習(xí)模式產(chǎn)生影響,FPGA的各層可進(jìn)行重新配置,而不擾亂其他層正在進(jìn)行的計算。這將可用于無法由單個FPGA容納的模型,同時還可通過將中間結(jié)果保存在本地存儲以降低高昂的全球存儲讀取費(fèi)用。
最重要的是,相比于GPU,FPGA為硬件加速設(shè)計的探索提供了另一個視角。GPU和其它固定架構(gòu)的設(shè)計是遵循軟件執(zhí)行模型,并圍繞自主計算單元并行以執(zhí)行任務(wù)搭建結(jié)構(gòu)。由此,為深度學(xué)習(xí)技術(shù)開發(fā)GPU的目標(biāo)就是使算法適應(yīng)這一模型,讓計算并行完成、確保數(shù)據(jù)相互依賴。與此相反,FPGA架構(gòu)是為應(yīng)用程序?qū)iT定制的。在開發(fā)FPGA的深度學(xué)習(xí)技術(shù)時,較少強(qiáng)調(diào)使算法適應(yīng)某固定計算結(jié)構(gòu),從而留出更多的自由去探索算法層面的優(yōu)化。需要很多復(fù)雜的下層硬件控制操作的技術(shù)很難在上層軟件語言中實現(xiàn),但對FPGA執(zhí)行卻特別具有吸引力。然而,這種靈活性是以大量編譯(定位和回路)時間為成本的,對于需要通過設(shè)計循環(huán)快速迭代的研究人員來說這往往會是個問題。