1. 程式人生 > >CUDA從入門到精通(一):環境搭建

CUDA從入門到精通(一):環境搭建

NVIDIA於2006年推出CUDA(Compute Unified Devices Architecture),可以利用其推出的GPU進行通用計算,將平行計算從大型叢集擴充套件到了普通顯示卡,使得使用者只需要一臺帶有Geforce顯示卡的筆記本就能跑較大規模的並行處理程式。

使用顯示卡的好處是,和大型叢集相比功耗非常低,成本也不高,但效能很突出。以我的筆記本為例,Geforce 610M,用DeviceQuery程式測試,可得到如下硬體引數:

計算能力達48X0.95 = 45.6 GFLOPS。而筆記本的CPU引數如下:

CPU計算能力為(4核):2.5G*4 = 10GFLOPS,可見,顯示卡計算效能是4核i5 CPU的4~5倍,因此我們可以充分利用這一資源來對一些耗時的應用進行加速。

好了,工欲善其事必先利其器,為了使用CUDA對GPU進行程式設計,我們需要準備以下必備工具:

1. 硬體平臺,就是顯示卡,如果你用的不是NVIDIA的顯示卡,那麼只能說抱歉,其他都不支援CUDA。

2. 作業系統,我用過windows XP,Windows 7都沒問題,本部落格用Windows7。

3. C編譯器,建議VS2008,和本部落格一致。

4. CUDA編譯器NVCC,可以免費免註冊免license從官網下載CUDA ToolkitCUDA下載,最新版本為5.0,本部落格用的就是該版本。

5. 其他工具(如Visual Assist,輔助程式碼高亮)

準備完畢,開始安裝軟體。VS2008安裝比較費時間,建議安裝完整版(NVIDIA官網說Express版也可以),過程不必詳述。CUDA Toolkit 5.0裡面包含了NVCC編譯器、設計文件、設計例程、CUDA執行時庫、CUDA標頭檔案等必備的原材料。

安裝完畢,我們在桌面上發現這個圖示:

不錯,就是它,雙擊執行,可以看到一大堆例程。我們找到Simple OpenGL這個執行看看效果:

點右邊黃線標記處的Run即可看到美妙的三維正弦曲面,滑鼠左鍵拖動可以轉換角度,右鍵拖動可以縮放。如果這個執行成功,說明你的環境基本搭建成功。

出現問題的可能:

1. 你使用遠端桌面連線登入到另一臺伺服器,該伺服器上有顯示卡支援CUDA,但你遠端終端不能執行CUDA程式。這是因為遠端登入使用的是你本地顯示卡資源,在遠端登入時看不到伺服器端的顯示卡,所以會報錯:沒有支援CUDA的顯示卡!解決方法:1. 遠端伺服器裝兩塊顯示卡,一塊只用於顯示,另一塊用於計算;2.不要用圖形介面登入,而是用命令列介面如telnet登入。

2.有兩個以上顯示卡都支援CUDA的情況,如何區分是在哪個顯示卡上執行?這個需要你在程式裡控制,選擇符合一定條件的顯示卡,如較高的時鐘頻率、較大的視訊記憶體、較高的計算版本等。詳細操作見後面的部落格。

好了,先說這麼多,下一節我們介紹如何在VS2008中給GPU程式設計。

相關推薦

CUDA入門精通環境搭建

NVIDIA於2006年推出CUDA(Compute Unified Devices Architecture),可以利用其推出的GPU進行通用計算,將平行計算從大型叢集擴充套件到了普通顯示卡,使得使用者只需要一臺帶有Geforce顯示卡的筆記本就能跑較大規模的並行處理程式

Spring Boot / Spring MVC 入門實踐 環境搭建與第一個專案

宣告 本系列文章系本人原創,歡迎轉載,轉載請註明出處。 本系列文章通過具體的例子,介紹如何通過Spring Boot來幫助簡化Spring MVC開發Web Application的過程,旨在通過具體的實踐,使讀者能夠入門利用Spring Boot開發Web

Ansible入門環境的準備

在正式開始使用之前需要準備如下環境: ansible的線上安裝 安裝機器: 172.18.18.120 Centos版本: yum -y install ansible Ubuntu版本:sudo apt-get update     &nb

Cordova+Angularjs+Ionic混合開發入門----- ionic環境搭建

      作為一名iOS開發人員,對於移動開發的發展趨勢頗為關注。大家都知道,現在的原生移動開發在企業上基本很少使用的,大部分企業為了降低成本,選擇了webapp,hybrid(混合開發)這兩種模式。恰巧我所在的一家公司也做混合開發,是的,你猜對了,這裡我所說的混合開

vue學習環境搭建

因為最近在做移動端html5的專案,專案中的資料渲染用的template,js ,這種模板的好處在於至少不用在js中去拼接字串來渲染頁面,但是缺點也很明顯,難以修改和格式化,並且會破壞編輯時頁面的佈局,需要做到很細的劃分,不然一旦頁面有所改變,真的改的頭疼。而現在頁面載入的

Selenium Webdriver學習記錄環境搭建Java+Maven+Eclipse+Selenium3.x+第一個測試demo+部分問題解決

