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