首页/文章/ 详情

CUDA Fortran

3月前浏览5659

本文摘要(由AI生成):

本文介绍了NVIDIA推出的CUDA架构,它使GPU能处理复杂计算问题,推动并行计算发展。CUDA C和OpenCL是流行的GPU编程语言,但Fortran语言转换不可行。为解决此问题,PGI开发了CUDA Fortran语言,并在其编译器中提供支持。PGI提供商业版和社区版,后者虽无IDE但可在VS中编辑源代码并通过命令行编译。最新版本PGI 19.4需与VS 2017配合,为Fortran开发者提供GPU运行途径,对科研和工程计算领域有重要意义。

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。2007 年以来,以NVIDIA GPU为代表的加速器并行计算开始兴起。目前流行的GPU通用编程语言是CUDA C和OpenCL. 它们均是C/C++语言的扩展,因此可以方便地将C/C++代码移植到 GPU 上。但对于科学与工程计算中的重要编程语言Fortran,无法直接地改写为 CUDA C或 OpenCL。

为使Fortran应用能够使用GPU加速,The Portland Group设计了CUDA Fortran 语言,并在自家的PGI fortran编译器中支持。气象、理论物理等领域的应用代码经过简单的改造,就能够利用GPU的强大计算能力。到目前为止,只有PGI Fortran编译器支持CUDA Fortran架构。

PGI fortran编译器可从官网下载使用,商业版PGI同intel 的编译器一样集成visual studio作为IDE,免费的社区版不能使用IDE,只能通过命令行编译,但是vs还得安装,PGI需要visual studio组件支持。你也可以用visual studio编辑源代码,命令行编译,只不过CUDA关键字不能高亮显示。当然,使用命令行就不能不提makefile了。最新版PGI 19.4需要配套安装vs 2017

社区版下载链接

https://www.pgroup.com/products/community.htm

参考资料:

来源:数值分析与有限元编程
通用理论气象Unity
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-02
最近编辑:3月前
太白金星
本科 慢慢来
获赞 2粉丝 4文章 304课程 0
点赞
收藏
作者推荐
高斯消去法的算法改进

本文摘要(由AI生成):本文介绍了高斯消去法的改进算法,该算法相比传统算法只需一重循环,从而大大提高了计算效率。通过特定的数组形式A=A-B*C来表述消元过程,并展示了详细的计算步骤。通过算法验证,得到方程组的解为x=[1,2,3],并展示了自编程序的计算结果。此外,文章还提及了Fortran中spread函数的用法,并探讨了该算法中spread函数效率的问题。最后,文章还提到了往期相关的高斯消去法解线性方程组及其在MATLAB和Python中的实现。高斯消去法的过程如图所示其中括号内的数字表示对该行处理的次数,比如第三列,该列中的第一个元素没有变化,第二个元素处理了一次,第三个元素处理了两次,处理的过程为现将这个过程写成数组形式 A=A-B*C,于是就有了下列算法:同传统算法相比较,改进算法只需一重循环,大大提升了效率算法验证这个方程组的解为x=[1,2,3]自编程序计算结果为:PS: Fortran中的spread函数用法。假定一个二维数组AA(1, 2:4)是一个一维数组[12 13 14],spread(A(1, 2:4),1,2)就是如下的二维数组spread(A(2:3, 1),2,3)就是如下的二维数组spread(A(1, 2:4),1,2)*spread(A(2:3, 1),2,3)的结果就是该算法的瓶颈就是spread函数的效率究竟如何?当然,任何事情都有其两面性。鱼和熊掌不可兼得。☆☆☆ 往期相关 ☆☆☆高斯消去法解线性方程组及MATLAB实现高斯消去法解方程组及Python实现来源:数值分析与有限元编程

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