CPU+GPU异构式并行加速环境的搭建

  • Post author:
  • Post category:其他




前言

此文章假设阅读对象有C++语言基础但在并行领域未曾入门,介绍了如何搭建CPU+GPU异构式并行加速环境。其中,CPU上需要使用的语言为OpenMP,GPU上需要使用的语言为CUDA。本文章主要介绍环境的搭建,所以不详细介绍语言和代码部分。如果需要快速入门OpenMP和CUDA,推荐以下博客(从许多博客中挑选而出,讲解清楚,适合入门):

链接: [https://blog.csdn.net/lanbing510/article/details/17108451].(OpenMP入门)

链接: [https://bbs.csdn.net/topics/390798229].(CUDA入门)

另外,本文章中不公布代码部分,如若需要,请自行联系博主,博主联系方式置于最后。首先介绍的部分是基本思路,便于读者了解做什么,之后的部分将介绍如何搭建环境。



基本思路

事先假设数据来源为阵列天线,则实现加速的方式示意图如下:



示意图中CPU部分通过OpenMP语言的调用实现多线程处理。GPU部分通过调用CUDA语言实现多线程处理,另外数据的交互也是通过CUDA语言中的“cudaMemcpy”指令实现。将原先的单线程转为多线程后,数据处理的速度将会得到增加。除此之外,值得注意的是由于CPU擅长对逻辑部分进行处理,而GPU拥有强大的计算能力,因此建议逻辑性强的程序部分交由CPU执行,计算量大的部分交由GPU执行。



环境搭建

为了顺利搭建环境,请严格按照以下步骤操作。



OpenMP环境搭建

首先下载VS2017(VS低于2015的版本不支持nvcc编译)。(

VS2017下载地址

)下载安装完成VS2017后,可以使用快捷键

Ctrl/Command

+

Shift

+

N

完成新建项目。


1.找到右端

解决方案资源管理器



在这里插入图片描述


2.右键点击项目名称


在这里插入图片描述


3.单击

属性

并勾选

OpenMP支持



在这里插入图片描述

完成以上操作之后,便可以利用VS2017实现OpenMP语言的编写。



CUDA环境搭建

首先下载CUDA,推荐下载CUDA9.0

点此下载CUDA各版本


安装过程中,所有路径选择为默认路径。如果安装成功可以按照以下博客完成CUDA和VS环境的搭建:

VS2017+CUDA9.0环境搭建


如果VS无法和CUDA完成配置,可以通过命令行的方式调用CUDA,具体方式点击旁边的链接

求求你点点我

。但通过此方法无法调用函数库里面的函数。接下来详细介绍怎样通过命令行实现GPU上加速。


1.在文本文档或者sublime中写好代码



2在所在文件夹中按住

Shift

+

鼠标右键

+

s

,出现如下界面:


在这里插入图片描述


3.在所在界面中输入

nvcc

+

文本文档名

,然后回车即完成编译。


其中sg_gpu_fft为文件名

上图为详细的编译指令,其中sg_gpu_fft.cu为文件名。注意扩展名一定要改为.cu的形式。


4.使用nvcc指令成功后,将会自动生成如下文件:


在这里插入图片描述


5.然后同样的在Windows PowerShell界面输入如图指令:


在这里插入图片描述


6.最后编译结果将显示在此界面当中。



版权声明:本文为weixin_44029534原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。