1.Selenium的學習網站:     官網:http://www.seleniumhq.org/docs/     中文網站:易百教程-->Selenium教程:http://www.yiibai.com/selenium/ 2.搭建環境     準備:安裝了Ma

Liferay 6.1開發學習環境搭建

一、資源準備 liferay-plugins-sdk-6.1.1(Plugins SDK)liferay-portal-6.1.1-ce-ga2(Bundled with Tomcat)liferay-portal-src-6.1.1-ce-ga2(Portal Sour

activiti自定義流程之Spring整合activiti-modeler5.16例項環境搭建

專案中需要整合activiti-modeler自定義流程,找了很多資料後,終於成功的跳轉到activiti-modeler流程設計介面,以下是記錄: 一、整合基礎:eclipse4.4.1、tomcat7、jdk1.7、mysql5.6.25、maven3.2.5、acti

Python+Selenium - Web自動化測試環境搭建

清單列表:   Python 3x Selenium Chrome Pycharm 一、Python的安裝:   Python官網下載地址:https://www.python.org/   1. 

安卓JNI精細化講解,讓你徹底瞭解JNI環境搭建與HelloWord

目錄 1、基礎概念 ├──1.1、JNI ├──1.2、NDK ├──1.3、CMake與ndk-build 2、環境搭建 3、Native C++ 專案(HelloWord案例) ├── 3.1、專案建立(java、kotlin) ├── 3.2、CMake的應用(詳細講解) ├── 3.3、ndk-bui

TensorFlow 入門精通安裝和使用

安裝過程 目前較為穩定的版本為 0.12,本文以此為例。其他版本請讀者自行甄別安裝步驟是否需要根據實際情況修改。 TensorFlow 支援以下幾種安裝方式: PIP 安裝 原始碼編譯安裝 Docker 映象安裝 PIP 安裝

Asp.net Core IdentityServer4 入門教程概念解析

什麽 ica 統一 理解 給他 分享 目錄 .net 系統 目錄 1、IdentityServer4 是什麽 2、什麽是OpenID和OAuth 2.0協議 3、IdentityServer4 可以用來做什麽 其他 1、IdentityServer4 是什麽 Ident

爬蟲入門系列快速理解HTTP協議

爬蟲入門系列目錄: 4月份給自己挖一個爬蟲系列的坑,主要涉及HTTP 協議、正則表示式、爬蟲框架 Scrapy、訊息佇列、資料庫等內容。 爬蟲的基本原理是模擬瀏覽器進行 HTTP 請求,理解 HTTP 協議是寫爬蟲的必備基礎,招聘網站的爬蟲崗位也赫然寫著熟練掌握HTTP協議規範,寫

MongoDB入門系列基礎概念和安裝

概述   MongoDB是目前非常流行的一種非關係型資料庫,作為入門系列的第一篇本篇文章主要介紹Mongdb的基礎概念知識包括命名規則、資料型別、功能以及安裝等。 環境: OS:Windows Version:3.4 一、安裝 1.下載解壓 在官網下載對應作業系統版本的安裝包,然後解壓;

使用HAL庫、STM32CubeMX和Keil 5開發入門教程點亮盞LED燈NUCLEO-F411RE

本教程以點亮一盞LED燈為目的為大家演示用STM32CubeMX、Keil、ST-Link開發STM32程式的一般方法。 一、學習前的準備工作 硬體:一塊STM32開發板,一個ST-Link;(我使用的開發板是NUCLEO-F411RE) 軟體:裝好ST-

安卓開發入門Android Studio匯入ApiDemos

引言 本人程式設計師,之前做網站比較多,nodejs/express+html/css+mysql,再之前也做過Java開發,程式設計上還是有豐富的經驗。 在持續的實戰中,發現想做產品的話,前端似乎更重要,因為前端才能看到產品形態。雖然說移動端形勢已經每況愈

dotConnect for Oracle入門指南安裝

【下載dotConnect for Oracle最新版本】 dotConnect for Oracle(原名OraDirect.NET)建立在ADO.NET技術上,為基於Oracle資料庫的應用程式提供完整的解決方案。它為設計應用程式結構帶來了新的方法,提高工作效率,使資料庫應用程式的開發更簡便。 d

Mybatis入門示例基礎程式碼

本文為轉載內容 一、開發環境及前期準備: win7 、JDK1.7、 Intellij Idea、mybatis3.2.8 1、前期資料準備: 新建一個名字叫mybatis的資料庫,建立一個User表,匯入一條資料。 建表指

手把手做一個JSP入門程式程式基本介紹JSP

胡扯   說好的不學jsp,結果今天還是學了。主要還是為了後面的java後臺的學習啦。為了更好的掌握知識,那我們就來寫一個簡單的jsp入門程式吧!這只是一個簡單的入門小程式,所以就沒有太多強大的功能。入門啦,入門啦。對了,由於是作為一個入門程式,所以裡面會有較

Prometheus 入門教程Prometheus 快速入門

# 文章首發於【陳樹義】公眾號,點選跳轉到原文:https://mp.weixin.qq.com/s/ZXlBPHGcWeYh2hjBzacc3A Prometheus 是任何一個高階工程師必須要掌握的技能。那麼如何從零部署一套 Prometheus 監控系統呢?本篇文章將從 Prometheus 的原理講