Как узнать, что мой код работает на CPU или GPU? - PullRequest
0 голосов
/ 06 апреля 2020

Я новичок в OpenA CC. Я хочу ускорить мою программу, используя OpenA CC на фортранском языке с компилятором G CC. мой код:

Program Test

 use openacc

 Implicit None
  integer(8)::I1,I2,I3,I4,I5,I6,I,ii,jj,J

    !$acc kernels
    !$acc loop
     do I=1,1200000000
     do II=1,300
     do jj=1,200
     do I1=1,200
    do I2=1,500
     if(I2==20.and.I1==200.and.JJ==200.and.II==200)then
     print*,"Hello"
     endif
      Data1(I)=I-I+I-I+I
      enddo
      enddo
       enddo
        enddo
         enddo

          !$acc end kernels
            end

скорость моего кода не изменилась. Как я могу узнать, что мой код выполняется на процессоре или графическом процессоре? Или Как я могу изменить свой код, чтобы ускорить мою программу?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2020

Вы также можете контролировать свою работу с помощью команды nvidia-smi (при использовании графического процессора NVidia).

Может быть, что-то связано с выгрузкой параметров компиляции? https://gcc.gnu.org/wiki/Offloading#Compilation_options

0 голосов
/ 06 апреля 2020

Я нашел решение, чтобы узнать, работает ли код на хосте или целевом устройстве. Решением является использование функции acc_on_device (acc_device_host)). Если код выполняется на хосте, эта функция возвращает true, а если код выполняется на целевом устройстве, эта функция возвращает False. Мой код работает на хосте (CPU). Но другой вопрос, почему этот код не работает на целевом устройстве (GPU)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...