 使用 CUDA C/C++ 加速計(jì)算的基礎(chǔ) (NVIDIA 課程 Part one))
這篇博客是NVIDIA付費(fèi)的課程內(nèi)容LZ自己進(jìn)行了個(gè)格式排列和一些代碼的梳理感覺還是非常有用的一個(gè)課程有興趣的小伙伴可以自行去學(xué)習(xí)LZ也作為整理畢竟課程是有一定有效期的過了就沒法使用(≧▽≦)/啦啦啦C/C加速計(jì)算的基礎(chǔ)借助您現(xiàn)在掌握的技術(shù)和工具您離準(zhǔn)備好開始加速自己的實(shí)際應(yīng)用程序近在咫尺了。本節(jié)將為您提供以下詳細(xì)信息a. 設(shè)置自己的CUDA環(huán)境b. 如何最好地在開發(fā)加速應(yīng)用程序方面繼續(xù)學(xué)習(xí)c. 解決另外一個(gè)供練習(xí)用的問題d. 其它有用的資源一、設(shè)置一個(gè)擁有CUDA的環(huán)境為您自己的工作設(shè)置CUDA環(huán)境的兩種最簡單的方法是1.通過云服務(wù)商2.在您自己的裝有NVIDIA GPU的系統(tǒng)上安裝CUDA1. 通過云服務(wù)商所有主要的云服務(wù)商都提供支持NVIDIA GPU的實(shí)例。在網(wǎng)上簡單地搜索 “NVIDIA GPU 您選擇的云服務(wù)商” 就能很容易地找到一條如何在你選擇的云里配置這樣一個(gè)實(shí)例的結(jié)果。這些實(shí)例都安裝有CUDA工具包。您只需使用SSH進(jìn)入這些實(shí)例就可以開始工作了。2. 你自己的系統(tǒng)如果您可以訪問具有NVIDIA GPU但尚未安裝CUDA工具包的系統(tǒng)那么只需按照此處的說明在您的特定操作系統(tǒng)上下載和安裝CUDA。二、繼續(xù)開發(fā)您的加速計(jì)算的應(yīng)用程序在建立了自己的加速系統(tǒng)之后一件能進(jìn)一步增強(qiáng)您作為加速計(jì)算程序員的能力的非常好的事情就是加速您自己的應(yīng)用程序。此外,1. 努力加速您自己的應(yīng)用程序您已經(jīng)學(xué)會了如何根據(jù)程序性能分析的結(jié)果以迭代的方式實(shí)現(xiàn)計(jì)算的不斷加速因此1.對您正在使用的計(jì)算密集型應(yīng)用程序進(jìn)行一些基準(zhǔn)性能測量2.對于何處可以進(jìn)行加速做一些假設(shè)3.對可能的可加速部分做一些簡單直觀的改變4.再一次評估性能并重復(fù)上述過程2. 閱讀并應(yīng)用CUDA C最佳實(shí)踐指南介紹的技術(shù)雖然您已能夠提高原本僅在CPU上運(yùn)行的應(yīng)用程序的性能但您可以把加速計(jì)算再提高一步。CUDA C最佳實(shí)踐指南是一個(gè)有效的CUDA編程的基本資源。在以您已學(xué)過的方式加速自己的應(yīng)用程序之后可以開始研究一下本文檔并應(yīng)用其描述的技術(shù)以進(jìn)一步提高應(yīng)用程序的性能。三、GPU加速的實(shí)踐應(yīng)用到目前為止最佳做法是加速您自己的應(yīng)用程序但對于那些可能還沒有真實(shí)用例的人請嘗試加速以下Mandelbrot Set模擬器。按照慣例請采用迭代和性能分析驅(qū)動的方法。Mandelbrot Set Simulator這個(gè)C 模擬器包含一個(gè)指向應(yīng)用程序詳細(xì)說明的鏈接可以讓您直觀地看到GPU加速的影響。有用的資源許多非常有才華的程序員使用CUDA創(chuàng)建高度優(yōu)化的庫用于加速計(jì)算。在您自己的應(yīng)用程序中有許多場景需要編寫自己的CUDA代碼不過在編程中通常還有許多場景其他人已經(jīng)為您編寫好代碼了。請仔細(xì)閱讀GPU加速計(jì)算庫了解在何處可以使用高度優(yōu)化的CUDA庫執(zhí)行諸如基本的線性代數(shù)求解器BLAS、圖形分析、快速傅里葉變換FFT、隨機(jī)數(shù)生成RNG以及圖像和信號處理等任務(wù)。四、Environment Quick StartThis is a quick-start for users who just want to get going.Use the nvidia AMI on AWS ( 10 minutes):https://github.com/NVIDIA/nvidia-docker/wiki/Deploy-on-Amazon-EC2Get started with nvidia-docker (5 minutes):https://github.com/NVIDIA/nvidia-dockerGet started with the CUDA development image (5 minutes):“docker pull nvidia/cuda:9.1-devel”https://hub.docker.com/r/nvidia/cuda/