Please bear with me if this is obvious - I wouldn’t describe myself as an expert in compilers or with Fortran by any stretch of the imagination.
As a part of evaluating whether CUDA would suit my needs, I tried just dropping one of the matrix multiplication routines (say, here http://geco.mines.edu/software/pg10/gpu/pgicudaforug.pdf) into my code suite and see what happens. I’m having difficulty compiling though.
Normally my code is arranged in modules by file, so would have a file named mod1.f90:
module mod1 !lblah blah blah end module mod1
And then test.f90 containing:
program test use mod1 end program test
Which I compile using
ifort -c mod1.f90 ifort -c test.f90 ifort -o test mod1.o test.o
Simple right? Now if I have a cuda fortran module named, say cmod1.cuf:
module cmod1 use cudafor !lblah blah blah end module cmod1
I try compiling:
pgf90 -c cmod1.cuf ifort -c test.f90 ifort -o test cmod1.o test.o
test.f90(4): error #7013: This module file was not generated by any release of this compiler. [cmod1]
When trying to compile test.f90. So ifort doesn’t like pgf90 compiled modules? Do I have to compile everything with pgf90, because our suite uses some ifort specific things.
(Sorry if this was incredibly verbose, I just wanted to be clear :)).