ITPub博客

首页 > IT职业 > IT生活 > ZT - 怎样提高调用数学函数的程序的性能(2)

ZT - 怎样提高调用数学函数的程序的性能(2)

原创 IT生活 作者:saintsiro 时间:2010-08-08 18:44:08 0 删除 编辑

什么是自动化向量?

自动化向量技术是一种过程,在这个过程中 IBM XL C/C++ 或者 Fortran 汇编器会识别一个机会,去改善汇编过程中程序的性能,方法就是将对一次循环中一个标准库(C/C++ 库或者 Fortran 本质)的访问替换为对相应 MASS 向量函数的访问。因为 MASS 向量函数要比对一个标准库函数的重复访问快很多(倍数接近 30 倍),所以最后得到的性能改善效果将会是惊人的。

一个简单的例子就是为多个论断计算特定函数的循环,例如接下来的 Fortran 程序。

subroutine sub (y, x, n)
    real*8 y(*), x(*)
    integer n, i
    intrinsic exp
    do i=1,n
        y(i) = exp(x(i))  ! standard intrinsic
    end do
end subroutine

有了适当的汇编器选项,汇编器就会意识到机会去给程序加速,方法就是将对 exp() 的重复访问替换为相应的 MASS 向量函数 vexp(),结果会产生一个程序,好像最开始是这样写成的这样:

include 'massv.include'
subroutine sub (y, x, n)
    real*8 y(*), x(*)
    integer n
    call vexp (y, x, n)  ! MASS vector function
end subroutine

这只是一个简单的范例,演示了自动向量化背后的基本思想。XL 汇编器实际上能够识别更加复杂的机会,并在需要的条件下重新安排源程序中的指南,以创建自动向量化的机会。

在本文中的范例研究部分中,会检查一个更加复杂和实际的范例。

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16896827/viewspace-1036475/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    30
  • 访问量
    13375