Julia: error compiling openblas with older assembler

Created on 18 Jul 2014  Β·  24Comments  Β·  Source: JuliaLang/julia

hi All,
I am attempting to compile Julia as per instructions but receiving the following message at the end of the compilation

make[4]: * [dgemm_kernel_HASWELL.o] Error 1
make[4]: ** Waiting for unfinished jobs....
make[3]: *
* [libs] Error 1
** Clean the OpenBLAS build with 'make -C deps clean-openblas'. Rebuild with 'make OPENBLAS_USE_THREAD=0 if OpenBLAS had trouble linking libpthread.so, and with 'make OPENBLAS_TARGET_ARCH=NEHALEM' if there were errors building SandyBridge support. Both these options can also be used simultaneously. *

make[2]: *
* [openblas-v0.2.10.rc2/libopenblas.so] Error 1
make[1]: ** [julia-release] Error 2
make: *
* [release] Error 2

Could anyone help shed some light as to what the problem is please.

For Info - the OS is centos 6.5

Thanks

Peter

build

Most helpful comment

Add "#define NO_AVX2 1024" to the file cpuid.h as the last second line. Good day!

All 24 comments

Does the problem persist after cleaning the OpenBLAS build and remaking?

Hi

yes it does.

Thanks

From: Jiahao Chen [mailto:[email protected]]
Sent: 18 July 2014 14:09
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] Compiling Issue (#7653)

Does the problem persist after cleaning the OpenBLAS build and remaking?

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49428414.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

What are the output lines just before make[4]: *** [dgemm_kernel_HASWELL.o] Error 1?

Lines before:-

../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1709: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1709: Error: no such instruction:vpermpd $ 0x1b,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1709: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1711: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1711: Error: no such instruction: vpermpd $ 0x1b,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1711: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1712: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1712: Error: no such instruction:vpermpd $ 0x1b,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1712: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction: vpermpd $ 0x1b,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction:vpermpd $ 0x1b,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction: vpermpd $ 0x1b,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0xb1,%ymm5,%ymm5' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0xb1,%ymm7,%ymm7'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0x1b,%ymm2,%ymm2' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0x1b,%ymm3,%ymm3'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0xb1,%ymm2,%ymm2' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0xb1,%ymm3,%ymm3'

When I ran make -C deps clean-openblas

These are the lines at the end

../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction: vpermpd $ 0x1b,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction:vpermpd $ 0x1b,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0xb1,%ymm5,%ymm5'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0xb1,%ymm7,%ymm7' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0x1b,%ymm2,%ymm2'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0x1b,%ymm3,%ymm3' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0xb1,%ymm2,%ymm2'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: `vpermpd $ 0xb1,%ymm3,%ymm3'
make[4]: * [dgemm_kernel_HASWELL.o] Error 1
make[4]: ** Waiting for unfinished jobs....
make[3]: *
* [libs] Error 1
** Clean the OpenBLAS build with 'make -C deps clean-openblas'. Rebuild with 'make OPENBLAS_USE_THREAD=0 if OpenBLAS had trouble linking libpthread.so, and with 'make OPENBLAS_TARGET_ARCH=NEHALEM' if there were errors building SandyBridge support. Both these options can also be used simultaneously. *

make[2]: *
* [openblas-v0.2.10.rc2/libopenblas.so] Error 1
make[1]: ** [julia-release] Error 2
make: *
* [release] Error 2

Which to me look the same.

Thanks for your help.

Peter

From: Jiahao Chen [mailto:[email protected]]
Sent: 18 July 2014 14:15
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] Compiling Issue (#7653)

What are the output lines just before make[4]: *** [dgemm_kernel_HASWELL.o] Error 1?

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49429001.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

This usually means your assembler is too old to support Haswell instructions. See Linux build troubleshooting for 3 possible workarounds.

@pjmills do you know what your processor model number is?

Others: Now that we've upgraded to OpenBLAS v0.2.10, we can also add a OPENBLAS_NO_AVX2 flag to be more specific here (or maybe a more generic OPENBLAS_FLAGS like we do for LLVM?). The Haswell kernels are the ones that require newer binutils (which can also be installed via the Scientific Linux devtoolset, I can't find the discussion off the top of my head but there's a link in another recent issue here), but OPENBLAS_NO_AVX will slow down Sandy Bridge too.

Morning Tony,

Thanks for your reply.

I have checked the CPU info on my linux box and it show it as a single processor - Intel(R) Pentium(R) 4 CPU 2.80GHz.

I hope this helps.

Regards

Peter

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 4
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 1
cpu MHz : 2800.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr
bogomips : 5600.13
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual

From: Tony Kelman [mailto:[email protected]]
Sent: 18 July 2014 23:18
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] Compiling Issue (#7653)

@pjmillshttps://github.com/pjmills do you know what your processor model number is?

Others: Now that we've upgraded to OpenBLAS v0.2.10, we can also add a OPENBLAS_NO_AVX2 flag to be more specific here (or maybe a more generic OPENBLAS_FLAGS like we do for LLVM?). The Haswell kernels are the ones that require newer binutils (which can also be installed via the Scientific Linux devtoolset, I can't find the discussion off the top of my head but there's a link in another recent issue here), but OPENBLAS_NO_AVX will slow down Sandy Bridge too.

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49485868.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

Pentium 4, that's way too old to be worrying about AVX. Try

echo "OPENBLAS_NO_AVX = 1" >> Make.user
make

Tony,

Many Thanks, I thought it might be a problem when I released it was an old machine.

But only using this machine as a test before I install on a cluster system

Will let you know how things go.

Regards

Peter

From: Tony Kelman [mailto:[email protected]]
Sent: 21 July 2014 08:19
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

Pentium 4, that's way too old to be worrying about AVX. Try

echo "OPENBLAS_NO_AVX = 1" >> Make.user

make

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49577315.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

Hi Tony,

Have just finished compiling after using your suggestion and theis is the output:-

../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction:vpermpd $ 0x1b,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1713: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction: vpermpd $ 0x1b,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1714: Error: no such instruction:vpermpd $ 0xb1,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction:vpermpd $ 0x1b,%ymm0,%ymm0'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1734: Error: no such instruction: vpermpd $ 0xb1,%ymm0,%ymm0' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0xb1,%ymm5,%ymm5'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0xb1,%ymm7,%ymm7' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0x1b,%ymm2,%ymm2'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: vpermpd $ 0x1b,%ymm3,%ymm3' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction:vpermpd $ 0xb1,%ymm2,%ymm2'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:1743: Error: no such instruction: `vpermpd $ 0xb1,%ymm3,%ymm3'
make[4]: * [dgemm_kernel_HASWELL.o] Error 1
make[4]: ** Waiting for unfinished jobs....
make[3]: *
* [libs] Error 1
** Clean the OpenBLAS build with 'make -C deps clean-openblas'. Rebuild with 'make OPENBLAS_USE_THREAD=0 if OpenBLAS had trouble linking libpthread.so, and with 'make OPENBLAS_TARGET_ARCH=NEHALEM' if there were errors building SandyBridge support. Both these options can also be used simultaneously. *

make[2]: *
* [openblas-v0.2.10/libopenblas.so] Error 1
make[1]: ** [julia-release] Error 2
make: *
* [release] Error 2

Still seems to have a problem – Any thoughts on why it would fail?
Is it that the hardware really is too old for the software?

May give it a go directly on the cluster as this is newer hardware.

Peter
From: Tony Kelman [mailto:[email protected]]
Sent: 21 July 2014 08:19
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

Pentium 4, that's way too old to be worrying about AVX. Try

echo "OPENBLAS_NO_AVX = 1" >> Make.user

make

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49577315.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

Odd, you may need to clean out the older openblas build via make -C deps distclean-openblas first in order for the flags to properly take effect.

Technically the old software of CentOS is at fault more than the Pentium 4 hardware. As long as you're running on something newer than an i486 processor then Julia should work.

Hi Tony,

I have just run a test install on our cluster and this seemed to compile fine.

Just one question I put in the Make.user file that I wanted it to install to the /opt folder using the prefix option.

However, because I downloaded into a tmp folder and did the make here the software compiled and then I then ran Make install.

This did create a new folder in /opt/Julia with a Julia executable in /opt/Julia/bin

But now I have two Julia exectuables 1) in tmp/Julia and a second one in /opt/Julia/bin

