Python版CUDA入门学习笔记
-
由NVIDIA公司发布,是基于CPU和GPU的异构计算架构,通过PCLe总线连接,基于GPU的并行计算引擎来完成更复杂的计算难题
-
GPU不是一个独立运行的计算平台,可以看成是CPU的协助处理器(CPU所在位置称为主机端host,而GPU所在位置为设备端device)
-
CPU负责处理逻辑复杂的串行程序,GPU重点处理数据密集型的并行计算程序
-
Numba:Python版CUDA
-
传统CPU计算流程:1、初始化,2、CPU计算,3、得到计算结果
-
在CUDA编程中,引入GPU后,计算流程编程:1、初始化,并将必要的数据拷贝到GPU设备的显存上,2、CPU调用GPU函数,启动GPU多个核心同时进行计算,3、CPU与GPU异步计算,4、将GPU计算结果拷贝回主机端,得到计算结果
-
一个名为gpu_print.py的GPU程序如下:
from numba import cuda
def cpu_print()
print("print by cpu.")
@cuda.jit
def gpu_print():
# GPU核函数
print("print by gpu.")
def main():
gpu_print[1, 2]()
cuda.synchronize()
cpu_print()
if __name__== "__main__":
main()
- 使用CUDA_VISIBLE_DEVICES=‘0’ python gpu_print.py执行这段代码
- 在GPU核