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

news/2024/11/23 5:20:17/

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

    • 前言
    • 基本思路
    • 环境搭建
      • OpenMP环境搭建
      • CUDA环境搭建

前言

此文章假设阅读对象有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.最后编译结果将显示在此界面当中。


http://www.ppmy.cn/news/455577.html

相关文章

异构型实例科普---我眼中的异构计算

author:pasca time:2018/01/27 文章目录 摘要一、传统计算的困境二、异构计算的崛起三、”厨房论“异构计算GPU:手脚麻利但是比较笨的帮厨FPGA: 功能多变的万能料理机ASIC:最强订制料理机 四、总结 摘要 本文旨在梳理及加深自身…

异构是什么

异构(heterogeneous,来自中世纪拉丁文 heterogeneus,来自希腊语 heterogenēs ),即由不同的元素或部分组成,不均匀的意思。 含义 异构是指一种包含不同成分的性质。在不同领域有不同意思。 化学 在化学中…

异构开发与异构编程(CUDA GPU)

 什么是异构开发或者编程呢? 虽然自己从事CPUGPU相关工作,但是对异构这个概念之前还不太明确,经过结合开发经验以及查阅资料,对此概念有了一定的理解。 一定要注意能够使用GPU计算的程序必须具有以下特点…

异构计算--CUDA架构

1.CUDA是什么? CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题。说白了就是我们可以使用GPU来并行完成像神经网络、图像处理算法这些在CP…

异构加速在加速什么

目前市面上的加速芯片挺多的,比如GPU、FPGA、TPU,以及针对各种特殊应用所开发的加速芯片。自己一直想理清楚这些加速芯片到底在加速什么,一直没有确切答案。一般宽泛的说法是CPU处理效率较低的,我们就进行加速,但个人觉…

英特尔助力快手实现异构计算加速 显著提升性能,降低系统TCO

昨晚睡得好吗?睡不好可以刷快手的《11 点睡吧》。这部当代人睡眠困境的微综艺,总曝光量达到 107亿,不但科普睡眠知识,更深度探讨都市人的喜怒哀乐[1]。惊人的曝光量背后,是快手对用户画像数据的精准分析,离…

深入理解CPU和异构计算芯片GPU/FPGA/ASIC

转自,http://www.cnblogs.com/qcloud1001/p/6617764.html 随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已…

异构计算(Heterogeneous Compute)

1. 异构计算接口 1) RenderScript(GPU计算): 它是官方异构计算的Android API&#xff0c;从Android ICS 4.2开始&#xff0c;它启用GPU来进行计算&#xff1b;它实现了20多个滤波器(filters)&#xff0c;支持CPU和GPU&#xff0c;且针对Mali-T600进行了优化。 (Nexus 10 <Ma…