Should I have done the installation a different way?
As this just seems to be duplicating files.

Thanks

Peter

From: Tony Kelman [mailto:[email protected]]
Sent: 21 July 2014 08:19
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

Pentium 4, that's way too old to be worrying about AVX. Try

echo "OPENBLAS_NO_AVX = 1" >> Make.user

make

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49577315.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

Julia always creates an executable in the location where it gets compiled. If you install to a separate location then you should be able to move around or remove the source build and the installed copy should keep working. However for the sake of faster incremental builds to keep up with future updates to Julia, I would leave the source build where it is. You can do git pull && make in the future without having to rebuild all the large dependencies.

Hi Tony,

Many thanks for the info.

All sorted now thanks.

We do have a second cluster which I would like to install the software on but the version of GCC is version 4.4.7

Will Julia work with this version?

Regards

Peter

From: Tony Kelman [mailto:[email protected]]
Sent: 21 July 2014 23:43
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

Julia always creates an executable in the location where it gets compiled. If you install to a separate location then you should be able to move around or remove the source build and the installed copy should keep working. However for the sake of faster incremental builds to keep up with future updates to Julia, I would leave the source build where it is. You can do git pull && make in the future without having to rebuild all the large dependencies.

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49676260.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

It should, at the moment. I suspect that will probably change with LLVM 3.5 in a few months, due to C++11. Depending on your binutils versions you'll likely need some of the same NO_AVX flags for OpenBLAS.

