Compilation for Tesla P100

I perform compilation with option -ta=tesla:cc60 recommended by pgaccelinfo tool. I get the following error message

function: plate
line: 275
Current region was compiled for:
NVIDIA Tesla GPU sm60
Available accelerators:
device[1]: Native X86 (CURRENT DEVICE)
The accelerator does not match the profile for which this program was compiled

The pgaccelinfo tool yields

CUDA Driver Version: 8000
NVRM version: NVIDIA UNIX x86_64 Kernel Module 367.48 Sat Sep 3 18:21:08 PDT 2016

Device Number: 0
Device Name: Tesla P100-PCIE-16GB
Device Revision Number: 6.0
Global Memory Size: 17066885120
Number of Multiprocessors: 56
Concurrent Copy and Execution: Yes
Total Constant Memory: 65536
Total Shared Memory per Block: 49152
Registers per Block: 65536
Warp Size: 32
Maximum Threads per Block: 1024
Maximum Block Dimensions: 1024, 1024, 64
Maximum Grid Dimensions: 2147483647 x 65535 x 65535
Maximum Memory Pitch: 2147483647B
Texture Alignment: 512B
Clock Rate: 405 MHz
Execution Timeout: No
Integrated Device: No
Can Map Host Memory: Yes
Compute Mode: default
Concurrent Kernels: Yes
ECC Enabled: Yes
Memory Clock Rate: 715 MHz
Memory Bus Width: 4096 bits
L2 Cache Size: 4194304 bytes
Max Threads Per SMP: 2048
Async Engines: 2
Unified Addressing: Yes
Managed Memory: Yes
PGI Compiler Option: -ta=tesla:cc60

Many thanks in advance,
Andrey

Hi Andrey,

The error message typically means that the OpenACC runtime isn’t able to find the system’s libcuda.so. Though since pgaccelinfo finds it, I’m not sure why your binary doesn’t.

Is “libcuda.so” in a not default directory? If so, can you set the LD_LIBRARY_PATH to this directory?

Is there any difference in the environment or how you’re running your binary and pgaccelinfo? How is the binary linked?

-Mat

Hallo Mat

There is no difference in environment for running pgaccelinfo and my application. The libcuda.so is in default directory, I tried to set LD_LIBRARY_PATH to the “libcuda.so” directory but it did not help as well.
I tried compilation with options -ta=tesla:cuda8.0 and -ta=tesla:cc60 but I got the same error. /pgfortran -acc -ta=tesla:cuda8.0 -o test test.F90/
I perform compilation at one computer and run the application at another one, could it be the problem? For m60 graphic card, it works.

Andrey

I perform compilation at one computer and run the application at another one, could it be the problem?

Possible. Do you have the PGI runtime libraries copied over to the second system as well?

-Mat

Yes. We did it. We installed PGI 16.10 on both systems.