About PGI Fortran and CUDA 4.0

Hi Mat,

My Motherboard is ASUS P6X58D, GTX590 and GTX460 are installed in PCIe_1 and PCIe_2 slots respectively, thus P2P should work…

I’ve installed PGF V11.7, but it did not solve the problem

Hi Mike,

I’m not sure then but it sounds more of a problem with the devices rather then CUDA Fortran. Just to double check, you are using the “-Mcuda=cuda4.0” option? P2P is only available in CUDA 4.0 and “-Mcuda” defaults to CUDA 3.2. Also make sure you are running a CUDA 4.0 device driver. (Though P2P between the 590s shouldn’t work if you didn’t have either of these so I doubt this is the problem.)

Another thing that i would like to point is that Simple p2p test provided by Nvidia says that GTX 590 doesn’t support p2p, meanwhile your p2p code works.

Did you remove the check for Tesla before running? If not, then can you try this example again and first remove this check?

My contact at NVIDIA told me that the consumer Fermi based cards should support P2P. Though, I’m wondering if this is only true on the newer cards.

  • Mat

Unfortunately, I have never used C language, thus i have no idea what to change in the source file. Could you please make the required changes, compile an executable file and send it to me? I’m really sorry for this :(

My OS is Win XP x64

Hi Mike,

You should be able to just change lines 100-102 from:

        // Only Tesla boards based on Fermi can support P2P
        if ((!STRNCASECMP( prop[i].name, "Tesla",  5 ))
           && (prop[i].major >= 2)

to

        // Only Tesla boards based on Fermi can support P2P
        // if ((!STRNCASECMP( prop[i].name, "Tesla",  5 ))
        //   && (prop[i].major >= 2)
           if  ((prop[i].major >= 2)

Granted, I didn’t test this but it should work around the check.

  • Mat

I’ve compiled the edited version of SimpleP2P test by NVIDIA, but it says P2P works just inside GTX590. Looks like i have hardware problem…

I’ll proceed more tests with other motherboards and GPUs and report my results