I was building on the (Haswell) front end. From some of the other issues I looked at it appeared that I could specify the architecture even if I was not actually building on that kind of system. But that could be totally wrong, so I can try it on the KNL node if that's required.
When I put "LLVM_VER := svn" and tried this morning (again on the front end) the error I got was: JULIA_CPU_TARGET = knl lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 13 +++++++++++++ test/CodeGen/X86/negate-shift.ll | 16 ++++------------ 2 files changed, 17 insertions(+), 12 deletions(-) CMake Error at CMakeLists.txt:3 (cmake_minimum_required): CMake 3.4.3 or higher is required. You are running version 2.8.11 -- Configuring incomplete, errors occurred! make[1]: *** [build/llvm-svn/build_Release/CMakeCache.txt] Error 1 make: *** [julia-deps] Error 2 On Friday, October 14, 2016 at 9:51:56 AM UTC-5, Erik Schnetter wrote: > > Were you building on a KNL node or on the frontend? What architecture did > you specify? > > -erik > > On Thu, Oct 13, 2016 at 9:38 PM, Valentin Churavy <v.ch...@gmail.com > <javascript:>> wrote: > >> Since KNL is just a new platform the default version of the LLVM compiler >> that Julia is based on does not support it properly. >> During our testing at MIT we found that we needed to switch to the >> current upstream of LLVM (or if anybody reads this at a later time LLVM 4.0) >> You can do that by putting >> LLVM_VER:=svn >> into your Make.user. >> >> - Valentin >> >> On Friday, 14 October 2016 09:55:16 UTC+9, ABB wrote: >>> >>> Sigh... build failed. I'm including the last part that worked and the >>> error message which followed: >>> >>> JULIA usr/lib/julia/inference.ji >>> essentials.jl >>> generator.jl >>> reflection.jl >>> options.jl >>> promotion.jl >>> tuple.jl >>> range.jl >>> expr.jl >>> error.jl >>> bool.jl >>> number.jl >>> int.jl >>> >>> signal (4): Illegal instruction >>> while loading int.jl, in expression starting on line 193 >>> ! at ./bool.jl:16 >>> jl_call_method_internal at >>> /home1/04179/abean/julia/src/julia_internal.h:189 >>> jl_apply_generic at /home1/04179/abean/julia/src/gf.c:1942 >>> anonymous at ./<missing> (unknown line) >>> jl_call_method_internal at >>> /home1/04179/abean/julia/src/julia_internal.h:189 >>> jl_toplevel_eval_flex at /home1/04179/abean/julia/src/toplevel.c:569 >>> jl_parse_eval_all at /home1/04179/abean/julia/src/ast.c:717 >>> jl_load at /home1/04179/abean/julia/src/toplevel.c:596 >>> jl_load_ at /home1/04179/abean/julia/src/toplevel.c:605 >>> include at ./boot.jl:231 >>> jl_call_method_internal at >>> /home1/04179/abean/julia/src/julia_internal.h:189 >>> jl_apply_generic at /home1/04179/abean/julia/src/gf.c:1942 >>> do_call at /home1/04179/abean/julia/src/interpreter.c:66 >>> eval at /home1/04179/abean/julia/src/interpreter.c:190 >>> jl_interpret_toplevel_expr at >>> /home1/04179/abean/julia/src/interpreter.c:31 >>> jl_toplevel_eval_flex at /home1/04179/abean/julia/src/toplevel.c:558 >>> jl_eval_module_expr at /home1/04179/abean/julia/src/toplevel.c:196 >>> jl_toplevel_eval_flex at /home1/04179/abean/julia/src/toplevel.c:465 >>> jl_toplevel_eval at /home1/04179/abean/julia/src/toplevel.c:580 >>> jl_toplevel_eval_in_warn at /home1/04179/abean/julia/src/builtins.c:590 >>> jl_toplevel_eval_in at /home1/04179/abean/julia/src/builtins.c:556 >>> eval at ./boot.jl:234 >>> jl_call_method_internal at >>> /home1/04179/abean/julia/src/julia_internal.h:189 >>> jl_apply_generic at /home1/04179/abean/julia/src/gf.c:1942 >>> do_call at /home1/04179/abean/julia/src/interpreter.c:66 >>> eval at /home1/04179/abean/julia/src/interpreter.c:190 >>> jl_interpret_toplevel_expr at >>> /home1/04179/abean/julia/src/interpreter.c:31 >>> jl_toplevel_eval_flex at /home1/04179/abean/julia/src/toplevel.c:558 >>> jl_parse_eval_all at /home1/04179/abean/julia/src/ast.c:717 >>> jl_load at /home1/04179/abean/julia/src/toplevel.c:596 >>> exec_program at /home1/04179/abean/julia/ui/repl.c:66 >>> true_main at /home1/04179/abean/julia/ui/repl.c:119 >>> main at /home1/04179/abean/julia/ui/repl.c:232 >>> __libc_start_main at /usr/lib64/libc.so.6 (unknown line) >>> unknown function (ip: 0x401928) >>> Allocations: 100373 (Pool: 100371; Big: 2); GC: 0 >>> /bin/sh: line 1: 15078 Illegal instruction >>> /home1/04179/abean/julia/usr/bin/julia-debug -C knl --output-ji >>> /home1/04179/abean/julia/usr/lib/julia/inference.ji --startup-file=no >>> coreimg.jl >>> make[1]: *** [/home1/04179/abean/julia/usr/lib/julia/inference.ji] Error >>> 132 >>> make: *** [julia-inference] Error 2 >>> >>> >>> >>> Any advice for debugging that? I don't find any previous issues which >>> are helpful. >>> >>> Thanks - >>> >>> Austin >>> >>> On Thursday, October 13, 2016 at 1:49:24 PM UTC-5, ABB wrote: >>>> >>>> Awesome. Thanks. I'll try it again then. I appreciate the help. >>>> >>>> (Austin is also my name. I save space in my memory by going to school >>>> at, living in and being a guy with the same name.) >>>> >>>> On Thursday, October 13, 2016 at 1:40:09 PM UTC-5, Erik Schnetter wrote: >>>>> >>>>> AB >>>>> >>>>> You're speaking of Stampede, if I might guess from the "austin" prefix >>>>> in your email address. I would treat the old and the new section of the >>>>> machines as separate, since they are not binary compatible. If you are >>>>> really interested in the KNL part, then I'd concentrate on these, and use >>>>> the development mode to always log in, build on, and run on the KNL >>>>> nodes, >>>>> and ignore everything else. Mixing different architectures in a single >>>>> Julia environment is something I'd tackle much later, if at all. >>>>> >>>>> Alternatively you can use "haswell" as CPU architecture (instead of >>>>> "core2" above), which should work both on the front end as well as the >>>>> KNL >>>>> nodes. However, this way you will lose speed on the KNL nodes, except for >>>>> linear algebra operations. >>>>> >>>>> -erik >>>>> >>>>> >>>>> On Thu, Oct 13, 2016 at 2:26 PM, ABB <austi...@gmail.com> wrote: >>>>> >>>>>> This is great - thanks for getting back to me so quickly. >>>>>> >>>>>> To follow up, I have two small questions: >>>>>> >>>>>> - To build specifically for the KNL system I should include something >>>>>> like "JULIA_CPU_TARGET = knl" in the Make.user file? >>>>>> >>>>>> - Part of the system is KNL, part of it is "Intel Xeon E5 Sandy >>>>>> Bridge and the Intel Knights Corner (KNC) coprocessor" (the exact >>>>>> system is this one: >>>>>> https://portal.tacc.utexas.edu/user-guides/stampede ). Is there a >>>>>> way to build for both of the architectures? I think I read in another >>>>>> issue somewhere that it wasn't possible to support the Knights Corner >>>>>> because of (if I recall correctly) lack of LLVM support or something >>>>>> (maybe >>>>>> I am completely making that up) so if it's not possible I wouldn't be >>>>>> surprised. (The two sections of Stampede run different versions of >>>>>> Linux >>>>>> too, if that makes it even more complicated. I'd just be happy to get >>>>>> it >>>>>> running one way or the other.) >>>>>> >>>>>> Thanks again! >>>>>> >>>>>> AB >>>>>> >>>>>> >>>>>> On Thursday, October 13, 2016 at 1:10:48 PM UTC-5, Erik Schnetter >>>>>> wrote: >>>>>>> >>>>>>> AB >>>>>>> >>>>>>> Using "core2" is a fallback that will work on very old machines. In >>>>>>> your case -- if this happens to be a more modern, uniform HPC system -- >>>>>>> you >>>>>>> might want to use a different architecture. For example, if you're >>>>>>> building >>>>>>> on the compute nodes, and never run on the front end, then the default >>>>>>> should already work for you. Otherwise, choosing "knl" as architecture >>>>>>> should also work (and would also make it impossible to run on the front >>>>>>> end). >>>>>>> >>>>>>> -erik >>>>>>> >>>>>>> >>>>>>> On Thu, Oct 13, 2016 at 1:18 PM, ABB <austi...@gmail.com> wrote: >>>>>>> >>>>>>>> I built Julia Version 0.5.1-pre+2 on a cluster I have access to. >>>>>>>> >>>>>>>> The login node on which I executed the build has this architecture: >>>>>>>> >>>>>>>> Intel Core i7-5000 Extreme Edition (Haswell R2) / Xeon E5-x600 v3 >>>>>>>> (Haswell-EP C1/M1/R2), 22nm >>>>>>>> >>>>>>>> The compute node has this architecture: >>>>>>>> >>>>>>>> Intel Xeon Phi Coprocessor (Knights Landing), 14nm >>>>>>>> >>>>>>>> (Those are each the last line of the output of "cpuid") >>>>>>>> >>>>>>>> when I try to run anything, I get the error: >>>>>>>> >>>>>>>> ERROR: Target architecture mismatch. Please delete or regenerate >>>>>>>> sys.{so,dll,dylib}. >>>>>>>> >>>>>>>> I found this old discussion: >>>>>>>> >>>>>>>> >>>>>>>> https://groups.google.com/forum/#!msg/julia-dev/Eqp0GhZWxME/3mGKX1l_L9gJ >>>>>>>> >>>>>>>> which recommends using >>>>>>>> >>>>>>>> JULIA_CPU_TARGET = core2 >>>>>>>> >>>>>>>> in the Make.user file. >>>>>>>> >>>>>>>> Since that discussion is 2 years old, I am just double checking to >>>>>>>> see if that's still the best advice or if there is something else I >>>>>>>> should >>>>>>>> try first and/or instead. >>>>>>>> >>>>>>>> Thanks! >>>>>>>> >>>>>>>> AB >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Erik Schnetter <schn...@gmail.com> >>>>>>> http://www.perimeterinstitute.ca/personal/eschnetter/ >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Erik Schnetter <schn...@gmail.com> >>>>> http://www.perimeterinstitute.ca/personal/eschnetter/ >>>>> >>>> > > > -- > Erik Schnetter <schn...@gmail.com <javascript:>> > http://www.perimeterinstitute.ca/personal/eschnetter/ >