octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RE: [MXE-Octave]Build Failed on CentOS6.6 64bit


From: Tatsuro MATSUOKA
Subject: Re: RE: [MXE-Octave]Build Failed on CentOS6.6 64bit
Date: Fri, 19 Jun 2015 15:49:15 +0900 (JST)

----- Original Message -----

> From: Yuji.I 
> To: octave-maintainers
> Cc: 
> Date: 2015/6/19, Fri 13:29
> Subject: Re: RE: [MXE-Octave]Build Failed on CentOS6.6 64bit
> 
>t macchant wrote
>>  ----- Original Message -----
>> 
>>>  From: Yuji.I 
>>>  To: octave-maintainers
>>>  Cc: 
>>>  Date: 2015/6/17, Wed 10:21
>>>  Subject: Re: RE: [MXE-Octave]Build Failed on CentOS6.6 64bit
>>> 
>>>  Thanks to your advise, gnutls build successful 
>>>  and make finished completely!
>>> 
>>>  but, I faced to next problem.
>>> 
>>>  Reference to http://wiki.octave.org/MXE, the next step is "make 
>>>  openblas".
>>>  However, this make is not successed.
>>> 
>>>  log/openblas is  openblas
>>> 
> <http://octave.1599824.n4.nabble.com/file/n4670997/openblas.openblas
>>>  .
>>>  I haven't heard of "dtrmm_kernel_LN_HASWELL"...
>> 
>> 
>>  Seeing the log file your system does not support HASWELL assembler code.
>> 
>>  On MXE-octave, openblas is generated with DYNAMIC_ARCH=1 as in
>>  src/openblas.mk
>> 
>>  $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) DYNAMIC_ARCH=1 NO_LAPACK=1 
>> 
>>  for the purpose to use openblas on PCs with different CPU
>>  microarchitectures.
>> 
>>  If you use your mxe-octave only on the PC using for build, you can
>>  omit DYNAMIC_ARCH=1.
>> 
>>  Back up the original src/openblas.mk (e.g. src/openblas.orig.mk) and 
>>  modify as (just delete "DYNAMIC_ARCH=1")
>> 
>>  $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) NO_LAPACK=1 
>> 
>>  Openblas detects the CPU microarchitecture automatically in the early
>>  stage of "make"
>>  Perhaps the above will change the situation.
>> 
>>  However, openblas sometimes mis-detects the CPU microarchitecture.
>>  In the case, you manually set the CPU microarchitecture e.g.
>> 
>>  $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) TARGET=NEHALEM NO_LAPACK=1
>> 
>> 
>>  NEHALEM is one of the CPU microarchitecture of Intel.
>> 
>>  Perhaps you know the CPU of your PC.
>>  If you do not know it, you can perhaps investigate by
>> 
>>  $ cat /proc/cpuinfo | grep "model name"
>>  (Example for Ubunutu.)
>> 
>>  You can find TARGET list in TargetList.txt in OpenBLAS source file.
>>  For Intel microarchitecture, please see:
>>   https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures
>> 
>> 
>>>  FYI, on the current condition,  execution 
> "mxe-octave/usr/bin/octave" 
>>>  is
>>>  failed.
>>>  =====
>>>  octave: X11 DISPLAY environment variable not set
>>>  octave: disabling GUI features
>>>  /root/mxe-octave/usr/bin/octave-cli-4.0.0: error while loading shared
>>>  libraries: libssl.so.1.0.0: cannot open shared object file: No such 
> file
>>>  or
>>>  directory
>> 
>> 
>>>  octave: X11 DISPLAY environment variable not set
>>>  octave: disabling GUI features
>> 
>> 
>>  Strange!
>> 
>>  What the below tells?
>> 
>> 
>>  $ echo $DISPLAY
>> 
>>  Usually it is ":0" otherwise you use remote desktop.
>> 
>>>  /root/mxe-octave/usr/bin/octave-cli-4.0.0: error while loading shared
>>>  libraries: libssl.so.1.0.0: cannot open shared object file: No such 
> file
>>>  or
>>>  directory
>> 
>> 
>>  The mxe-octave uses self-built run-time libraries which are not detected
>>  by 
>>  automatically by operating system so that you have set LD_LIBRATY_PATH in
>>  proper way.
>> 
>>  $ LD_LIBRARY_PATH=/root/mxe-octave/usr/lib:$LD_LIBRARY_PATH
>>  /root/mxe-octave/usr/bin/octave-cli-4.0.0
>> 
>> 
>>  (/root/mxe-octave/usr/lib might not be correct. Modify it according to
>>  your condition.)
>> 
>>  HTH
>> 
>>  Tatsuro
> 
> I modified src/openblas.mk as you wrote.
> 
> from 
> $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) DYNAMIC_ARCH=1 NO_LAPACK=1
> to ... 
> $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) TARGET=NEHALEM NO_LAPACK=1
> 
> Executing make, build succeeded!
> 
> By the way, about issue of display,
> I know very well because I established the PC as server.
> No problem.
> 
> I tried the command:
> $ LD_LIBRARY_PATH=/root/mxe-octave/usr/lib:$LD_LIBRARY_PATH
> /root/mxe-octave/usr/bin/octave-cli-4.0.0 
> it is successful! 
> 
> the command " a = zeros (1024*1024*1024*3, 1, 'int8');" in 
> octave
> finished successfully, too.
> 
> Thank you for all your help!!!
> 


