zoukankan      html  css  js  c++  java
  • OpenAcc笔记——update

     1         program main
     2         use omp_lib
     3         use openacc
     4         implicit none
     5         
     6         real,allocatable:: v1(:)
     7         integer length, idx
     8         
     9         call acc_set_device_num(2,acc_device_nvidia)
    10         length = 1024!*1024!*1024
    11         allocate(v1(length))
    12         v1(1:length) = 0.0
    13         !使用data语句,将数据copy到device上
    14         !$acc data copy(v1(1:length))
    15         call add1(v1, length) !子程序在device上执行
    16         
    17         !print只能cpu实行,所以讲数据update到cpu上
    18         !$acc update host(v1(1:5))
    19         print*, "v1(1) = ", v1(1:5)
    20         !下面是在cpu上执行
    21         do idx = 1,length
    22         v1(idx) = v1(idx) + 10
    23         enddo
    24         print*, "v1(1) = ", v1(1:5) !直接打印出cpu上的结果
    25         
    26         !将cpu上的执行结果update到device上
    27         !$acc update device(v1(1:5))
    28         call add1(v1, length)
    29         
    30         !上面子程序在device上执行完,update到本地输出
    31         !$acc update host(v1(1:5))
    32         print*, "v1(1) = ", v1(1:5)
    33         !结束
    34         !$acc end data
    35         
    36         deallocate(v1)
    37 
    38         end program 
    39         
    40         subroutine add1(vec, length)
    41         use openacc
    42         implicit none
    43         integer, intent(in)::length
    44         real, intent(inout) :: vec(1:length)
    45         integer idx
    46         !$acc parallel loop present(vec(1:length))
    47         do idx = 1, length
    48             vec(idx) = vec(idx) + idx
    49         enddo
    50         end subroutine

  • 相关阅读:
    CF101B Buses
    CF1C Ancient Berland Circus
    学习笔记 莫比乌斯反演简单整理
    P3768 简单的数学题
    P2508 [HAOI2008]圆上的整点
    CF19E Fairy
    P1295 [TJOI2011]书架
    CF1148B Born This Way
    CF13E Holes
    CF1148C Crazy Diamond
  • 原文地址:https://www.cnblogs.com/dalanjing/p/9068663.html
Copyright © 2011-2022 走看看