原创 深度學習——人工神經網絡簡介

人工神經網絡簡介 1.概念 人工神經網絡是一種模仿大腦神經元結構的連接主義,如下圖所示。其中,節點模擬神經元,節點之間的邊模擬神經元之間的突觸。輸入節點的值x與對應邊的權重w相乘再累加當做輸出節點的輸入,輸出節點包含一個激活函數f,由該函

原创 Linux性能優化——中斷綁定

中斷綁定 對於實時環境,我們需要消除或者最小化事件響應的延遲。要想做到這一點,需要將不同的中斷響應(IRQs)和用戶進程綁定到不同的CPU核心上,使他們彼此隔離。 爲什麼需要這樣呢? 默認情況下,Linux的中斷響應會被平均分配到所有CP

原创 CUDA程序開發——Nsight新建CUDA HelloWorld項目

CUDA程序開發——Linux端使用Nsight新建CUDA HelloWorld項目 1)在redhat桌面的左上角,點擊Application->Programming->Nsight Eclipse Edition。   2)軟件

原创 深度學習——單層感知器從原理到實踐

單層感知器 首先我們從人工神經網絡第一次興起的單層感知器談起。 1.工作原理 感知器(perceptron),有的也稱其爲感知機,是人工神經網絡中最基礎的網絡結構(perceptron一般特指單層感知器,而多層感知器一般被稱爲MLP)。

原创 Linux性能優化——圖形界面與文本界面

Linux性能優化——圖形界面與文本界面 Linux操作系統有六種不同的運行級別(run level),在不同的運行級別下,系統有着不同的狀態,這六種級別分別爲: 0:停機 1:單用戶模式,root權限 2:多用戶模式,但是沒有NFS支

原创 Linux工具使用——使用tuna進行性能調優

Linux工具使用——使用tuna進行性能調優 tuna工具(redhat系列裏的工具)可以改變進程(線程)屬性,包括調度策略、優先級和CPU核心親和性,同時還可以修改中斷的CPU核心親和性。它既有圖像界面,還可以在終端通過命令進行執行。

原创 CUDA程序開發——初識GPU

CUDA程序開發——初識GPU 通過閱讀文本你將瞭解到: GPU的發展歷史 GPU的產品類型 並行計算中GPU的應用形式 如何分析應用場景是否適合使用GPU GPU的開發平臺 1. GPU發展歷史 GPU一開始只是爲了圖形加速,替CP

原创 CUDA程序開發——軟硬件層級的調度解讀

CUDA程序開發——軟硬件層級的調度解讀 通過閱讀文本你將瞭解到以下內容: CUDA硬件層級 CUDA軟件層級 軟件層級在硬件層級上的具體調度 關鍵字:SP、SM、Device、Thread、Block、Grid、Warp 想要編寫出

原创 Linux工具使用——yum只下載不安裝

Linux工具使用——yum只下載不安裝 yum(Yellowdog Updater Modified)是基於RedHat系統(CentOS、Fedora、RHEL)上的默認rpm包管理器,使用它可以安裝、更新和卸載rpm軟件包,並自動解

原创 Linux問題——VNC遠程登錄Linux不能輸入中文

從Windows系統通過VNC遠程登錄Linux時,在Linux中已經將系統輸入法改爲中文,而且在Terminal中可以輸入中文,但是在一些IDE中(比如Nsight、Eclipse等)無法輸入中文。 另外,使用Linux的本地鍵盤是可以

原创 Linux性能優化——CPU上下文切換

 Linux性能優化——CPU上下文切換 通過閱讀文本你將瞭解到以下內容: CPU上下文切換的原理 CPU上下文切換的種類 CPU上下文切換對性能的影響  1. 原理 Linux是一個支持多任務的操作系統,它能夠讓大於CPU核心數的任

原创 CUDA程序開發——Kepler架構硬件參數解讀

CUDA程序開發——Kepler架構硬件參數解讀 通過閱讀本文你將收穫到: 看懂Kepler的硬件架構圖 Kepler架構硬件參數 有了對CUDA軟硬件層級及其調度的整體認識之後,本文着重介紹一下Kepler架構的細節內容。 首先看下

原创 【CUDA問題】在一臺機器上編譯生成的GPU程序,在另一臺上運行結果不正確

問題:兩臺Windows計算機,在一臺機器上編譯生成的GPU程序,在另一臺上運行結果不正確。 分析:打開程序中輸出日誌的功能,發現運行第一個核函數就提示:invalid device function。檢查覈函數編寫並沒有問題。最後發現項

原创 【CUDA問題】__shared__ memory variable with non-empty constructor or destructor

問題:在kernel核函數中聲明某結構體的共享內存變量時,編譯報出警告,warning : __shared__ memory variable with non-empty constructor or destructor (pote

原创 【CUDA問題】Release模式下程序運行結果的精度比Debug模式下的精度低,怎麼辦

問題:Release模式下程序運行結果的精度比Debug模式下的精度低,怎麼辦 分析:CUDA中Release模式下爲了提高速度捨棄了精度,默認-fmad=true;而Debug模式下-fmad=false。 解決:在Release模式下