Different behavior between Windows and Linux


Can you suggest me some check lists to go over when same code with same compile and link option shows different behavior between Windows and Linux?

On Windows the code behaves in a way that I intended, but on Linux it doesn’t.


That’s a bit to broad of a question. Can you please be more specific?

Is the different behavior in the compilation, link, runtime, results? GPU, CPU, both? Can you describe the behavior?


For some cases the results are different, and for other cases segmentation fault occurs in the GPU kernel on Linux side only.

I’m using pinned memory.

Without more detail it’s very difficult to give a good answer. Though a segv is on the host side, so this could be a case of how the data is being layed out. If you have an out-of-bounds error or some other memory issue in your code you may be stomping on memory that’s used by another variable on Linux but is ok on Windows.

Can you try running your code under Valgrind (www.valgrind.org) to see if it finds any memory errors?

Are you using OpenACC? If so, does the error still occur when you run without OpenACC?