GPU和cuda的区别

声明

本文内容部分摘自其它博主
原文链接如下:https://blog.csdn.net/zhu_wendao/article/details/97759219

引言

在进行神经网络编程的时候,总是看到代码里有cuda字样,听到很多人说那是gpu,但是为什么不直接叫gpu呢?于是自己多方查找,得到了以下结论。

结果梳理

首先,我们需要知道的是,gpu是显卡中间的一块芯片。显卡就是一块大板子。
其次,cuda是通用并行计算架构。过去GPU是做图形渲染工作的,因此像浮点数运算这种工作要想用GPU完成就得先将它“包装成”图形渲染工作,但是这需要一定的图形学基础。因此,厂商提出了cuda的概念,包括cuda指令集架构以及GPU内部的并行计算引擎,免去了“包装”过程。主要应用包括:加载数据到主存、在显存中分配数据结构、将数据从主存拷贝到显存、激发GPU执行核函数、将结果从显存拷贝回主存等等。cuda和GPU不是一回事。

什么是CUDA?

CUDA(Compute Unified Device Architecture),通用并行计算架构,是一种运算平台。它包含CUDA指令集架构以及GPU内部的并行计算引擎。你只要使用一种类似于C语言的CUDA C语言,就可以开发CUDA程序,从而可以更加方便的利用GPU强大的计算能力,而不是像以前那样先将计算任务包装成图形渲染任务,再交由GPU处理。
注意,并不是所有GPU都支持CUDA。

补充

为了使用GPU的强大运算能力,需要进行GPU编程。然而现在GPU形形色色,比如Nvidia、AMD、Intel都推出了自己的GPU。
每个GPU生产公司都推出自己的编程库显然会让学习成本上升很多,因此苹果公司就推出了标准OpenCL,说各个生产商都支持该标准,只要有一套OpenCL的编程库就能对各类型的GPU芯片适用。当然了,OpenCL做到通用不是没有代价的,会带来一定程度的性能损失,在Nvidia的GPU上,CUDA性能明显比OpenCL高出一大截。
目前CUDA和OpenCL是最主流的两个GPU编程库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值