[讨论] 关于GPU编程的讨论

ljg2np   2024-11-7 09:30 楼主

图形处理器(Graphics Processing Unit, GPU)和中央处理器(Central Processing Unit, CPU)相对,是显卡的核心芯片;统一计算设备架构(Compute Unified Device Architecture, CUDA),是由英伟达(NVIDIA)推出的通用并行计算架构,作为开发GPU的编程接口,CUDA通过CPU任务分发和GPU并行处理来提升计算效率。

 

 

回复评论 (11)

在CUDA平台下,CPU和GPU是如何分工协作的?

1. CPU负责任务调度和管理。

2. GPU负责并行计算:使用大量CUDA核心执行任务,完成大规模向量计算。

3. 数据交换:CPU和GPU之间存在数据交换,GPU显存决定并行处理规模和计算速度。

点赞  2024-11-7 09:57

cuDNN是NVIDIA提供的针对深度神经网络基元的一个优化 GPU 库,这些基元包括前向传播、卷积、反向传播、激活函数(如 sigmoid、ReLU 和 tanh)和梯度下降,cuDNN 是大多数主流深度神经网络框架(如 Tensorflow)在 NVIDIA GPU 上的底层支撑。

点赞  2024-11-7 10:42

 

GPU硬件的一个核心组件是SM(Streaming Multiprocessor,流式多处理器),SM采用的是SIMT(Single-Instruction, Multiple-Thread,单指令多线程)架构,CUDA Warp(线程束)是CUDA中的最小执行单元,由 32 个线程或更少组成,运行在精确的32个GPU核心上,就像网格由块组成一样,块由Warps组成,Warp的多少取决于块使用的线程数。

本帖最后由 ljg2np 于 2024-11-7 14:22 编辑
点赞  2024-11-7 11:00

CUDA是英伟达非常伟大的设计。

点赞  2024-11-7 13:09

GPU与CPU通过PCIe总线连接,CPU一侧称为主机端(host),GPU一侧称为设备端(device);CUDA是NVIDIA公司开发的GPU编程模型,它提供了GPU编程的简易接口,基于CUDA编程可以构建基于GPU计算的应用程序。CUDA程序的执行流程如下:

1、分配host内存,并进行数据初始化;

2、分配device内存,并从host将数据拷贝到device上;

3、调用CUDA的核函数在device上完成指定的运算;

4、将device上的运算结果拷贝到host上;

5、释放device和host上分配的内存。

点赞  2024-11-7 14:13
引用: wangerxian 发表于 2024-11-7 13:09 CUDA是英伟达非常伟大的设计。

分布式并行计算技术一直在发展,英伟达通过CUDA将显卡芯片发展为GPU,极大降低了普通用户参与AI实现的门槛。

点赞  2024-11-7 14:17

在CUDA中通过函数类型限定词区分host和device上的函数,kernel(核函数)是在device上线程中并行执行的函数,用_global__符号声明;在device上执行时启动很多线程,一个kernel启动的所有线程称为一个网格(grid),同一个网格上的线程共享相同的全局内存空间,网格分为很多线程块(block),每个块包含了若干线程。主要的三个函数类型限定词如下:

    1、__global__在device上执行,从host中调用,返回类型是void,不能成为类成员函数;

    2、__device__在device上执行,仅在device中调用,不和_global__同时用;

    3、__host__在host上执行,仅在host上调用,可省略不写,不和_global__同时用,可和__device__一起使用,函数在device和host都被编译。

本帖最后由 ljg2np 于 2024-11-8 09:31 编辑
点赞  2024-11-7 14:40

能不能描述清楚一点?485通信速率难道不是波特率决定的吗?

点赞  2024-11-7 17:11

在pyTorch中调用GPU的两种方法:

1、调用model.cuda(),将模型加载到GPU;

2、调用model.to(device),这种方式应用较多。

点赞  2024-11-8 09:42
引用: zpw0316 发表于 2024-11-7 17:11 能不能描述清楚一点?485通信速率难道不是波特率决定的吗?

波特率的概念更为普遍适用,不止RS485,对RS422、RS232都可以采用的;对于GPU来说,它本身是作为显卡的芯片,侧重于图形处理和显示器适配的,随着芯片技术的发展,增强了性能,引入了并行计算功能,而且借助于显示器是电脑的标配的缘故,很方便的得到了应用和推广;实际上,它并不是专门从事并行、分布、集群的超大规模计算的。

点赞  2024-11-8 11:18

GPU的出现和提出,很大程度上促进和推动了一些领域和行业的发展,尤其是对于人工智能领域的参与,使其受到了普遍的关注,促进了计算机领域的改革和发展。

点赞  2024-11-8 11:23
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复