Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28381 Discussions

Intel Fortran support for AMD Athlon Silver 3050U

Kevin_McGrattan
1,968 Views

A college class is using software that my organization develops. It is a computational fluid dynamics program compiled with Intel Fortran 19u4, Intel MPI, MKL libraries, OpenMP. We've been releasing this software for 20 years and it runs on Windows, Mac, and Linux. Recently, some complaints have come in about the code not running with AMD processors, in the most recent example, the AMD Athlon Silver 3050U chip which was just released in Jan 2020. We do not use any special options specific to any architecture, and I assume that means that we should be compatible with SSE2. Does anyone have any similar experience running big, floating-point intensive Fortran/MPI/OpenMP codes on AMD?

1 Solution
Steve_Lionel
Honored Contributor III
1,857 Views

If the program runs but is just unresponsive, I wouldn't pursue the Event Viewer. I suggested that back when you said the program didn't run at all. 

I am wondering if there is an MPI issue at work here. I have no idea how to debug MPI, but there is a whole other forum here devoted to that.  Or... at least there used to be. In the new forum hierarchy, I can't find it. Oh, how intuitive. It's Intel® oneAPI HPC Toolkit

I suggest you discard the notion that it is CPU-related, as there's no evidence of that.

View solution in original post

0 Kudos
12 Replies
Steve_Lionel
Honored Contributor III
1,954 Views

What does "not running" mean? Is there some error message? If you are not using -x or /Qx, then there should be no issues at all.

The only thing I can think of is that, maybe, some FP instruction on this processor model delivers different results than on other processors, and the code is sensitive to that. In the 15 years I worked for Intel in compiler support, I never once heard a complaint that a generically compiled program failed to run on AMD processors.

0 Kudos
Kevin_McGrattan
1,934 Views

No error message. The application just doesn't run. The odd thing is that the only people in the class who can run our program have AMD. Sorry that I can't provide more info. We're not using any -x options. We do use -ipo, and we do link to the Intel MPI libs and MKL and OpenMP. 

Yes, a processor might return different results, but that usually just ends up in some seg fault or similar error. In this case, the program just hangs.

I have a support ticket in on this as well. but unfortunately I'm not really able to provide much more info other than the code just doesn't run. 

0 Kudos
Arjen_Markus
Honored Contributor I
1,918 Views

Could it be that some DLL is missing in the installation on these AMD machines? I have seen this behaviour when some runtime DLL could not be found. No error message in the command window or a message box, the program simply stops immediately. If you start it from a file manager like Windows Explorer you may get a somewhat informative message box, but you can also use tools like Dependency Walker.

0 Kudos
Kevin_McGrattan
1,903 Views

Thanks for the info. We distribute the Intel run-time libs with our compiled executable. Would an AMD processor need something in addition to these. I'll look into the Dependency Walker. Never heard of if, but I'll see if it helps.

0 Kudos
Steve_Lionel
Honored Contributor III
1,887 Views

"Doesn't run" - you mean they start the program and it silently exits? This has nothing to do with the compiler. I have seen occasional reports of this symptom caused by programs with too much (close to or over) 2GB code and static data, which Windows can't handle. It can also be that antivirus software thinks the program is suspicious and kills it.

I would have them check the Windows event log for application errors from that program name and see what is there.

I doubt missing DLLs are the issue, as Windows would definitely complain about those.

Kevin_McGrattan
1,882 Views

What I am hearing from the students is that the program just hangs, producing no output. The test case is fairly small, so I don't think memory is the issue. I'll see if they can find the event log. Thanks.

0 Kudos
Steve_Lionel
Honored Contributor III
1,880 Views

Ah, that is different from "not running". Does this program look for input from the terminal? Does Task Manager show it is using a lot of CPU time?

The description of the symptoms keep shifting, so it's hard to provide you with useful tips.

0 Kudos
Kevin_McGrattan
1,875 Views

Sorry, I am getting the info second hand myself. I guess what I'm looking for is a way to diagnose the problem. You mentioned event logs. If I open the Windows Event Viewer, where would a command line application that does not run show up? Under "Windows Logs > Application"?

0 Kudos
Greg_T_
Valued Contributor I
1,872 Views

Hi Kevin,

When one of our programs runs with strange behavior, such as the "hang up", I'll ask clients how they are starting the program.  Are they using a double-click on a desktop short cut, or from the Start menu, or a double-click on the exe in the install directory?

I'll also ask clients to open a console (CMD) window, change directory to the install directory, then type in the exe name to start the program.  Sometimes the console window may report error messages that are not seen elsewhere.

Regards, Greg T.

0 Kudos
Kevin_McGrattan
1,865 Views

Normally our users run the program from the command line:

fds input_file.txt

where fds is the name of our exe, and there is a environment variable that sets the path to the installation directory. With recent versions of the Intel compiler, we must do

mpiexec -n 1 -localonly fds input_file.txt

because we use MPI to run across computers, but many still run on a single computer, hence the -localonly option. Normally, when things go wrong, we get at least some error statement, even if its not readily understood. In this instance with the Athlon processor, nothing is written out good or bad, and the user just control Cs out of it. I'm trying to figure out a way to figure out what is going on. Trouble is, I don't have an AMD computer and I can't play around with debugger options. 

0 Kudos
Steve_Lionel
Honored Contributor III
1,858 Views

If the program runs but is just unresponsive, I wouldn't pursue the Event Viewer. I suggested that back when you said the program didn't run at all. 

I am wondering if there is an MPI issue at work here. I have no idea how to debug MPI, but there is a whole other forum here devoted to that.  Or... at least there used to be. In the new forum hierarchy, I can't find it. Oh, how intuitive. It's Intel® oneAPI HPC Toolkit

I suggest you discard the notion that it is CPU-related, as there's no evidence of that.

0 Kudos
Kevin_McGrattan
1,852 Views

Yes, you're probably right. There has been a change in functionality in the past revision cycle of Intel Fortran and MPI. Used to be that we could just run our program at the command line, but now we must invoke mpiexec. This might have something to do with it. 

Thanks for your help.

0 Kudos
Reply