原创 CUDA C最佳實踐-CUDA Best Practices(一)

這文檔堪稱CUDA官方手冊裏最有用TOP3了。 ps:全文翻譯會累死猿噠,意譯意譯,各位看官湊合一下啦 前言 文檔的作用 這文檔能幹嘛,是用來幫助開發者從NVIDIA GPU上獲取最好的性能的。建議順序閱讀,這文檔將會極大地提升

原创 劍指offer 12:矩陣中的路徑

題意 請設計一個函數,用來判斷在一個矩陣中是否存在一條包含某字符串所有字符的路徑。路徑可以從矩陣中的任意一個格子開始,每一步可以在矩陣中向左,向右,向上,向下移動一個格子。如果一條路徑經過了矩陣中的某一個格子,則該路徑不能再進入該

原创 手把手教你設計CPU(蜂鳥書)讀書筆記

寫在最前 這本書講的是如何用verilog,以riscv爲指令集,設計一款CPU。也就是書中說的蜂鳥E200。之前沒有看過類似的書,對CPU的工作流程也不熟悉。這本書以verilog爲載體,介紹了CPU的基本原理,對於第一次接觸C

原创 CUDA PTX ISA閱讀筆記(二)

8. 第八章 指令集 這一章佔了整個手冊的一大半(百十來頁吧),主要介紹各種指令,雖然頁數很多,但是大多數指令都很簡單。 8.1. 指令的形式和語義描述 這章就是主要描述每個PTX指令。除了指令的形式和語義之外還有一些例子來描述這

原创 破解sublime 3207(2019.6.3更新)

寫在最前 最近這幾個月都在忙論文的事,基本上沒有寫博客,今天終於差不多整完了,開始修電腦。前陣子sublime總是有一些稀奇古怪的問題,所以今天就更新一下,主要是解決註冊的問題。我們的sublime版本是version3.2.1

原创 劍指offer 17:打印從1到最大的n位數

題意 輸入數字n,按順序打印出從1到最大的n位十進制數.比如輸入3,則打印輸出1,2,3一直到最大的三位數999.利用全排列的思想,把每一位都的所有情況利用遞歸的方式列舉出來. 代碼 //核心函數,len表示位數,index表示當

原创 gem5初探

開始入門gem5 這個實驗的具體內容就是gem5輸出矩陣乘的訪存trace,然後做個cache模擬器分析,我主要是入門一下gem5.我的系統是ubuntu16.04,主要流程如下 從github下載源碼 git clone h

原创 《GPU高性能編程 CUDA實戰》(CUDA By Example)讀書筆記

寫在最前 這本書是2011年出版的,按照計算機的發展速度來說已經算是上古書籍了,不過由於其簡單易懂,仍舊被推薦爲入門神書。先上封面: 由於書比較老,而且由於學習的目的不同,這裏只介紹了基礎代碼相關的內容,跳過了那些圖像處理的

原创 CUDA PTX ISA閱讀筆記(一)

不知道這是個啥的看這裏:Parallel Thread Execution ISA Version 5.0. 簡要來說,PTX就是.cu代碼編譯出來的一種東西,然後再由PTX編譯生成執行代碼。如果不想看網頁版,cuda的安裝目

原创 劍指offer 19:正則表達式匹配

題意 請實現一個函數用來匹配包括’.‘和’*‘的正則表達式。模式中的字符’.'表示任意一個字符,而‘*’表示它前面的字符可以出現任意次(包含0次)。 在本題中,匹配是指字符串的所有字符匹配整個模式。例如,字符串"aaa"與模式"a

原创 劍指offer 33:二叉搜索樹的後序遍歷序列

題意 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。二叉搜索樹就是這個二叉樹的左子樹的所有節點都比根節點小,右子樹的所有節點都比根節點大。我們知道後序遍歷的最後一個節點一定是根節點,因此根據根節點和二叉搜索樹的大

原创 零拷貝內存 or 頁鎖定內存

這是一個小實驗,在於驗證GPU上使用零拷貝內存和頁鎖定內存的性能差別。使用的是點積計算,數據量在100M左右。實驗步驟很簡單,分別在主機上開闢普通內存,頁鎖定內存以及進行零拷貝內存的操作,看三者哪個完成的時間比較快,具體的代碼在最

原创 CUDA Samples

最近準備再挖個坑,翻譯下cuda_samples,給入門想看代碼又不知道看點啥的小同學提供一些指引(順便指引下自己)。本文簡要介紹samples裏的項目的主要功能。 簡介 Simple Reference 基礎CUDA示例

原创 劍指offer 23:鏈表中環的入口節點

題意 如果一個鏈表中包含環,如何找出環的入口節點。 思路 感覺思路比較巧妙,就只說思路。 要找到環,就用兩個指針,一個一次走一個節點,一個一次走兩個節點,如果快的節點能和慢的節點相遇,說明有環,如果快的節點在到達結尾都沒有追到慢

原创 劍指offer 7:重建二叉樹

寫在最前 因爲各種各樣的原因,要開始準備春招,所以開始刷劍指offer(第二版)。 題意 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2