【问题标题】:Cuda Fortran Device variable initialisation scopeCuda Fortran 设备变量初始化范围
【发布时间】:2017-05-05 03:16:16
【问题描述】:

如果我在子例程中创建一个变量以在设备上运行,默认情况下它是本地范围吗?因此只能由每个单独的线程访问?

例如,在以下情况下 y 是否是本地范围?

module exampleMod
contains
  attributes(global) subroutine exampleSub(x)
    implicit none
    real :: x
    real :: y
  end subroutine exampleSub 
end module exampleMod

是否需要另外指定为“设备”?

【问题讨论】:

    标签: cuda fortran


    【解决方案1】:

    在没有有效属性的情况下(例如shared),您在global 子例程中声明的任何变量都将具有线程本地范围。

    【讨论】:

    • 您知道导致 cuda fortran 中的变量在设备上突然切换为零值的常见原因或错误吗?
    • 没有。如果您发现了错误,请制作演示案例并报告给 PGI
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2013-02-13
    • 2013-07-21
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多