本系列文章根据Intel开源GPU加速技术整理而得。
前言
在深度学习大行其道的今天,很少有人再关注底层GPU加速的实现。也许是因为实现起来太复杂,但更多的应该是无法快速编程,实现几亿个求解参数的快速实现,而用python接口只需要几行代码。
不可否认的是,在一些场合,如果想实现GPU的加速,比如图像增强,图像去噪等,那么就必须要DIY一个加速代码。如果不具备这些知识,将很影响效率。或者说,你想写一个自己的深度学习框架,掌握底层的GPU加速实现方法,是绕不开的独木桥。
话不多说,进入正题。
一说到GPU加速,大多数人想到的是英伟达的显卡,其他公司,诸如intel,AMD等都是辣鸡。凭借着丰富的技术积累,又处在AI的风口浪尖,这头猪公开了CUDA。一个晴天霹雳挂在了Intel,AMD的头上。作为反击,并宣示自己的存在感,Intel开源GPU加速技术。
这个系列文章,不写GPU的构成,不写CPU和GPU是怎么通信的,还不写GPU是怎么执行代码的。那写个。。。
试想,对于从事模式识别,图像处理的科学家来说,这些似乎超出了他们的知识范围。他们只是想做个加速而已。这个系列的博客就是告诉各位科学家,怎么去做,不去扯那些没用的,自行百度可好?
一个图说明CPU和GPU的关系。
为什么是各种总线呢。因为对于,不同的设计架构,CPU和GPU之间有各种不同的联系方式。
那么,软件又是怎么个实现方式呢?又有个图。
应用程序是你自己的实现,黄色的框框就是你要考虑到的部分。客户端的代码怎么设计,服务端的代码怎么设计,他俩又是咋联系起来从而在GPU上运行的。围绕这三个问题,本系列的文章包括以下部分。
• Intel GPU加速服务端实现
• Intel GPU加速客户端实现
• 服务端和客户端的紧密联系
• 100幅图像同时做高斯滤波的例子
• 影响GPU加速因素的探讨
到这,很多科学家有满脑子的问号。莫急,就算个引子吧,且听下回分解。