是否可以用fpga搭建一個可以用的gpu模型?
01-21
純腦洞和娛樂向,想動手搭一個gpu玩玩
我的想法是這樣的用單片機m0/m3這些低性能mcu做設備主控當cpufpga去搭一個gpu,用串列或者並行gpio當做設備匯流排實現數據通訊,輸出vga或者hdmi數據。
數據過來時候,比如畫2d規則圖形就發一個命令,讓fpga去在某個位置畫,如果畫特殊圖片就先丟進fpga的ram裡面,cpu給fpga一個圖片序號讓fpga去畫。不考慮實用價值,這種結構是否合理呢,是否可以在gpu通用情況下用stm32或者更低端的mcu比如51實現,高級fc的功能?另外gpu顯示視頻應該怎麼處理呢,難道只能靠CPU去硬搬數據嗎?
可以,我就是干這活的。用FPGA做一塊顯卡,通過PCIE連接x86主機,啟動linux/windows,運行2D/3D圖形應用都沒有問題,但CPU是商用X86處理器。題主提到用更低的CPU,如8051,通過某種匯流排把數據或指令傳給GPU,由GPU渲染圖形並顯示。CPU可以把圖形數據通過匯流排寫進顯存,GPU把這些圖形數據輸出到顯示器上,這是圖形顯示控制器;CPU也可以把一些原始數據寫進顯存,同時把一些2D/3D指令傳給GPU,GPU根據指令和原始數據生成2D/3D圖形數據,這是2D/3D圖形加速器。其實這種FPGA有現成的,XILINX ZYNQ MPSOC 這些東西都集成的有硬核,軟核也有,集成起來也很方便,開發板也有,ZCU102。
cpu搬數據顯示視頻是不合理的。對mcu要求太高,一般用dma實現。
你這個框架是可以用的,只是不那麼好,那個mcu沒啥用,只用fpga或者gpu已經可以完成功能了,stm32有點拖後腿。至於fpga實現gpu,quora上有答案,自己搜一下吧。
關鍵詞: How do I get started on designing a GPU on an FPGA?github上有一個gpgpu的代碼,同時帶有編譯器,可以參考https://github.com/jbush001/NyuziProcessor
其實你的描述中包含了三種硬體:gpu,顯示控制器,和視頻加速卡。顯示控制器的作用是你給他一個緩衝區,他把這個緩衝區里的顏色顯示在lcd上。
視頻加速器的作用是解碼支持的圖像格式,轉換為目標格式。
gpu通常要至少遵循一定的規範,有多個計算單元,這些計算單元可以執行shader程序等。你說的這個叫圖形控制器或視頻控制器,不是GPU。GPU是一台內含幾百幾千個cpu(每個cpu叫一個cell)的並行機,你可以認為GPU是專門針對圖像圖形演算法而設計的並行計算機,圖形控制器則基本是個純硬體。
圖像圖形數據主要是通過DMA傳送的,你可以讀讀TI的多媒體DSP手冊看看怎麼做的。
看來你沒有指導教師,所以建議去買個帶FPGA的視頻開發板玩玩,看看裡面的例子,比自己瞎捉摸強。某寶上賣開發板的很多,也很便宜。
可以的,我以前就是做cpu的,利益相關,不能透漏很多,模擬cpu的有三種,fast model,fpga,還有最牛逼最貴最龜速的emulator。具體請百度 mentor,sysnopsys,cavien
有可行性。另外題主是不是更多的對異構計算(CPU+GPU或者是CPU+FPGA)感興趣?如果是這樣的話建議先了解一下當下各種計算架構的適用性和瓶頸所在。比如,通用處理器,FPGA,ASIC晶元,GPU的各自擅長領域。可能會有新的發現。
如果這也能算gpu的話那我大三的時候就做過了。。
可以搭的,就是不同的fpga主頻有限制,做不到gpu這麼高,fpga高頻的話不同的邏輯內部布線要考慮時序約束問題
推薦閱讀:
※fpga開發的疑問?(關於高層次綜合)
※怎麼才算是應用層開發和底層開發,調用系統API算是應用層開發嗎?
※如何搭建可靠的嵌入式arm+linux開發環境?
※FPGA與GPU在將來嵌入式應用中誰能更勝一籌?
TAG:顯卡 | 嵌入式系統 | 現場可編輯邏輯門陣列FPGA | 圖形處理器GPU |