Hi tony,

I realise that you have closed the log, but would be grateful if you could just confirm that the error message below is because I have tried to compile Julia with a too older version of GCC.(GCC4.4.7)

I setup the Make.user file with the flag as you previously advised, but as you see the compile failed.

Any advice would be much appreciated.

Thanks
Peter

/opt/julia/deps/llvm-3.3/include/llvm/ADT/DenseMap.h:949: note: initialized from here
/opt/julia/deps/llvm-3.3/include/llvm/ADT/DenseMap.h:964: warning: dereferencing pointer β€˜β€™ does break strict-aliasing rules
/opt/julia/deps/llvm-3.3/include/llvm/ADT/DenseMap.h:949: note: initialized from here
/opt/julia/deps/llvm-3.3/include/llvm/ADT/DenseMap.h:971: warning: dereferencing pointer β€˜β€™ does break strict-aliasing rules
/opt/julia/deps/llvm-3.3/include/llvm/ADT/DenseMap.h:949: note: initialized from here
llvm[5]: Linking Release unit test IR (without symbols)
llvm[5]: ======= Finished Linking Release Unit test IR (without symbols)
llvm[5]: Linking Release unit test ADT (without symbols)
llvm[5]: ======= Finished Linking Release Unit test ADT (without symbols)
llvm[5]: Linking Release unit test Support (without symbols)
llvm[5]: ======= Finished Linking Release Unit test Support (without symbols)
llvm[7]: Compiling sample.c for Release build
llvm[7]: Building Release Archive Library libsample.a
llvm[7]: Compiling main.c for Release build
llvm[7]: Linking Release executable Sample (without symbols)
llvm[7]: ======= Finished Linking Release Executable Sample (without symbols)
llvm[3]: ** Completed Release Build
make[1]: *
* [julia-release] Error 2
make: *** [release] Error 2

I

From: Tony Kelman [mailto:[email protected]]
Sent: 22 July 2014 10:06
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

It should, at the moment. I suspect that will probably change with LLVM 3.5 in a few months, due to C++11. Depending on your binutils versions you'll likely need some of the same NO_AVX flags for OpenBLAS.

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49714721.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

@pjmills The actual build error does not appear to be represented in the output you've provided; the final compilation lines shown are just warnings. Please build with the -j 1 option to Make.

We can reopen the issue if you think there's still a problem. Or if you have a suggested way of improving the documentation so the proper fix is clearer in the future. As @pao said, the error was somewhere much earlier due to parallel make. If you do make -j 1 we should get a better sense of the actual problem. I can build current master just fine with GCC 4.4.7.

Hi Tony,

Thanks for your reply.

I have tried to rum the Make command again using the option Make –j 1

The error is still present and I have attached the log file from the Make so that you might be able to determine why it still fails to compile.

make[4]: ** [dtrmm_kernel_LT_HASWELL.o] Error 1
make[3]: *
* [libs] Error 1
make[2]: ** [openblas-v0.2.10/libopenblas.so] Error 1
make[1]: *
* [julia-release] Error 2
make: *** [release] Error 2

I have openmpi and Gcc 4.4.7 installed on the system and load these via a module load command prior to doing the Make

You comment regarding any suggestion to improve the documentation, a section on any perquisites would be useful.

