How to use compute capability 5.0 cards by PVF 13.9

I use a Geforce GTX 850M, the compute capalibity of which is 5.0. The CUDA Fortran and OpenACC compiler I used is PGI Visual Fortran 13.9. I use Windows 7 64-bit OS.

The exe compiled and run successfully previously in cc less and equal than 3.5 can not run on this card.

By the way, I have updated the driver to the newest one (337.88).

Can I use this card and PVF 13.9 together? How to use them?

Thank you very much!

Nightwish

Hi Nightwish,

What’s the actual error that’s preventing the code to run?

  • Mat

Hi Mat

I have check all gpu-based exes and find that CUDA Fortran exe can run. The error is caused by the OpenACC. The OpenACC code can compile successfully but can not run on Geforce GTX 850 M card.

The error message is:

Accelerator Fatal Error: No NVIDIA/CUDA version of this construct available for the current device

Hi Nightwish,

Try compiling with “-Mcuda=nordc -ta=tesla:nordc”.

The Maxwell architecture uses a different ABI that’s not compatible with the fat binary that gets created when linking with relocatable device code. Without RDC, we can imbed PTX into the binary which the CUDA driver may then JIT compile to target this new architecture.

  • Mat

Hi, Mat

Thank your for your reply!

I use the PVF 13.9 and don’t know how to use the command line to compile. So I use PVF to set the compilation options.

I set the “Fortran-Language-CUDA Fortran Generate RDC” to No, and set the “Fortran-Target Accelerator” to Yes, and set the “Fortran-Target Accelerator-NVIDIA: Compute Capability” to Mannual, and set the “Fortran-Target Accelerator-NVIDIA: Compute Capability-NVIDIA: Tesla” to Yes.

These can be compiled successfully, but can not run with the same error previously I listed.

Do I set the compilation options properly? How can it run?

Nightwish

Do I set the compilation options properly? How can it run?

The only thing left to try is setting the compute capability to 3.5, to remove the multiple target compilation. Maxwell is a very new and different architecture. It’s not designed for compute but rather just graphics. Hence, it’s not something we test on. I’m hoping it would have “just worked” for you, but there’s not much I can do, at least in the short term, if it doesn’t.

Sorry,
Mat

Thank you Mat!

I try to fix the cc to 3.5. It can compile, but still can not run with the same error message.

Nightwish

It’s lucky that CUDA Fortran is supported by Maxwell.