Hi, is there a way to confirm which memory mode is used during a build?
We have this table of what the memory mode should be based on new and deprecated flags (HPC Compilers User's Guide Version 24.7 for ARM, OpenPower, x86), but we’ve got some legacy code that is behaving strangely and it would help us debug our memory issues. We’re using -Minfo=accel, but that’s not providing the memory mode.
Thank you!
Sorry but I’m not 100% clear on the question. Are you asking which memory mode is used by default, i.e. when you don’t explicitly add one of these flags to the compiler flags?
If so, it depends on the parallel programing model being used.
For the directive models, OpenACC and OpenMP Target, the default is “-gpu=mem:separate”, meaning that data management is handled explicitly via the data directives in the program.
Though for Standard Language Parallelism (STDPAR) in C++ and Fortran, they don’t have methods to explicitly managed discreate memories so the runtime needs to implicitly handle the data management. Hence the default for STDPAR is “-gpu=mem:managed” unless you’re on an NVIDIA Grace system, in which the default is “-gpu=mem:unified”.