Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error compiling openblas with older assembler #7653

Closed
pjmills opened this issue Jul 18, 2014 · 24 comments
Closed

error compiling openblas with older assembler #7653

pjmills opened this issue Jul 18, 2014 · 24 comments
Labels
building Build system, or building Julia or its dependencies

Comments

@pjmills
Copy link

pjmills commented Jul 18, 2014

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

@jiahao
Copy link
Member

jiahao commented Jul 18, 2014

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

@pjmills
Copy link
Author

pjmills commented Jul 18, 2014

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//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.

@jiahao
Copy link
Member

jiahao commented Jul 18, 2014

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

@pjmills
Copy link
Author

pjmills commented Jul 18, 2014

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//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.

@simonster
Copy link
Member

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

@tkelman
Copy link
Contributor

tkelman commented Jul 18, 2014

@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.

@JeffBezanson JeffBezanson changed the title Compiling Issue error compiling openblas with older assembler Jul 21, 2014
@pjmills
Copy link
Author

pjmills commented Jul 21, 2014

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//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.

@tkelman
Copy link
Contributor

tkelman commented Jul 21, 2014

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

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

@pjmills
Copy link
Author

pjmills commented Jul 21, 2014

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//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.

@pjmills
Copy link
Author

pjmills commented Jul 21, 2014

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//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.

@tkelman
Copy link
Contributor

tkelman commented Jul 21, 2014

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.

@pjmills
Copy link
Author

pjmills commented Jul 21, 2014

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//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.

@tkelman
Copy link
Contributor

tkelman commented Jul 21, 2014

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.

@pjmills
Copy link
Author

pjmills commented Jul 22, 2014

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//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.

@tkelman
Copy link
Contributor

tkelman commented Jul 22, 2014

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.

@tkelman tkelman closed this as completed Jul 22, 2014
@pjmills
Copy link
Author

pjmills commented Jul 22, 2014

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//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.

@pao
Copy link
Member

pao commented Jul 22, 2014

@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.

@tkelman
Copy link
Contributor

tkelman commented Jul 22, 2014

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.

@pjmills
Copy link
Author

pjmills commented Jul 24, 2014

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//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.

@tkelman
Copy link
Contributor

tkelman commented Jul 24, 2014

@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?

@pjmills
Copy link
Author

pjmills commented Jul 24, 2014

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//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.

@tkelman
Copy link
Contributor

tkelman commented Jul 25, 2014

@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.

@pjmills
Copy link
Author

pjmills commented Jul 28, 2014

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//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.

@boerwa
Copy link

boerwa commented Oct 28, 2015

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

sethrj added a commit to sethrj/spack that referenced this issue Jan 4, 2020
Use a newer assembler to allow avx2 instructions. This is the same error
that was [reported here](JuliaLang/julia#7653)
and [here](spack#12235).

```
../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'
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
building Build system, or building Julia or its dependencies
Projects
None yet
Development

No branches or pull requests

7 participants