Fortran Coder

查看: 1195|回复: 0

[并行] 这种子程序怎么改造成cuda fortran的kernel?

[复制链接]

80

帖子

26

主题

0

精华

专家

F 币
280 元
贡献
150 点
发表于 2023-8-30 20:41:24 | 显示全部楼层 |阅读模式
想把原来在CPU下运行的子程序,改造成CUDA FORTRAN里的kernel。遇到一些问题,想请教大侠指点下。


原来的程序把变量定义在一个module里,其中还用save定义了一些全局变量。想要改造的这个子程序中用到了不少这些全局变量,有几十个。子程序开头use variables来使用这些全局变量,varialbes是存放这些变量的module。


现在把子程序改造成kernel时就有点麻烦。这些全局变量是由CPU先计算好,然后调用kernel。如果把这些全局变量先传递到device上的相应数组,然后调用这个kernel,那么这个kernel的参数列表就将会很长。最重要的是,这些全局变量在CPU里已经计算好,不再变化,调用kernel也不会导致它们变化。kernel需要被反复调用数百次,每次调用时都有这些参数,感觉太影响效率。不知道有没有遇到这种问题的,是如何解决的呢?非常感谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-7-21 08:24

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表