CudaSteps/capter1/ReadMe.md

4.0 KiB
Raw Permalink Blame History

GPU 硬件与 CUDA 程序开发工具


GPU 硬件

在由 CPU 和 GPU 构成的异构计算平台中,通常将起控制作用的 CPU 称为 主机host
将起加速作用的 GPU 称为 设备device

主机和设备都有自己的 DRAM之间一般由 PCIe 总线连接。

GPU 计算能力不等价于计算性能;表征计算性能的一个重要参数是 浮点数运算峰值FLOPS
浮点数运算峰值有单精度和双精度之分。对于 Tesla 系列的 GPU双精度下 FLOPS 一般是单精度下的 1/2; 对于 GeForce 系列的 GPU双精度下 FLOPS 一般是单精度下的 1/32。

影响计算性能的另一个参数是 GPU 内存带宽(显存)


CUDA 程序开发工具

  1. CUDA
  2. OpenCL更为通用的各种异构平台编写并行程序的框架AMD 的 GPU 程序开发工具;
  3. OpenACC由多公司共同开发的异构并行编程标准。

CUDA 提供两层 API即 CUDA 驱动API 和 CUDA 运行时API。
CUDA 开发环境中程序应用程序是以主机CPU为出发点的应用程序可以调用 CUDA 运行时 API、
CUDA 驱动 API 和一些已有的 CUDA 库。


CUDA 开发环境搭建

linux 操作系统:linux下cuda环境搭建

windows10 操作系统:windows10下cuda环境搭建


nvidia-smi 检查与设置设备

>> nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 462.30       Driver Version: 462.30       CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce MX450      WDDM  | 00000000:2B:00.0 Off |                  N/A |
| N/A   39C    P8    N/A /  N/A |    119MiB /  2048MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
  1. CUDA Version 11.2
  2. GPU NameGeForce MX450设备号为 0如果系统中有多个 GPU 且只要使用其中某个特定的 GPU
    可以通过设置环境变量 CUDA_VISIBLE_DEVICES 的值,从而可以在运行 CUDA 程序前选定 GPU;
  3. TCC/WDDMWDDMwindows display driver model其它包括 TCCTesla compute cluster
    可以通过命令行 nvidia-smi -g GPU_ID -dm 0,设置为 WDDM 模式1 为 TCC 模式);
  4. Compute mode, Default此时同一个 GPU 中允许存在多个进程;其他模式包括 E.Process
    指的是独占进程模式,但不适用 WDDM 模式下的 GPU
    可以通过命令行 nvidia-smi -i GPU_ID -c 0,设置为 Default 模式1 为 E.Process 模式);
  5. Perfp8GPU 性能状态最大p0~最小p12

更多关于 nvidia-smi 的资料:nvidia-smi