@b0358manbou
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Q&A

jetson nanoでcuda(Fortran)プログラムを実行しましたが、結果が正しくありません。

Jetson Nanoを使って、下記の様なCUDAプログラム(Fortran)を実行してみました。HPCのバージョンは20.7、CUDAは10.2です。単純に値を2倍にするプログラムですが、結果は元の値のままです(a=2と記述しているので、結果は4になるはずですが、2のままです)。
この他にも、<<<>>>でカーネルを呼び出すプログラムを書いてみたのですが、何となく、カーネルを呼び出されていないように感じます(なにも結果が表示されなかったり、例えば下記プログラムの場合は値がそのままだったり、という事です)。
$nvfortran sample.cuf
$./a.out
・・・・・で下記のプログラムをコンパイル・実行しています。コンパイルはエラー等無く通っています。オプションで -Mcuda などとありオプションもいろいろ試してみましたが変わりませんでした。

module kernel
  implicit none
   contains
   attributes(global) subroutine doublify(a)
   implicit none
   integer,intent(inout) :: a(:)
     a = a*2
   end subroutine doublify
end module kernel

program main
   use kernel
   use cudafor
   implicit none

   integer :: a
   integer,allocatable,device :: dev_a(:)
   integer :: stat

    a = 2
    stat = cudaMalloc(dev_a,1)

    stat = cudaMemcpy(dev_a, a, 1, cudaMemcpyHostToDevice)
      call doublify<<<1,1>>>(dev_a)
    stat = cudaMemcpy(a, dev_a, 1, cudaMemcpyDeviceToHost)

    print *,a

stat = cudaFree(dev_a)

end program main

いろいろいじってみましたが、結果は変わらずです。
皆様、宜しくお願い申し上げます。
(先程、誤って意見交換で投稿してしまいました。御教示の程、宜しくお願い致します)

0
1
Answer
0
ありがとうございます。実行してみます。
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした