Can we use a large derived type over 2GiB Sizes?

Dear all,

I am working on an HPC program on an NVIDIA system.
The program has been used for many years with Fortran from a non-NVIDIA provider, combined with CUDA C/C++ to use GPU accelerator cards.

Now I have to use nvfortran for the Fortran part. I encountered a segmentation fault error while working with a large dataset.
More specifically, the error occurs when accessing a derived type variable that contains a tower of multi-rank arrays of large data size over 2GiB.

So my question is, can we use a large derived type over 2GiB Sizes ?
I used the compiler option -mcmodel=medium.
To answer this question, I wrote a test program and attached it below.
Best,
Ken-Ichi
TEST_LARGE_DERIVED_TYPE.tar.gz (3.5 KB)

Thanks Ken-Ichi. I’ve filed this one as TPR #37539.

I don’t have a good work around for you. Possibly instead of having fixed size arrays, make them all allocable. I believe what’s happening is because the structure is one very large 5.6GB object, the offset when ieo goes to the second index overflows. Then again, the medium or large memory model should account for this, so could off a bit on my analysis.

Dear Mat,

Thank you for checking this issue. I hope this will be resolved in the next version of nvfortran.
Best,
Ken-Ichi