【CUDA】CUDA: (八) 使用 CUDA C/C++ 加速计算的基础 (NVIDIA 课程 Part one)
这篇博客是NVIDIA付费的课程内容LZ自己进行了个格式排列和一些代码的梳理感觉还是非常有用的一个课程有兴趣的小伙伴可以自行去学习LZ也作为整理毕竟课程是有一定有效期的过了就没法使用(≧▽≦)/啦啦啦C/C加速计算的基础借助您现在掌握的技术和工具您离准备好开始加速自己的实际应用程序近在咫尺了。本节将为您提供以下详细信息a. 设置自己的CUDA环境b. 如何最好地在开发加速应用程序方面继续学习c. 解决另外一个供练习用的问题d. 其它有用的资源一、设置一个拥有CUDA的环境为您自己的工作设置CUDA环境的两种最简单的方法是1.通过云服务商2.在您自己的装有NVIDIA GPU的系统上安装CUDA1. 通过云服务商所有主要的云服务商都提供支持NVIDIA GPU的实例。在网上简单地搜索 “NVIDIA GPU 您选择的云服务商” 就能很容易地找到一条如何在你选择的云里配置这样一个实例的结果。这些实例都安装有CUDA工具包。您只需使用SSH进入这些实例就可以开始工作了。2. 你自己的系统如果您可以访问具有NVIDIA GPU但尚未安装CUDA工具包的系统那么只需按照此处的说明在您的特定操作系统上下载和安装CUDA。二、继续开发您的加速计算的应用程序在建立了自己的加速系统之后一件能进一步增强您作为加速计算程序员的能力的非常好的事情就是加速您自己的应用程序。此外,1. 努力加速您自己的应用程序您已经学会了如何根据程序性能分析的结果以迭代的方式实现计算的不断加速因此1.对您正在使用的计算密集型应用程序进行一些基准性能测量2.对于何处可以进行加速做一些假设3.对可能的可加速部分做一些简单直观的改变4.再一次评估性能并重复上述过程2. 阅读并应用CUDA C最佳实践指南介绍的技术虽然您已能够提高原本仅在CPU上运行的应用程序的性能但您可以把加速计算再提高一步。CUDA C最佳实践指南是一个有效的CUDA编程的基本资源。在以您已学过的方式加速自己的应用程序之后可以开始研究一下本文档并应用其描述的技术以进一步提高应用程序的性能。三、GPU加速的实践应用到目前为止最佳做法是加速您自己的应用程序但对于那些可能还没有真实用例的人请尝试加速以下Mandelbrot Set模拟器。按照惯例请采用迭代和性能分析驱动的方法。Mandelbrot Set Simulator这个C 模拟器包含一个指向应用程序详细说明的链接可以让您直观地看到GPU加速的影响。有用的资源许多非常有才华的程序员使用CUDA创建高度优化的库用于加速计算。在您自己的应用程序中有许多场景需要编写自己的CUDA代码不过在编程中通常还有许多场景其他人已经为您编写好代码了。请仔细阅读GPU加速计算库了解在何处可以使用高度优化的CUDA库执行诸如基本的线性代数求解器BLAS、图形分析、快速傅里叶变换FFT、随机数生成RNG以及图像和信号处理等任务。四、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/