1. 程式人生 > >GPU 程式設計入門到精通(一)之 CUDA 環境安裝

GPU 程式設計入門到精通(一)之 CUDA 環境安裝


博主由於工作當中的需要,開始學習 GPU 上面的程式設計,主要涉及到的是基於 GPU 的深度學習方面的知識,鑑於之前沒有接觸過 GPU 程式設計,因此在這裡特地學習一下 GPU 上面的程式設計。有志同道合的小夥伴,歡迎一起交流和學習,我的郵箱: [email protected] 。使用的是自己的老古董筆記本上面的 Geforce 103m 顯示卡,雖然顯示卡相對於現在主流的系列已經非常的弱,但是對於學習來說,還是可以用的。本系列博文也遵從由簡單到複雜,記錄自己學習的過程。

0. 目錄

1. CUDA-5.5 的新特性

  • —— 動態並行(Dynamic Parallelism):GPU 加速新演算法

    GPU 執行緒可以動態地衍生新執行緒,從而更好地適應資料流。
    通過最大程度地簡化與 GPU 的往來通訊,動態並行技術可以大大簡化並行程式設計,
    讓更多流行演算法支援 GPU 加速,比如自適應網格加密、計算流體動力學等等。

  • —— GPU-Callable 庫:支援第三方生態系統

    新的 CUDA BLAS 庫可以讓開發人員為他們自己的 PU-Callable 庫使用動態並行,
    比如設計外掛API、讓其他人擴充套件其核心的功能性,部署 GPU Callback、自定義第三方 GPU-Callable 庫的功能性。
    物件連結(object linking)可將多個 CUDA 原始檔編譯成不同的物件檔案,然後連結到更大的應用和庫中,從而更簡單、更高效地開發大型 GPU 應用。

  • —— GPUDirect 支援 RDMA (遠端直接記憶體訪問):消除系統記憶體瓶頸
    GPUDirect 技術建立了 GPU 與其它 PCI-E 裝置的直接通訊,並支援網絡卡與 GPU 之間的 RDMA,還能大幅降低叢集中GPU 節點間的 MPISendRecv 延遲、改進整體應用效能。

  • —— NVIDIA Nsight Eclipse Edition:快速簡單地生成 GPU 程式碼

    Linux、Mac OS X 平臺上,NVIDIA Nsight Eclipse Edition 可以讓開發人員在熟悉的 Eclipse IDE 環境內開發、除錯和編譯 GPU 應用,並自帶 CUDA 編輯器和 CUDA 示例,可以更快地生成 CUDA 程式碼,還整合了專家級的分析系統,提供自動效能分析,以及修復程式碼中效能瓶頸的嚮導,還有語法高亮區分 GPU 程式碼和 CPU 程式碼。

2. 作業系統支援

CUDA 5 作業系統支援包括:Windows XP 桌上型電腦、Windows Vista/7/8 桌上型電腦和筆記本、Ubuntu 11.04/11.10、Fedora 16、Red Hat Enterprise Linux 5.x/6.x(後者僅限64位)、OpenSUSE 12.1(64位)、SUSE Server 11 SP1/SP2、Mac OS X。

3. 安裝環境檢測

3.1. 檢測自己的電腦是否具備支援 CUDA 的 GPU

可以採用如下命令:

lspci | grep -i nvidia

通過執行上面的命令,得到如下結果:

01:00.0 VGA compatible controller: NVIDIA Corporation G98M [GeForce G 103M] (rev a1)

通過命令,獲知我的筆記本是 GeForce G 103M 型號的 GPU
進入如下連結,檢視自己 GPU 型號是否支援 CUDA。
官網連結

3.2. 下載安裝包

進入後出現如下下載介面,現在已經出來 CUDA-6.5了,大家只要找到自己相應的安裝包即可,這裡視各自情況不同,自行選擇。
安裝包下載地址
我的系統是 ubuntu12.04 32位的,所以選擇下載 Ubuntu 12.04 下面 32 位的 RUN 就可以了,600M+

4. CUDA-5.5 安裝

4.1. 軟體安裝

安裝 build-essential 安裝包,以確保 cuda 及顯示卡驅動所需的 gcc 的安裝

apt-get install build-essential

退出圖形介面,進入控制檯

/etc/init.d/lightdm stop

按【Ctrl】+【alt】+【F1】進入控制檯介面,執行如下命令

sudo sh cuda_5.5.22_linux_32.run

在此過程中,一開始會出來一個文件,比較長,可以通過按下按鍵【q】退出文件,然後輸入【accept】就可以安裝,一直按確認,預設安裝即可,中間會選擇驅動檔案目錄等。

4.2. 環境變數配置

在 /etc/profile 下新增如下語句:

export PATH=$PATH:/usr/local/cuda-5.5/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.5/lib

通過執行如下命令,使得環境變數生效:

source /etc/profile

4.3. 退出控制檯

啟動 lightdm 服務

service lightdm start

5. 編譯 Sample

直接執行 make 就可以編譯 samples 裡面的程式

sample

隨機找了一個例子執行如下:

example

相關推薦

GPU 程式設計入門精通 CUDA 環境安裝

博主由於工作當中的需要,開始學習 GPU 上面的程式設計,主要涉及到的是基於 GPU 的深度學習方面的知識,鑑於之前沒有接觸過 GPU 程式設計,因此在這裡特地學習一下 GPU 上面的程式設計。有志同道合的小夥伴,歡迎一起交流和學習,我的郵箱: [email protected] 。使用的是自

LVS入門ARP協議

失敗 自己的 ref 偽造 str 一個 消息 自己 機器 1、概念   地址解析協議,即ARP(AddressResolutionProtocol),是根據IP地址獲取物理MAC地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的

