Assembler error

Hi,

I am trying to compile Shark machine learning library for Intel Xeon CPU E5-2620 V3 using PGI OpenAcc. I am getting these assembler errors. Any idea how to fix this?
Thanks,

OS: RED HAT Enterprise Workstation
OpenACC Toolkit 2015

compilation command line:
pgc++ -I/usr/local/include/ -I/opt/Shark/include/ -DNDEBUG -DBOOST_UBLAS_NDEBUG -O3 -L/home/jooya/Shark/lib -lshark -lboost_serialization -lboost_system -lboost_filesystem -lboost_program_options NN_Shark.cpp -c

errore generated:

/tmp/pgc++ZKuezQrm9skk.s: Assembler messages:
/tmp/pgc++ZKuezQrm9skk.s:4973: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:5005: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:5050: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:5090: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:6082: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:6114: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:6159: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:6199: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:170932: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:170964: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171009: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171049: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171132: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171164: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171209: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171249: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171331: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171363: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171408: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171448: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171529: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171561: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
/tmp/pgc++ZKuezQrm9skk.s:171606: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0' /tmp/pgc++ZKuezQrm9skk.s:171646: Error: no such instruction: vinserti128 $1,%xmm1,%ymm1,%ymm0’
make: *** [NN_Shark.o] Error 2

Hi Ali,

You’ll need to update your binutils or target an earlier CPU processor.

The E5-2620 V3 supports AVX instructions so the compiler will generate code for these instructions. However, your assembler is a bit old so doesn’t recognize them. You can obtain the latest binutils, which include an updated assembler, at http://www.gnu.org/software/binutils/

Alternatively, you can tell to the compiler to target an earlier processor without AVX support via the “-tp” flag which stands for target processor. For example “-tp penryn-64”.

Hope this helps,
Mat

Thanks Mat. I updated binutils and it worked!