I am glad to hear for your success.


However, perhaps your CPU of you PC is more recent one than NEHALEM.

Did you confirm CPU micro architecture and select NEHALEM?
The NEHALEM is the first micro-architecture for Core i3/i5/i7 (2008).
I suspect your CPU is not so old.

If microarchitecture of CPU on your PC is newer than NEHALEM,
openblas cannot pull the best performance of your CPU.

I have previously shown
https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures


The microarchitectures newer than NEHALEM are SANDYBRIDGE  and HASWEL.

https://en.wikipedia.org/wiki/Sandy_Bridge

https://en.wikipedia.org/wiki/Haswell_(microarchitecture)


For
If you can read Japanese (nihongo) wiki
https://ja.wikipedia.org/wiki/Sandy_Bridge%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

https://ja.wikipedia.org/wiki/Haswell%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3


Mxe-octave will build their own bunutils.
If you finished mxe build, you have dist/octave-4.0.0/bin directory.
$ cd ( path to dist/octave-4.0.0/bin in your mxe directory tree)
$ ./ld -v
You can check bunutils version. (e.g. GNU ld (GNU Binutils) 2.25)
As I wrote
http://octave.1599824.n4.nabble.com/MXE-Octave-Build-Failed-on-CentOS6-6-64bit-tp4670812p4671017.html


If version of binutils in your mxe tree is 2.25,


If it is not, you can install binutils 2.25 from your OS repository. 

modify src/openblas.mk

From
define $(PKG)_BUILD
    $(MAKE) -C '$(1)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)  
    $(MAKE) -C '$(1)' -j 1 $($(PKG)_MAKE_OPTS) install
endef

to
define $(PKG)_BUILD
    PATH=(path to dist/octave-4.0.0/bin in your mxe directory tree ):$PATH 
$(MAKE) -C '$(1)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)  
    $(MAKE) -C '$(1)' -j 1 $($(PKG)_MAKE_OPTS) install
endef

and 
back to
> $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) DYNAMIC_ARCH=1 NO_LAPACK=1



Try to build openblas again.


Another option is to upgrade your binutils to ver. 2.25 on your system.
http://rpmfind.net/linux/rpm2html/search.php?query=binutils



and back to
> $(PKG)_MAKE_OPTS := PREFIX=$(HOST_PREFIX) DYNAMIC_ARCH=1 NO_LAPACK=1

is also required

Do not forget to backup libopenblas.so, libopenblas.a in your 
dist/octave-4.0.0/lib to somewhere 
before re-build because they are working openblas.

Tatsuro




reply via email to

[Prev in Thread] Current Thread [Next in Thread]