寫作計劃

想着還有些空餘時間,先介紹一下創作的背景,然後規劃一下後期的寫作內容,一起學習討論,不求一定在工作中用得上,擴展一下自己的知識體系也好。
1 創作背景

本人是某985學校碩士畢業,畢業之後在某IT公司工作。自從工作之後,深刻體會到“男怕入錯行,女怕嫁錯郎”的道理,沒錯,我感覺我就入行入偏啦。看到師弟師妹各種互聯網公司的AI崗位,年入30w+,一口老血吐出來,深深地表示羨慕。。。趁着我自己還有點相關的背景,雖然數學方面都快還給大學老師了,但是還算可以看懂基本的算法原理的,還能撿起來一些,而且FPGA開發還算有點自信,做過很多實際的項目。未來幾年會逐漸轉到相關行業中---圖像相關的算法並行加速,發揮自己的最大能力,應該還能吃上一波人工智能的紅利。

2 技能樹說明

2.1 FPGA相關

FPGA(Field Programmable Gate Array,可編程邏輯門陣列),通過RTL代碼來在FPGA內部實現各種所需要的電路,速度和功耗方面與ASIC (Application Specific Integrated Circuit,專用集成電路)芯片沒法比,但是靈活性、成本、開發週期完爆ASIC芯片,所以永遠不可能被ASIC完全取代。
 2.11 應用方向

一般來說FPGA有兩種應用方向:a)用硬件電路就完成對大量數據的處理。當然,處理的方式肯定不像CPU那樣廣泛,一般用來處理大吞吐、可複用計算、有限迭代的數據,比如現在流行的卷積神經網絡的卷積操作、直方圖統計操作等;b) 用於高速接口。比如使用PCIE接口收發數據,通過千兆、萬兆以太網收發數據,或者結合camlink的芯片,接收相機的圖像數據等等。
2.12 入門方法

沒用過FPGA的話,可以看一下《Xilinx FPGA開發實用教程》,這本書主要講述了Xilinx FPGA的必備知識,包括FPGA基礎知識、Verilog HDL語言基礎、基於Xilinx芯片的HDL語言高級進階、ISE開發環境使用指南、FPGA配置電路等。       

Verilog語法很簡單,類似於c語言,但是編程思路跟軟件完全不一樣。寫Verilog代碼時必須時刻想象代碼實現成什麼電路,在寫一個模塊之前,最好先畫出對應的時序圖,會有事半功倍的效果。可以先自己寫一下流水燈啊、串口啊、直方圖統計啊等等簡單模塊,先用ISE+Modelsim仿真,仿真波形應該要每一拍都與預期的一致,再上板調試,走一下整個開發流程。

2.13 開發環境

windows7 64bit,ISE 14.7,Modelsim SE 10.1c。

2.2 Python和Matlab

2.2.1 應用方向

在後續創作中涉及到相關濾波目標跟蹤算法和神經網絡算法,很多算法都是用這兩種語言實現。

看懂算法原理和軟件實現代碼,然後對算法進行優化,是進行算法FPGA加速的必要條件,主要是因爲很多算法不一定滿足FPGA的處理方式,原封不動地實現可能就無解了,所以要針對FPGA的特性對原算法進行修改(硬件加速的及其關鍵的步驟),一般來說會損失算法性能,但是會極大提高算法處理速度,在計算機視覺領域就是會極大提高幀頻。

2.2.2 學習方法

一般來說,只要具有c語言的基礎,學習一種編程語言只需瞭解每種語言的邏輯語句、循環語句等基本的語法規範,瞭解變量類型和數據結構,瞭解一下類的寫法,需要用到函數的百度即可,上手會極快。

Python菜鳥教程:https://www.runoob.com/python/python-intro.html

Matlab:https://www.ilovematlab.cn/和Matlab自帶的幫助文檔,所有函數都有非常詳細的解釋和示例。

2.2.3 開發環境

windows7 64bit,Matlab 2017b,anaconda3.

2.3 算法

需要有大學數學的基礎吧,高等數學(導數、微積分)、線性代數、概率論之類的,還要有圖像的基本知識,涉及到的相關濾波跟蹤算法和深度學習算法,在後續詳細介紹原理和硬件優化方法。
3 創作計劃
3.1 matlab和Python對比學習
3.2 目標跟蹤算法概述
3.3 某種相關濾波算法原理介紹和並行實現優化
3.4 Verilog分模塊實現和仿真
3.5 軟硬件結果對比和性能分析
3.6 深度學習算法概述
3.7 某種深度網絡詳細介紹和並行實現分析
3.8 Verilog分模塊實現和仿真
3.9 軟硬件結果對比和性能分析

由於得在搬磚的間隙學習,上面這些夠寫一年了,待續。。。

歡迎關注公衆號一起交流學習:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章