MuJoCo 1.50 requires processor with AVX

Discussion in 'Bug Reports' started by ixjlyons, Aug 1, 2017.

  1. I have gotten MuJoCo 1.31 and 1.40 running on Linux, but 1.50 doesn't seem to work:

    Code:
    [kenny@kalman bin]$ export LD_LIBRARY_PATH=.
    [kenny@kalman bin]$ ./simulate ../model/humanoid.xml
    Illegal instruction (core dumped)
    
    Running it in a debugger let's us see the offending instruction:

    Code:
    [kenny@kalman bin]$ gdb -q simulate
    Reading symbols from simulate...(no debugging symbols found)...done.
    (gdb) run
    Starting program: /home/kenny/.mujoco/mjpro150/bin/simulate
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    
    Program received signal SIGILL, Illegal instruction.
    0x0000000000401eb5 in main ()
    (gdb) x/i $pc
    => 0x401eb5 <main+21>:  vcvtsi2sd %eax,%xmm0,%xmm0
    (gdb)
    
    A bit of searching for "vcvtsi2sd" brought up this stackoverflow question: https://stackoverflow.com/q/42283962

    The top comment there points out that this instruction requires a CPU with AVX and unfortunately my CPU is a bit too old (about 2010). It might be a matter of changing compiler flags, but you probably don't want to 1) sacrifice the improved performance with AVX or 2) ship several builds for Linux. If that's the case and my laptop is just too old to run the latest and greatest MuJoCo, that's fine -- a note in the docs would be helpful though.
     
  2. Emo Todorov

    Emo Todorov Administrator Staff Member

    Indeed, 1.50 requires a processor with AVX instructions. This is mentioned in the release notes, but maybe it deserves a more prominent notice.