On another, slightly older system, I noticed similar (approximately identical) timings for the simd.jl test script using Julia 0.5:

julia> include("/Users/rob/Projects/Julia/Rob/Julia/simd.jl")

Julia Version 0.5.0-dev+720
Commit 5920633* (2015-10-11 15:15 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin15.0.0)
  CPU: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

First call to timeit(1000,1000):

GFlop        = 0.6092165323090373
GFlop (SIMD) = 0.4607065672339039

Second call to timeit(1000,1000):

GFlop        = 0.5935117884795207
GFlop (SIMD) = 0.42286883095163036

On that same system Julia 0.4 (installed from the Julia site) did show improved Gflop numbers and about a 6x improvement with simd.

To see if that would help with Julia 0.5, I did (in the cloned julia directory, in a terminal):

make -j 4

Lots of compile messages/warnings, but in the end:

clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libopenblas64_p-r0.2.15.dylib] Error 1
make[2]: *** [shared] Error 2
*** 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[1]: *** [build/openblas/libopenblas64_.dylib] Error 1
make: *** [julia-deps] Error 2

I tried:

brew update
brew upgrade
make -C deps clean-openblas
make -j 4

and running the simd.jl script now shows:

julia> include("/Users/rob/Projects/Julia/Rob/Julia/simd.jl")

Julia Version 0.5.0-dev+1195
Commit 68667a3* (2015-11-08 21:05 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin15.0.0)
  CPU: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Sandybridge)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

First call to timeit(1000,1000):

GFlop        = 1.4006308441321973
GFlop (SIMD) = 13.561988458747821

Second call to timeit(1000,1000):

GFlop        = 2.300048186009497
GFlop (SIMD) = 12.84397777991844


Not sure if this helps or is even the right way to remedy this.

Regards,
Rob


Attachment: simd.jl
Description: Binary data




On Nov 6, 2015, at 5:35 PM, Rob J. Goedman <goed...@icloud.com> wrote:

Thanks Seth,

That's the end of my first attempt to figure out what’s happening here. Back to the drawing board!

Regards,
Rob

On Nov 6, 2015, at 4:53 PM, Seth <catch...@bromberger.com> wrote:

Hi Rob,

I built it (and openblas) myself (via git clone) since I'm testing out Cxx.jl. Xcode is Version 7.1 (7B91b).

Seth.


On Friday, November 6, 2015 at 3:54:04 PM UTC-8, Rob J Goedman wrote:
Seth,

You must have built  Julia 0.4.1-pre yourself. Did you use brew?

It looks like you are on Yosemite and picked up a newer libLLVM. Which Xcode are you using?
In the Julia.rb formula there is a test ENV.compiler, could it be clang is not being used? 

Rob

On Nov 6, 2015, at 3:01 PM, Seth <catc...@bromberger.com> wrote:

For what it's worth, I'm getting

julia> timeit(1000,1000)
GFlop        = 2.3913033081289967
GFlop (SIMD) = 2.2694726426420293


julia> versioninfo()
Julia Version 0.4.1-pre+22
Commit 669222e* (2015-11-01 00:06 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-svn

so it doesn't look like I'm taking advantage of simd either. :(

On Friday, November 6, 2015 at 11:43:41 AM UTC-8, Rob J Goedman wrote:
Hi DNF,

In below versioninfo’s only libopenblas appears different. You installed using brew. The first thing I would try is to execute the steps under Common Issues listed on https://github.com/staticfloat/homebrew-julia. A bit further down on that site there is also some additional openblas related info.

Rob

On Nov 6, 2015, at 10:35 AM, DNF <oyv...@gmail.com> wrote:

Thanks for the feedback. It seems like this is not a problem for most.

If anyone has even the faintest clue where I could start looking for a solution to this, I would be grateful. Perhaps there is some software I could run that would detect hardware problems, or maybe I am missing software dependencies of some kind? What could I even google for? All my searches just seem to bring up general info about SIMD, nothing like what I'm describing.


On Friday, November 6, 2015 at 12:15:47 AM UTC+1, DNF wrote:
I install using homebrew from here: https://github.com/staticfloat/homebrew-julia

I have limited understanding of the process, but believe there is some compilation involved.


Julia Version 0.4.0
Commit 0ff703b* (2015-10-08 06:20 UTC)
Platform Info:
  System: Darwin (x86_64-apple-darwin13.4.0)
  CPU: Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.3

Julia Version 0.4.0
Commit 0ff703b* (2015-10-08 06:20 UTC)
Platform Info:
  
System: Darwin (x86_64-apple-darwin15.0.0)
  CPU
: Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz
  WORD_SIZE
: 64
  BLAS
: libopenblas (DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK
: libopenblas
  LIBM
: libopenlibm
  LLVM
: libLLVM-3.3




Reply via email to