原创 如何去設計一個深度學習加速器?

How to make your own deep learning accelerator chip! Currently, there are more than 100 companies all over the worl

原创 CUDA之三種訪存模式與代碼測試

相關概念 GPU 硬件架構具有三層的存儲結構,分別是:線程私有存儲、線程塊共享存儲、全局存儲。訪問速度自然是由快到慢。CUDA 程序編寫的一個重要理念也是儘可能少的訪問全局緩存。如下圖所示: 下面我們對這三種訪存模式進行一一的代

原创 isl使用方法

isl是一個用於多面體模型調度實現的c/c++庫。通過isl,我們可以對模型進行自動的調度,循環優化等。 isl內部對象介紹 1.isl_ctx對象的創建(初始化): 整數集和關係的所有操作都在的上下文中發生isl_ctx。給定

原创 圖的embedding問題

圖的embedding問題 [摘要]:隨着word2vec模型的提出,embedding問題開始逐漸引起大家的注意。在如今大數據背景的驅動下,商品、行爲、用戶等實體之間的關係越來越複雜化、網絡化,而word2vec是sequenc

原创 一文講懂普通線性迴歸與貝葉斯線性迴歸的區別

將均方誤差應用到線性迴歸問題中 首先我們先回顧頻率派的解決方法,即常規解法——利用最小二乘法解決問題。損失函數採用均方誤差函數。 關於模型容量問題: 在《深度學習》中專門指出,模型的容量也是一個需要用戶指定的超參數,即擬合的多項式

原创 用 django 構建翻譯網站——軟件工程課程設計

一、背景 1.1課程題目 構架一個名爲Bonnie的翻譯網站,要求網站具備翻譯網站的基本功能,即前臺用戶註冊登錄功能,智能翻譯功能和後臺的用戶管理,系統管理。同時本網站具備用戶與翻譯者直接溝通無中介干涉的特點。 1.2編寫背景 在

原创 CUDA 並行加速基礎之 Reduce 和 Scan 的實現

前言 我們知道硬件擁有其獨特的並行性,爲了發揮這一特色。我們要將平時串行執行的程序用並行性算法重新改寫才能充分發揮 GPU 的優勢。 實例:做求和:1+2+3+4+··· 爲了做這樣一個累加和的加速,有兩種簡單的實現方法,分別

原创 循環優化與多面體模型

循環通常是數據並行應用的最密集計算段,因此循環優化直接影響性能。當面對嵌套循環時,分配給線程的計算粒度將直接影響性能。循環轉換如Fission(循環裂變)與Fusion(循環融合)的嵌套式循環可促使並行化,並提高工作效率。 本文就

原创 CNN(卷積神經網絡)實現手寫數字識別並與django集成

任務 設計一個卷積神經網絡來實現對MNIST手寫數字集的識別任務。 爲了增加模型複雜度並進一步練習tensorflow的使用方法,所以模型設計的稍微複雜一些。網路結構總共包括五個層級,包括四個隱藏單元、一個輸出單元。 層級結構如下

原创 字符串高級操作——利用鏈表進行文本單詞頻率統計

現有一片英語短文,要求用c語言實現對該文章的詞頻統計,即利用文件讀寫方法,提取文本中的每一個單詞之後通過算法統計其出現頻率,並輸出到另外的文件中。 短文如下: Of all the changes that have taken

原创 基於 PYNQ 的 AXI 總線主從控制編寫(ddr3的讀寫)

菜鳥一枚,最近也學習了關於 AXI 總線的相關知識。基於 PYNQ 編寫了一個簡單的 AXI 主從控制(牽涉到 DDR3 的讀寫)。 設計目的 設計出以下一個通過 AXI 總線連接的簡單片上系統。包含以下部分: PL 端邏輯 PL

原创 如何實現一個帶雙邊沿檢測的觸發器

這是一道 HDLBits 上面的題目(Probelm 97 Dual-edge triggered flip-flop)。 目的是實現一個帶雙邊沿檢測的觸發器。我們知道,FPGA上是沒有帶雙邊沿檢測的觸發器的,即不存在這樣的寫法:

原创 FPGA 硬件架構詳解

FPGA的基本部件 可編程邏輯塊 可編程互連 可編程 I/O 結構如下圖所示,這是一個典型的傳統同構 FPGA。橘色代表邏輯塊,藍色表示相互連接的選擇器(開官)。邏輯塊通過佈線資源進行連接。 三個重要器件(基於SRAM的FP

原创 hdlbits 練習彙總

最近發現一個很有意思的網站,可以在線提交 verilog 代碼以完成一些任務,並且還能得到仿真結果對比。可以利用零碎時間提交一些代碼,練習verilog基礎知識。 網址如下: https://hdlbits.01xz.net/wi

原创 單時鐘同步 FIFO 和二時鐘異步 FIFO 的基本原理和實現

同步 FIFO 的實現 學習目的: 1.給大家介紹FIFO的基本原理和組成。 2.學習同步單時鐘FIFO的分析以及編寫。 3.以實例體驗如何將實際需求分析轉換成代碼。 FIFO(First In First Out)隊列通常在