NS3入門學習指令碼執行例項

 ns3中使用的編譯系統是waf,所有的c++工程都需要經過waf編譯後執行,除錯時也需要waf的。 在3.1.3中還是使用C++寫指令碼,在/ns-3.1.3/examples/tutorial/的second.cc指令碼中可以看出來,在3.2.6以上版本中已經增加了python

java 併發程式設計學習筆記 併發基礎

                                              併發基礎 併發小測試 java.util.concurrent.Semaphore 類 public class SemTest { /** * Se

java 併發程式設計學習筆記 基礎框架搭建和併發模擬工具,程式碼

                                基礎框架搭建和併發模擬工具,程式碼 (1)基礎框架搭建 (2)併發模擬 (3)CountDownLatch  通常用來 保證 幾個執行緒執行完成之後,再執行其他的程式碼 Semaphore

三篇文章帶你極速入門php語法

運行 引號 each 謝謝 接收 掌握 定義和使用 來吧 echo 本文適合閱讀用戶 有其他語言基礎的童鞋 看完w3cschool語法教程來回顧一下的童鞋(傳送門,想全面看一下php語法推薦這裏) 毫無基礎然而天資聰慧頗有慧根(不要左顧右看說的就是你,老夫這裏有一本《ph

DQNDeep Q-learning入門教程強化學習介紹

## 什麼是強化學習? 強化學習(Reinforcement learning,簡稱RL)是和監督學習,非監督學習並列的第三種機器學習方法,如下圖示: ![](https://img2020.cnblogs.com/blog/1439869/202005/1439869-20200524021301122

Python3入門——概述與環境安裝

知乎 沒有 color https oob 環境 bsp 風格 初級 一、概述   1.python是什麽     Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。 Python 是一種解釋型語言: 這意味著開發過程中沒有了編

Meteor學習路程簡介與安裝

一、Meteor是什麼? Meteor是一個構建在Node.js之平臺,用於開發讓網頁能夠實時和響應的程式。Meteor位於程式資料庫和使用者介面之間,儲存二者之間的資料同步更新。 二、為何使用Meteor? 易於學習,上手快 三、安裝Meteor(我主要是Windows安裝的哦

碼雲gitee+git入門——簡介、git安裝

關於git的大名早有耳聞,之前在投簡歷的時候也發現會有些公司要求應屆生具有使用git或svn的經驗,好吧,明明知道是加分題卻一直懶得研究=.=,當然我覺得任何時候意識到了問題所在、並開始付出行動去做一些補救,總歸是好的,日積月累事情肯定會慢慢轉向好的一面。 經

InnoSetup快速入門:InnoSetup 環境安裝並編譯第一個安裝程式

InnoSetup是一個基於Pascal Script的Windows 平臺的exe安裝包製作工具。 目前為5.5.x版,使用預設安裝即可,用來編譯安裝指令碼。帶Unicode的編譯出的安裝程式預設為Unicode。 解壓下載的ISSkin.7z安裝即可,用於安裝

Vue.js 2.0 入門教程 搭建開發環境

最近,前段開發框架層出不窮,響應式和模組化開發框架一下變得炙手可熱起來。在這樣的大浪潮下,我也開始進入vue的學習行列中。 這裡有觀眾會問,為什麼選擇vue呢?  小編作為一個剛入門前端的小白,vue 相比於angular2 ,react,入門簡單容易上手,簡單也是效

tp5.0 學習:虛擬環境安裝

安裝php admin cat code logs exe erro ron log 一、文件目錄: application: 應用目錄,開發文件存放地 extend:擴展 public:入口文件 thinkphp:核心代碼 vendor:第三方類庫 二、域名Apache配

Net Core環境安裝

size 企業版 netcore etc 查看 工作 負載 分享 tco 一、下載Visual Studio 2017 1、下載地址:https://www.visualstudio.com/zh-hans/downloads/ 2、選擇要下載的版本 二、安裝N

OpenStackQueens詳細安裝部署-基礎環境安裝

本系列文章將在CentOS7環境下手動安裝OpenStack Q版本,手動安裝對大家問題定位能力有極大的幫助。文章如果有不正確的地方歡迎大家留言指出。 一、安裝環境準備 OpenStack官方的硬體要求如下圖所示,其中虛線節點是可選部分,是塊儲存節點

GPU 程式設計入門精通 GPU 程式優化

博主由於工作當中的需要,開始學習 GPU 上面的程式設計,主要涉及到的是基於 GPU 的深度學習方面的知識,鑑於之前沒有接觸過 GPU 程式設計,因此在這裡特地學習一下 GPU 上面的程式設計。有志同道合的小夥伴,歡迎一起交流和學習,我的郵箱: [email protected] 。使用的是自

反射從入門精通

輸出結果 reflect file 加載器 mysql 構造 app throw 檢查 1. 三個類加載器 BootStrap類加載器【boot】 用於加載 jre:lib下的jar包【.class文件】 Java提供的大多數類都在此 Exetension類加載器【

linux從入門精通

scp 我的電腦 test 修改 linux 改名 人性 -- ces 1. 虛擬機的安裝 2. 虛擬機設置 註: 如果選擇的是NAT模式   匹配的網卡是:   通過這個虛擬的網卡與本機進行通信,只能與本機進行通信,如果本機可以訪問互聯網,該虛擬機也可以訪問互

javascript從入門精通

png var 技術 date 入門 logs function con undefine 1. heap:堆 引用值stack: 棧 先進後出 裏面的值是copy的關系 不可改變的原始值:Number String Boolean undefined null

Struts2 入門精通

多實例 @override eve 底層 text rri trac 入口 struts 一、為什麽要使用 struts2 以及 servlet 的優缺點   Servlet 缺點   1.寫一個 servlet 需要在 web.xml 文件裏面配置 8 行,如果 serv