图形工作站、集群应用方案
  • 网站首页
  • 商城
  • 产品
  • 行业计算
  • 科学工程计算
  • 化学&生物
  • 图形设计
  • 图像处理
  • 视景仿真
  • 人工智能
  • 影视后期
全球领先的高端图形工作站供应商

免费测试 热线 : 400-7056-800 【 为任何应用提供 最快计算设备 如不符,退货】【最新报价】【选购指南】【京东商城】



企业通用模版网站

  • 科研团队全能超算平台25v1
  • 超高分拼接 数字孪生
  • 科学计算MatLAB工作站24
  • 地质建模 油藏模拟工作站
  • 工业CT扫描 机器视觉计算
  • 电力系统关键应用配置24
  • 网站首页
  • 商城
  • 产品
  • 行业计算
  • 科学工程计算
  • 化学&生物
  • 图形设计
  • 图像处理
  • 视景仿真
  • 人工智能
  • 影视后期
  • 送无人机啦 8核6.4GHz  96核4.8GHz 加速改装 

  • 高性能集群 虚拟并行计算 芯片设计 光学仿真 

  • 蛋白质预测 生物信息 冷冻电镜 材料模拟

  • RSS订阅
  • 理科计算推荐
  • 仿真计算最快最完美25v1
  • 电磁仿真单机与集群25v1
  • 航拍实景建模单机集群
  • 遥感图像处理工作站集群
  • 4K/8K剪辑特效调色24v1
  • AI大模型工作站集群25v1
  • Abaqus硬件配置大全24v3
  • CST电磁仿真工作站25v1
  • 多物理场仿真单机与集群
  • 流体/空气动力学仿真25v1
  • 量子化学 分子动力模拟
  • 三维设计24v2  3D打印

 

您的位置:UltraLAB图形工作站方案网站 > 科学工程计算 > EDA/后仿验证 > 实战:使用MATLAB进行GPU高级编程

实战:使用MATLAB进行GPU高级编程

时间:2012-01-14 17:19:00   来源:UltraLAB图形工作站方案网站   人气:14601 作者:admin

在GPU上执行能够加快我的应用程序吗?

GPU能够对符合以下标准的应用程序进行加速:

大规模并行—计算能够被分割成上百个或上千个独立的工作单元。

计算密集型—计算消耗的时间显著超过了花费转移数据到GPU内存以及从GPU内存转移出数据的时间。

不满足上述标准的应用程序在GPU上运行时可能会比CPU要慢。

使用MATLAB进行GPU编程

FFT,IFFT以及线性代数运算超过了100个内置的MATLAB函数,通过提供一个类型为GPUArray(由并行计算工具箱提供的特殊数组类型)的输入参数,这些函数就能够直接在GPU上运行。这些启用GPU的函数都是重载的,换句话说,这些函数根据传递的参数类型的不同而执行不同的操作。

例如,以下代码使用FFT算法查找CPU上伪随机数向量的离散傅里叶变换:

A = rand(2^16,1);

B = fft (A);

为在GPU上执行相同的操作,我们首先使用gpuArray命令将数据从MATLAB工作空间转移至GPU设备内存。然后我们能够运行重载函数fft:

A = gpuArray(rand(2^16,1));

B = fft (A);

fft操作在GPU上而不是在CPU上执行,因为输入参数(GPUArray)位于GPU的内存中。

结果B存储在GPU当中。然而,B在MATLAB工作空间中依旧可见。通过运行class(B),我们看到B是一个GPUArray。

class(B)

ans =

parallel.gpu.GPUArray

我们能够使用启用GPU的函数继续对B进行操作。例如,为可视化操作结果,plot命令自动处理GPUArrays。

plot(B);

为将数据返回至本地的MATLAB工作集,你可以使用gather命令。例如

C = gather(B);

C现在是MATLAB中的double,能够被处理double变量的所有MATLAB函数操作。

在这个简单的例子当中,执行单个FFT函数节省的时间通常少于将向量从MATLAB工作集移动到设备内存的时间。一般来说是这样的但是也取决于硬件和阵列规模。数据传输开销可能变得异常显著以至于降低了应用的总体性能,尤其是当你重复地在CPU和GPU之间交换数据,执行相对来说很少的计算密集型操作时。更有效率的方式是当数据处于GPU当中时对数据进行一些操作,只在必要的情况下才将数据返回至CPU。

需要指出的是,和CPU类似,GPU的内存也是有限的。然而,与CPU不同,GPU不能在内存和硬盘之间交换数据。因此,你必须核实你希望保留在GPU当中的数据不会超出内存的限制,尤其是当用到大规模矩阵时。通过运行gpuDevice命令,可以查询GPU卡,获取信息比如名称,总内存以及可用内存。

采用MATLAB解波动方程

为将上述例子应用到具体的环境中,我们在一个实际的问题中实现GPU的功能。计算目标是解二阶波动方程。

当u=0时到达临界值。我们使用基于波谱法的算法解空间方程,使用基于二阶中心有限差分法的算法解时间方程。

波谱法通常用于解决偏微分方程。采用波谱法的解决方案接近连续基函数比如正弦和余弦的线性组合。在这个例子中,我们应用了切比雪夫波谱法,使用切比雪夫多项式作为基函数。

