GPU原理和应用

一、前言

       区块链,深度学习发展迅猛,GPU登上了舞台。

二、GPU是什么?

      GPU即 Graphics Process Unit,译为“图形处理器”。GPU是显示卡的核心部件,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。今天的GPU不仅具备高质量和高性能图形处理能力,还可用于通用计算。今天,GPU已经不再局限于3D图形处理了,GPU通用计算技术发展已经引起业界不少的关注,事实也证明在浮点运算、并行计算等部分计算方面,GPU可以提供数十倍乃至于上百倍于CPU的性能,GPU使显卡减少了对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理时。GPU所采用的核心技术有硬体T&L、立方环境材质贴图和顶点混合、纹理压缩和凹凸映射贴图、双重纹理四像素256位渲染引擎等,而硬体T&L技术可以说是GPU的标志。

 

三、GPU原理

      下图对CPU与GPU中的逻辑架构进行了对比。其中Control是控制器、ALU算术逻辑单元、Cache是cpu内部缓存、DRAM就是内存。可以看到GPU设计者将更多的晶体管用作执行单元,而不是像CPU那样用作复杂的控制单元和缓存。从实际来看,CPU芯片空间的5%是ALU,而GPU空间的40%是ALU。这也是导致GPU计算能力超强的原因。

四、GPU查看

          1、Linux查看显卡信息:lspci | grep -i vga

          2、使用nvidia GPU可以:lspci | grep -i nvidia

          3、Nvidia自带一个命令行工具可以查看显存的使用情况:nvidia-smi

          表头释义: 

          Fan:显示风扇转速,数值0到100%之间,如果计算机不是通过风扇冷却或风扇坏了,显示出来就是N/A; 
          Temp:显卡内部的温度,单位是摄氏度;
          Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;
          Pwr:能耗表示; 
          Bus-Id:涉及GPU总线的相关信息; 
          Disp.A:是Display Active的意思,表示GPU的显示是否初始化; 
          Memory Usage:显存的使用率; 
          Volatile GPU-Util:浮动的GPU利用率;
          Compute M:计算模式;

         4、如果要周期性的输出显卡的使用情况,可以用watch指令实现:watch -n 10 nvidia-smi   //命令行参数-n后边跟的是执行命令的周期,以s为单位。

 

五、GPU编程库

       GPU计算能力这么强,被广泛使用!比如挖矿(比特币)、图形图像处理、数值模拟、机器学习算法训练等等,那我们怎么发挥GPU超强的计算能力呢?---编程!

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

      从编程语言角度看,CUDA和OpenCL都是原生支持C/C++的,其它语言想要访问还有些麻烦,比如Java,需要通过JNI来访问CUDA或者OpenCL。基于JNI,现今有各种Java版本的GPU编程库,比如JCUDA等。另一种思路就是语言还是由java来编写,通过一种工具将java转换成C。

 

参考资料:

1、《GPU的介绍 以及原理的分析》https://blog.csdn.net/u013165704/article/details/80569424

2、《GPU加速原理&技术介绍》https://blog.csdn.net/weiweigfkd/article/details/23051255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值