原创 基於FPGA的卷積加速

基於FPGA的卷積並行加速其實有很多方法,例如脈動陣列、加法樹等操作。本篇博客將介紹一下基於加法樹的並行化設計。 其實總體原理也是很簡單的。如下圖所示,九個葉子節點是乘法器節點,分別代表九次乘法運算(卷積核是3*3的)。在得到乘法

原创 CUDA 編程之對原子操作與並行性的理解

相關概念 CUDA 的原子操作可以理解爲對一個變量進行“讀取-修改-寫入”這三個操作的一個最小單位的執行過程,這個執行過程不能夠再分解爲更小的部分,在它執行過程中,不允許其他並行線程對該變量進行讀取和寫入的操作。基於這個機制,原子

原创 第一行 CUDA 代碼之GPU架構理解與代碼編寫

首先是對 CUDA 編程中可能會遇到的各種概念進行簡單總結。如對 Kernel、Grid、Device、Host、Thread、Thread Block、SM 等部件進行梳理,並且牽涉到CUDA編程的基本理念與基本方法。 CU

原创 I2C 總線操縱 EEPROM

現如今對 FPGA 的基礎已經有了一定的瞭解,並且進入到了總線操縱的學習中來。近一段時間打算更幾篇關於總線操作的博文,首先從簡單的 I2C 接口對 EEPROM 的操作開始。 何爲總線? 總線(Bus)是計算機各種功能部件之間傳

原创 用django構建翻譯網站之一——需求分析與模型類設計

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

原创 linux下python3調用c++的方法並傳遞參數

近日需要用python寫一個接口來調用c++項目。在網上找了一些方法感覺較爲紊亂,其實python調用c本身就是較爲簡單的,因爲python就是用c寫的呀!主要方法就是在python中調用ctypes包,使用相關api調用項目編譯

原创 tensorflow2.0GPU版本的環境配置與安裝教程

現在tensorflow2.0也已經問世了,自然忍不住會想要安裝一下,將安裝過程記錄如下:一、創建虛擬環境虛擬環境自然是在Anaconda下創建。因爲tf2.0對應的是python3.7版本,所以我們在AnacondaProm

原创 12行實現一個簡易神經網絡

準備工作 現實現一個具有三層的最簡單的神經網絡,激活函數採用sigmod函數。整體結構如下所示: x是輸入的樣本值。設定爲5*3的矩陣,即代表5個樣本值,每個樣本有3個特徵值。 y是標籤,爲5*1的矩陣代表每一個樣本的標籤。且取值

原创 stl的應用之字典類的實現

實現一個簡單的字典類,用來存儲鍵值對。可以進行初始化、添加元素、刪除元素、打印元素等方法。牽涉到map的簡單應用,用來表示鍵值對。 #include<iostream> #include<map> using namespace st

原创 C++多態經典入門實例——MyString類

提到C++多態, 不得不提運算符重載,運算符重載是多態最直接、最易於理解的應用。 何爲多態? 多態指的是對於同種消息被不同對象接受時導致不同行爲,從廣義上講,就是一段程序能夠處理多種類型對象的能力。比如:+這個雙目運算符,對於兩個數都

原创 C語言之五——字符串排序

現有一道排序題如下: 輸入n個由’0’和’1’組成的字符串(n由用戶輸入),規定字符串的比較規則如下: a.字符串長的比較大 b.字符串等長的含’0’多的小 c.字符串等長,且含’1’相等,則兩字符串相等 將輸入的n個字符串按照上述

原创 C語言之三——大數相加

實現功能: 兩個一百位以內的大數相加輸出結果,兩個數長短不確定。 容易想到用字符串來記錄數字,然後對字符串進行運算,當然,進位什麼的肯定要手動實現。 主要涉及字符串操作,難度不大。代碼如下: #include<stdio.h> #in

原创 C語言之四——利用鏈表進行文本單詞頻率統計

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

原创 c語言之一——二進制轉換

用兩種方式進行十進制到二進制的轉換: #include<stdio.h> // 遞歸方式 void binChange(int n){ if (n == 0) return; else{

原创 c語言之二——對稱素數的判斷

輸出五位以內的對稱素數 方法一: #include<stdio.h> #include<math.h> // 五位以內對稱素數的判斷 int symbol(int m){ // 判斷是否對稱 int temp = m;