Re: [AMBER] Using Intel compilers on AMD CPU

From: Ross Walker <>
Date: Fri, 18 Mar 2011 09:09:43 -0700

Hi Bongkeun,

> I have a compiled amber11 with intel compilers on a GPU cluster.
> Recently we added new computing nodes with newer GPUs and AMD CPUs.
> I have two questions.
> 1. In my GPU cluster, I have computing nodes
> a) Intel CPUs and C1070 GPUs,
> b) Intel CPUs and C2070 GPUs,
> c) AMD CPUs and C2070 GPUs
> 260.19.44 version driver is installed in b and c ,
> and 260.19.12 is installed in a(newest driver cannot be installed in
> this node).
> How do I compile AMBER GPU?
> 1) can I compile AMBER once on the head node and use the single exec
> for al other node?

In principal yes. Assuming your NVCC version is the same on all nodes you
should be able to compile single versions of everything and use them across
nodes. This assumes the software environment for things like MPI are also
the same.

> 1-1) If so, is there any performance drawback on the newest GPU nodes?

There should not be - The driver might give you some loss but that would be
on a, not b/c.

> 1-2) I got this error on AMD CPU node from amber compiled by Intel
> compilers.
> ------------------------------------------------------
> Fatal Error: This program was not built to run on the processor in
> your system.
> The allowed processors are: Intel(R) processors with Swing New
> Instructions supp
> ort.
> ------------------------------------------------------

You need to tweak the settings used for the Intel compilers to make sure
they compile up multiple versions of the machine code, providing alternative
code paths when sse4 is not supported etc. Take a look at the compiler man
page. v10.1 and below this used to be the -ax.. flag. You could specify say,
-axWNP for generic code (-a) and vector code -x for W=SSE, N=SSE2, P=SSE3.
If the processor did not support SSE 3 it would drop to the SSE2 code or
ultimately to the generic code. This should all work fine on AMD chips, I
use them all the time. You might just have to tweak the config.h file to
ensure this. The syntax has changed post v10.1 so check the compiler man

> 2)if 1) is wrong, I think the only available compiler is GNU to share
> all exec on different nodes. How is this GNU compiler compared with
> the Intel?

You can also do this. It will make little difference in performance for the
GPU code but the CPU code will likely be 10 to 20% slower or so.

Good luck,

|\oss Walker

| Assistant Research Professor |
| San Diego Supercomputer Center |
| Adjunct Assistant Professor |
| Dept. of Chemistry and Biochemistry |
| University of California San Diego |
| NVIDIA Fellow |
| | |
| Tel: +1 858 822 0854 | EMail:- |

Note: Electronic Mail is not secure, has no guarantee of delivery, may not
be read every day, and should not be used for urgent or sensitive issues.

AMBER mailing list
Received on Fri Mar 18 2011 - 09:30:03 PDT
Custom Search