Hello .
What is exactly the status of the support of AMD Radeon/Hawaii GPU with pgi/14.10 ?
I have acquired a R290X card
R290X=Hawaii Proc = R9 Serie ( this proc is 1 year old now … )
The web say yes, this is supported :
AMD Radeon HD Graphics 7700 series
AMD Radeon HD Graphics 7800 series
AMD Radeon HD Graphics 7900 series
AMD APU Family with AMD Radeon HD Graphics R series (R7 and > R9> )
The compiler pgi/14.10 apparently say yes …
pgf90 --version
pgf90 14.10-0 64-bit target on x86-64 Linux -tp nehalem
→ As he does complain on unknow haaa target
pgf90 -Minfo=all -ta=radeon,> haaaa > hello_openacc.f90 -o hello_openacc_hawaii
pgf90-Error-Switch -ta with unknown keyword > haaaa
…
→ but not for hawaii
pgf90 -Minfo=all -ta=radeon,> hawai> i hello_openacc.f90 -o hello_openacc_hawaii
hello:
4, Generating create(a(:))
5, > Generating Radeon code
6, Loop is parallelizable
Accelerator kernel generated
6, !$acc loop gang, vector(32) ! global dim(0) local dim(0)
9, Generating update host(a(:))
…
but the ocl linker (= I suppose ) said NO :
pgf90 -Minfo=all -ta=radeon,> hawai> i hello_openacc.f90 -o hello_openacc_hawaii
… # here the previous info from the compiler part
pgocld-Error-Switch > -amd with unknown keyword > hawaii
-amd[=tahiti|devastator|capeverde|spectre]
Target AMD OpenCL
tahiti Target AMD Tahiti GPU
devastator Target AMD Devastator GPU
capeverde Target AMD Capeverde GPU
spectre Target AMD Spectre GPU
PGF90-F-0155-Compiler failed to translate accelerator region (see -Minfo messages): Device compiler exited with error status code (hello_openacc.f90: 1)
PGF90/x86-64 Linux 14.10-0: compilation aborted
If I compile for a generic radeon card -ta=radeon , I got the executable , but the results are completely wrong !
> cat hello_openacc.f90
program hello
real :: a(2)
!$acc data create(a)
!$acc kernels
a = 10.0
!$acc end kernels
!$acc update host (a)
print *,"HELLO" , A
!$acc end data
end
compilng for generic nvidia & radeon
> pgf90 -Minfo=all -ta=radeon,nvidia hello_openacc.f90 -o hello_openacc_mix
hello:
4, Generating create(a(:))
5, Generating Radeon code
Generating Tesla code
6, Loop is parallelizable
Accelerator kernel generated
6, !$acc loop gang, vector(32) ! global dim(0) local dim(0)
9, Generating update host(a(:))
On Nvidia OK
> ACC_DEVICE=nvidia hello_openacc_hawaii
HELLO 10.00000 10.00000
On radeon WRONG
> ACC_DEVICE=radeon hello_openacc_hawaii
HELLO 4.4815722E-38 0.000000
For the System part , I Have :
→ A Linux64 OpenSuse12.3
→ CUDA 6.5
→ AMD Driver with opencl support 14.41rc1 = the last one <=> linux-amd-14.41rc1-opencl2-sep19.zip
Thank you for any feedback ( I could change/downgrade the AMD driver )
Bye
Juan