并行计算,计算机一个核只能干一件事,使用多核,核相互不打扰,就可以达到并行计算的效果。GPU的核心比CPU多很多。
GPU核多而单核的计算能力弱。
GPU核心计算时,只能从显存获取数据,需要指明从显存到内存的拷贝。总线传输速度和带宽成为计算任务的瓶颈。
CPU和GPU分开,CPU和主存被称为Host,GPU被称为Device。
每代产品背后有一个架构代号,物理学家的名字
Turing 图灵
Volta 伏特
Telsa V100
Pascal 帕斯卡
多个小核心组成一个Streaming Multiprocessor (SM)
一张GPU有多个SM。以SM为运算和调度的基本单元。
一个SM包含:
CUDA编程模型,cuBLAS线性代数库,cuFFT快速傅里叶变换库。cuDNN深度神经网络加速库。
GPU编程可以直接使用CUDA的C/C++版本,也可以使用Numba库调用cuda