【CUDA编程基础】第一章 GPU硬件与CUDA程序开发工具
GPU计算指的是CPU+GPU的异构(heterogeneous)计算,并且通常将起控制作用的CPU称为主机(host),将起加速作用的GPU称为设备(device);显存(GPU中的内存)容量也是制约应用程序性能的一个因素。CUDA提供两层API(Application Programming Interface, 应用程序编程接口),即CUDA驱动(driver)API和CUDA运行时(run
第零章 资料
⭐CUDA所有版本官网文档:https://developer.nvidia.com/cuda-toolkit-archive
书中源码:GitHub - brucefan1983/CUDA-Programming
第一章 GPU硬件与CUDA程序开发工具
GPU(graphics processing unit)图形处理器;CPU(central processing unit)中央处理器。GPU计算指的是CPU+GPU的异构(heterogeneous)计算,并且通常将起控制作用的CPU称为主机(host),将起加速作用的GPU称为设备(device);主机与(非集成)设备都有自己的DRAM(dynamic random-access memory,动态随机存取内存),一般由PCLe总线(peripheral component interconnect express bus)连接。
Nvidia显卡系列与区别
- Tesla系列:其中的内存为纠错内存(error-correcting code memory,ECC内存),稳定性好。
- Quadro系列:支持高速OpenGL渲染,主要用于专业绘图设计(20240805,从很久之前就已不再推出新显卡)。
- GeForce系列:无纠错内存,价格相对低廉、性价比高。
- Jetson系列:嵌入式设备中的GPU。
GPU都有一个用以表示其“计算能力(compute capability)”的版本号,形如X.Y;版本号与显卡的计算能力(运算能力)无正比关系。GPU计算能力表
表征计算性能的一个重要参数是浮点数运算峰值,即每秒最多能执行的浮点数运算次数,英文为Floating-point operations per second,缩写为FLOPS。GPU的浮点数运算峰值再10^(12)FLOPS,即teraFLOPS(简写为TFLOPS)的量级。另一个影响计算性能的参数是GPU中的内存带宽(memory bandwidth)。显存(GPU中的内存)容量也是制约应用程序性能的一个因素。
CUDA提供两层API(Application Programming Interface, 应用程序编程接口),即CUDA驱动(driver)API和CUDA运行时(runtime)API。其中,CUDA驱动API是更底层的API,提供了更为灵活的编程接口;CUDA运行时API是在CUDA驱动API的基础上构建的一个更为高级的API,简单易用。
指定GPU运行程序。
export CUDA_VISIBLE_DEVICES=1
GeForce系列GPU,无ECC内存,故Uncorr. ECC 为N/A,代表不适用(not applicable)或者不存在(not available)。
Compute M.指计算模式(compute mode)。计算模式为Default。在默认模式中,同一个GPU中允许存在多个计算进程,但每个计算进程对应程序的运行一般来说会降低。还有一种计算模式为E.Process,指的是独占进程模式(exclusive process mode),但不适用于处于WDDM模式的GPU。
sudo nvidia-smi -i GPU_ID -c 0 # 默认模式 sudo nvidia-smi -i GPU_ID -c 1 # 独占进程模式
官方资料文档:CUDA Toolkit Documentation 12.6
《CUDA C++ Programming Guide》:CUDA C++ Programming Guide
《CUDA C++ Best Practices Guide》:CUDA C++ Best Practices Guide
特定架构的优化指南:
API文档:
CUDA运行时API:CUDA Runtime API :: CUDA Toolkit Documentation
CUDA驱动API:CUDA Driver API :: CUDA Toolkit Documentation
CUDA数学函数库API:CUDA Math API Reference Manual
更多推荐
所有评论(0)