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 的原理講