I await you comments and hopefully a sway to resolve the issue.

Regards

Peter

From: Tony Kelman [mailto:[email protected]]
Sent: 22 July 2014 23:53
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

We can reopen the issue if you think there's still a problem. Or if you have a suggested way of improving the documentation so the proper fix is clearer in the future. As @paohttps://github.com/pao said, the error was somewhere much earlier due to parallel make. If you do make -j 1 we should get a better sense of the actual problem. I can build current master just fine with GCC 4.4.7.

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49812359.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

@pjmills email attachments are not visible on Github. Could you post the log somewhere like gist.github.com? This looks like it was probably the same error with the Haswell kernels, did you repeat the step with putting OPENBLAS_NO_AVX = 1 in your Make.user file?

Tony,

Oops no I forgot that…..

Right have now done that step as required and removed the folder and download the files again.

Ran Make –j 1 and the error output is the same.

../kernel/x86_64/dgemm_kernel_4x4_haswell.S:2548: Error: no such instruction: vpermpd $ 0x1b,%ymm2,%ymm2' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:2548: Error: no such instruction:vpermpd $ 0x1b,%ymm3,%ymm3'
../kernel/x86_64/dgemm_kernel_4x4_haswell.S:2548: Error: no such instruction: vpermpd $ 0xb1,%ymm2,%ymm2' ../kernel/x86_64/dgemm_kernel_4x4_haswell.S:2548: Error: no such instruction:vpermpd $ 0xb1,%ymm3,%ymm3'
make[4]: ** [dtrmm_kernel_LT_HASWELL.o] Error 1
make[3]: *
* [libs] Error 1
make[2]: ** [openblas-v0.2.10/libopenblas.so] Error 1
make[1]: *
* [julia-release] Error 2
make: *** [release] Error 2

Are there any prerequisites that I have missed?

Have tried to upload to my login on GitHub Gist

https://gist.github.com/pjmills/989f976cdbc4c63b6e0e

Hope this helps.

Many Thanks

Peter

From: Tony Kelman [mailto:[email protected]]
Sent: 24 July 2014 11:48
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

@pjmillshttps://github.com/pjmills email attachments are not visible on Github. Could you post the log somewhere like gist.github.com? This looks like it was probably the same error with the Haswell kernels, did you repeat the step with putting OPENBLAS_NO_AVX = 1 in your Make.user file?

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-49993126.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

@pjmills d'oh, my mistake, sorry. Turns out OPENBLAS_NO_AVX actually does not disable AVX2 instructions like I thought it did. Make sure you git pull to latest master, then try with OPENBLAS_NO_AVX2 = 1 instead.

Tony,

Many thanks for all your help.

When I use the flag as per below it all compiles and runs fine.

Thanks

Peter

From: Tony Kelman [mailto:[email protected]]
Sent: 25 July 2014 01:58
To: JuliaLang/julia
Cc: Peter Mills
Subject: Re: [julia] error compiling openblas with older assembler (#7653)

@pjmillshttps://github.com/pjmills d'oh, my mistake, sorry. Turns out OPENBLAS_NO_AVX actually does not disable AVX2 instructions like I thought it did. Make sure you git pull to latest master, then try with OPENBLAS_NO_AVX2 = 1 instead.

β€”
Reply to this email directly or view it on GitHubhttps://github.com/JuliaLang/julia/issues/7653#issuecomment-50097064.


[http://www.plymouth.ac.uk/images/email_footer.gif]http://www.plymouth.ac.uk/worldclass

This email and any files with it are confidential and intended solely for the use of the recipient to whom it is addressed. If you are not the intended recipient then copying, distribution or other use of the information contained is strictly prohibited and you should not rely on it. If you have received this email in error please let the sender know immediately and delete it from your system(s). Internet emails are not necessarily secure. While we take every care, Plymouth University accepts no responsibility for viruses and it is your responsibility to scan emails and their attachments. Plymouth University does not accept responsibility for any changes made after it was sent. Nothing in this email or its attachments constitutes an order for goods or services unless accompanied by an official order form.

Add "#define NO_AVX2 1024" to the file cpuid.h as the last second line. Good day!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

i-apellaniz picture i-apellaniz  Β·  3Comments

omus picture omus  Β·  3Comments

felixrehren picture felixrehren  Β·  3Comments

musm picture musm  Β·  3Comments

iamed2 picture iamed2  Β·  3Comments