我们在每一个时间步长使用切比雪夫波普法计算当前解决方案的在x象限和y象限的二次导数。我们同时使用这些中间数值与旧的解决方案和新的解决方案,应用二阶中心有限差分法(也称为蛙跳法)计算新的解决方案。我们选择了保持蛙跳法稳定性的时间步长。

MATLAB算法是计算密集型的,当网格中元素的数目超过了计算解决方案的增长,算法的执行时间将显著增加。当在单个CPU上使用2048x2048的网格执行时,完成50个时间步长需要一分多钟。需要指出的是我们计算的时间已经包括了MATLAB内在的多线程性能优势。自从R2007a起,MATLAb的一些函数就支持多线程计算。这些函数自动在多线程上执行,并不需要在代码中显示指定命令去创建线程。

当考虑如何使用并行计算工具箱加速计算时,我们将关注每个时间步长所执行的计算指令代码。图3距离说明了为获取在GPU上运行的算法需要做出的改变。需要指出的是涉及MATLAB操作的计算指令、启用GPU的重载函数可以从并行计算工具箱获取。这些操作包括FFT,IFFT,矩阵乘法,以及各种元素明智(element-wise)操作。因此,我们不必改变算法就能够在GPU执行。只需要在进入每个时间步长计算结果的循环前使用gpuArray将数据转移到GPU当中。  #p#page_title#e#

 
图 3. 代码对比工具显示了CPU版本和GPU版本的差异。

CPU和GPU版本共享的代码超过了84%(在111行当中有94行)。

计算指令在GPU上执行后,我们将计算结果从GPU转移至CPU。被启用GPU的函数所引用的每个变量必须在GPU上创建或者在使用前转移到GPU上。

为将用于光谱分化的一个权重转变为GPUArray变量,我们使用

W1T = gpuArray(W1T);

某些类型的数组能够直接在GPU上构造,不用从MATLAB工作集转移。例如,为直接在GPU上创建全零矩阵,我们使用

uxx = parallel.gpu.GPUArray.zeros(N+1,N+1);

我们使用gather函数将数据从GPU中转移回MATLAB工作集;例如:

vvg = gather(vv);

需要指出的是这只是将一个数据转移至GPU,然后从GPU转移回MATLAB工作集。每个时间步长的所有计算指令都是在GPU上执行的。

关闭此页
上一篇:石油勘探与高性能计算深度应用
下一篇:基于CUDA的加速MATLAB计算研究

相关文章

  • 05/09Xeon6代+4块GPU--图灵超算工作站GT450M介绍
  • 05/09汽车风阻测试模拟分析、算法,及服务器/工作站计算设备硬件配置推荐
  • 04/26高频交易(HFT)应用分析、算法,服务器/工作站硬件配置推荐
  • 04/25衍生品定价与风险对冲应用分析、算法,及服务器工作站硬件配置
  • 04/25量化交易策略应用算法分析、服务器工作站硬件配置
  • 04/24金融风险管理应用算法分析、服务器/工作站硬件配置推荐
  • 04/19油藏模拟软件的算法分析以及图形工作站/服务器硬件配置推荐25v2
  • 04/17大型3D设计软件CATIA-算法分析与图形工作站硬件配置
  • 04/17Cadence EDA主要软件计算特点分析,服务器/工作站硬件配置推荐
  • 04/16Synopsys EDA主要软件计算特点分析,服务器/工作站硬件配置推荐

工程技术(工科)专业工作站/服务器硬件配置选型

    左侧广告图2

新闻排行榜

  • 1半导体器件模拟和工艺设计软件Sentaurus TCAD的硬件配置推荐
  • 2Cadence Virtuoso 软件计算特点与硬件配置推荐
  • 3史上最强大的--EDA/IC芯片/集成电路设计计算服务器存储集群配置方案
  • 4石油行业应用软件汇总
  • 5EDA(电子自动化设计)计算特点分析与图形工作站硬件配置推荐
  • 6简单组建linux集群及并行编译vasp过程
  • 7石油勘探与高性能计算深度应用
  • 8光刻机设计与制造的计算利器-UltraLAB工作站/存储硬件配置推荐
  • 9基于CUDA的加速MATLAB计算研究
  • 10芯片设计与高速图形工作站硬件配置推荐

最新信息

  • Cadence EDA主要软件计算特点分析,服务器/工作站硬件配置推荐
  • Synopsys EDA主要软件计算特点分析,服务器/工作站硬件配置推荐
  • 半导体先进封装研究、算法以及计算设备硬件配置推荐
  • 手机设计的重要环节分析、算法、工具软件以及工作站硬件配置要求
  • 芯片设计初创公司关键计算任务分析、软件以及服务器/存储硬件配置推荐
  • 芯片设计中的前仿真和后仿真计算特点与计算机硬件配置要求
  • 芯片设计主要环节计算特点分析、软件工具、计算设备硬件配置推荐
  • 史上最强大的--EDA/IC芯片/集成电路设计计算服务器存储集群配置方案

应用导航:

工作站产品中心 京东商城 中关村商城 淘宝商城 超高分可视化商城 便携工作站商城 ANSYS CATIA Microsoft INTEL NVIDIA 网站统计

公司简介-业务咨询-招聘英才-资料下载-UM-

本网站所有原创文字和图片内容归西安坤隆计算机科技有限公司版权所有,未经许可不得转载
陕ICP备16019335号 陕公网安备61010302001314号
Copyright © 2008-2023 , All Rights Reserved

首页
热线
商城
分类
联系
顶部