CUDA平台在自动控制并行编程实践教学中的应用与思考

2016-05-30 04:02刘朝华李小花张红强
亚太教育 2016年14期
关键词:自动控制实践教学

刘朝华 李小花 张红强

摘 要:本文将基于CUDA平台的GPU并行程序设计模式引入自动控制系统并行编程实践教学中。通过介绍CUDA体系结构与编程模式,实例教学使自动控制专业学生对CUDA并行程序设计有着深刻的认識,将有助于同学们掌握CUDA并行计算平台在工业控制程序开发中的应用,增强同学们对自动控制专业学习的兴趣和实践动手能力。

关键词:CUDA平台;自动控制;并行编程;实践教学

一、引言

随着工业控制系统规模日益增大,控制算法日益复杂,工业数据日益激增,工业现场对系统控制与优化调度的实时性要求日益提高,给现代控制系统程序设计提出挑战。工业控制系统中存在大量的重复性计算,如快速傅里叶变换(FFT)、滤波、矩阵与数值计算等,给传统控制系统带来巨大时间开销。以多核计算机为代表的并行计算技术为工业控制系统设计与开发提供了技术支持。特别是GPU(Graphic Processing Unit)通用并行计算技术的推广[1],由于其高存储器带宽、低功耗等诸多优点,已被广泛应用于科学与工业等领域中,在提升实际问题的求解效率方面发挥了作用。CUDA(Compute Unified Device Architecture,计算统一设备架构)由英伟达公司于2007年发布的一种将GPU作为并行计算的软硬件体系架构,可用于解决工程科学中的复杂计算,开启了GPU通用并行计算时代[2]。研究表明在浮点运算、数值计算等密集型计算方面,基于CUDA平台的GPU计算系统可获得数十倍于传统CPU的加速性能[3]。因此,相比于传统微机控制方式,基于CUDA的GPU并行计算适用于数据量大,实时性要求高的工业控制领域。

现有高校自控专业程序设计课程主要是基于串行编程方式的教学,难以适应工业信息化与知识自动化对控制系统实时性能与数据存储的需求。本文将基于CUDA平台的GPU并行程序设计模式引入自动控制系统并行程序设计实践教学中。有利于同学掌握先进计算技术在自动控制系统中的开发与应用,拓宽其专业视野。最后对自动控制程序设计与CUDA并行编程实践教学进行了思考与总结。

二、CUDA体系架构和编程模式

(一)CUDA体系结构。CUDA框架包括硬件和软件两部分,拓宽了GPU程序开发与运行的可操作性。GPU的硬件包括运算核心和存储器,其中运算核心流处理器构成流多处理器(Streaming Multi-Processor,SM),每个SM都带共享存储器,所有SM共享GPU的全局、常量与纹理存储器。CUDA的软件包括CPU代码和GPU代码,其中CPU负责处理逻辑性的串行事务控制,GPU负责处理大量重复性计算任务。在GPU上执行的函数称为核函数,当核函数被CPU代码激活时,GPU中在逻辑上的两层线程组(顶层为线程网格(Grid),下层为线程块(Block,包含若干个线程(Thread))并行执行。一个内核函数网格中的线程块并行和线程块中的线程两个层次的并行方式来提高数据吞吐量和执行效率。各个线程块并行执行,线程块间无法通信,也没有执行顺序,但同一个线程块中的线程可以通过共享存储器方式交换数据。

(二)CUDA编程模式。在CUDA架构中,CPU与GPU是一种异构协同并行计算模式。其中CPU为主机,GPU为设备。CPU与GPU各自拥有独立的存储器地址空间:显存和内存。程序员可以应用高级语言(C/C++/fortan)对GPU内部计算资源进行访问。CUDA编程基本步骤为:步骤1:加载C(或C++)和CUDA头文件,启动cudaSetDevice()配置GPU设备;初始化CPU和GPU数据空间;步骤2:调用设备端(GPU)的内核函数计算;①从显存读取数据到共享存储器或寄存器内;②对数据进行并行计算和处理;③将处理后的数据写回显存。

步骤3:将显存中的结果回读到内存;步骤4:使用CPU对数据进行处理并输出结果;步骤5:释放内存和显存空间并退出CUDA。

三、实例讲解

以一个简单的CUDA程序设计实例来讲解,加深自动控制专业同学对CUDA平台GPU并行程序设计过程的理解。考虑给一个向量V{1:N}上每一位矢量的加上常数。其中CUDA程序C代码如下:

#define N 100;

_global_void Vadd(int*V,int m)

{int index=blockIdx.x;if(indexint main(void){ int host_V[N]; int *device_V; cudaMalloc((void**)&device_V, L * sizeof(int)); for (int k=0; k

猜你喜欢
自动控制实践教学
简易热水器自动控制设计
基于DCS自动控制循环水液面的改造
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
研究型学习在传热学实践教学中的应用
思想政治理论课实践教学研究述评
高职院校商务礼仪课程教学改革探索刍议
编组站停车器自动控制开通方案
自动控制火候的LED火焰
多台空压机轮转自动控制研究