6 Replies Latest reply on Dec 22, 2011 7:02 AM by santosh.zanjurne

    "no such instruction" error when compiling HPL with Open64 version 4.2.5.2

    ppokorny@penguincomputing.com
      Problems compiling on Red Hat 5.7 with Open64 4.2.5.2 for bdver1

      I'm trying to use X86 Open64 version 4.2.5.2 to compile HPL 2.0 for an FX series processor.

      The OS is Red Hat 5.7.  I previously had a FX 965 Black Edition processor in this system and compiled HPL 2.0 with ACML and Open64 without problems.

      I replaced the CPU with the latest FX (Bouldozer based) CPU and now when I try and recompile HPL, it fails with:

      make[2]: Entering directory `/home/penguin/bdver1/hpl-2.0/src/auxil/Linux_Open64_ACML'
      /opt/x86_open64-4.2.5.2/bin/opencc -o HPL_dlacpy.o -c   -I/home/penguin/bdver1/hpl-2.0/include -I/home/penguin/bdver1/hpl-2.0/include/Linux_Open64_ACML -I/opt/acml5.0.0/open64_64/include -I/usr/lib64/openmpi/1.4-gcc/include -W -Wall -O3 -OPT:Ofast  ../HPL_dlacpy.c
      /tmp/ccspin#.DVSDvP.s: Assembler messages:
      /tmp/ccspin#.DVSDvP.s:65: Error: no such instruction: `vzeroupper '
      /tmp/ccspin#.DVSDvP.s:197: Error: no such instruction: `vmovsd -104(%rbx,%r10,1),%xmm11'
      /tmp/ccspin#.DVSDvP.s:198: Error: no such instruction: `vmovsd -112(%rbx,%r10,1),%xmm13'
      /tmp/ccspin#.DVSDvP.s:200: Error: no such instruction: `vmovsd -120(%rbx,%r10,1),%xmm14'
      /tmp/ccspin#.DVSDvP.s:202: Error: no such instruction: `vmovsd -128(%rbx,%r10,1),%xmm15'
      /tmp/ccspin#.DVSDvP.s:204: Error: no such instruction: `vmovsd %xmm11,-104(%rbp,%r10,1)'
      /tmp/ccspin#.DVSDvP.s:205: Error: no such instruction: `vmovsd -104(%r11,%r10,1),%xmm7'

      And so on.

       

      I've tried explictly adding "-march=bdver1" to the CCFLAGS, but no change.  I've tried adding "-mno-avx" and "-mno-fma4" and that silences the "no such instruction" error, but now "gcc" segfaults:

      make[2]: Entering directory `/home/penguin/bdver1/hpl-2.0/src/auxil/Linux_Open64_ACML'
      /opt/x86_open64-4.2.5.2/bin/opencc -o HPL_dlacpy.o -c   -I/home/penguin/bdver1/hpl-2.0/include -I/home/penguin/bdver1/hpl-2.0/include/Linux_Open64_ACML -I/opt/acml5.0.0/open64_64/include -I/usr/lib64/openmpi/1.4-gcc/include -W -Wall -O3 -OPT:Ofast -mno-avx -mno-fma4  ../HPL_dlacpy.c
      opencc INTERNAL ERROR: /opt/x86_open64-4.2.5.2/open64-gcc-4.2.0/bin/gcc died due to signal 11
      make[2]: *** [HPL_dlacpy.o] Error 1

      And the kernel reports:

      gcc[22275]: segfault at 0000000008cd300c rip 0000000008054df3 rsp 00000000ff856ae8 error 4
      gcc[22508]: segfault at 0000000008cd300c rip 0000000008054df3 rsp 00000000fff13368 error 4
      gcc[22711]: segfault at 0000000008cd300c rip 0000000008054df3 rsp 00000000ffdae118 error 4

      after three attempts.

      NOTE that Red Hat 5.7 does not support AVX or FMA4 and disables those bits in the processor flags.

      vendor_id       : AuthenticAMD
      cpu family      : 21
      model           : 1
      stepping        : 2
      flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc nonstop_tsc pni ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy altmovcr8 abm sse4a misalignsse 3dnowprefetch osvw ibs