-
Notifications
You must be signed in to change notification settings - Fork 27
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
add support for scs-3.0.0 #221
Conversation
0338583
to
a9b7f2d
Compare
currently there are 27 "serious" failures in MOI tests: test_DirectSolver
the remaining Note that all of 53dd6f8 should be reverted, as the name suggests ;) |
in principle function scsint_t(::Type{DirectSolver})
s = ccall((:scs_sizeof_int, direct), Culong, ())
for T in (Int32, Int64)
sizeof(T) == s && return T
end
throw("Unrecognized size of Integer: $s bytes")
end but since we control the binaries I'm fine with hardcoding it as |
@odow scs-3.0.0 will be merged/released in a few days. Shouldn't we look into failures in MOI tests before? |
Yeah, what we have is good by me.
It'll be a lot easier to look into them once 3.0.0 is released and we can make a SCS_jll. The failures are likely just tolerance issues. It's also not the end of the world if there is a 3.0.1 release. |
just in case this is what I use to compile scs: #!/bin/bash
JULIA_HOME="/opt/julias/julia-1.6"
JULIA_LD_PATH="$JULIA_HOME/lib/julia"
BLASLDFLAGS="-L$JULIA_LD_PATH -lopenblas64_"
SCSFLAGS="USE_OPENMP=1 BLAS64=1 BLASSUFFIX=_64_"
make purge
make -j4 CFLAGS="-march=native" DLONG=1 ${SCSFLAGS} BLASLDFLAGS="${BLASLDFLAGS}" direct
make -j4 CFLAGS="-march=native" DLONG=1 ${SCSFLAGS} BLASLDFLAGS="${BLASLDFLAGS}" indirect
LD_LIBRARY_PATH=$JULIA_LD_PATH ./out/demo_socp_direct 1000 0.5 0.5 1
LD_LIBRARY_PATH=$JULIA_LD_PATH ./out/demo_socp_indirect 1000 0.5 0.5 1
#make clean
#make -j4 CFLAGS="-march=native" DLONG=0 ${SCSFLAGS} BLASLDFLAGS="${BLASLDFLAGS}" gpu then you need to set the env variable and ENV["JULIA_SCS_LIBRARY_PATH"] = "/home/kalmar/local/src/scs/out/"
using Pkg; Pkg.build(verbose=true)
using SCS; @assert SCS.scs_version() == "3.0.0"
using Test
include("test/test_problems.jl");
feasible_basic_problems(SCS.DirectSolver) and here's yggdrasil draft pull: JuliaPackaging/Yggdrasil#3654 |
buildkite failure is related to bug in scs-3.0.0; however even with scs master there are still some issues with the gpu solver |
hack MOI support store value,rowval,colptr for A and P directly this removes the need for ManagedScsMatrix add timing to ScsInfo updates to scs@caaba4d set default ScsSettings upon construction align scs_* ccalls with scs.h widen status in ScsInfo (scs@0218d11) update binaries to 3.0 bump to 0.9 update cones description in README/scs_solve docs re-add converts when constructing _ScsDataWrapper re-add test/options.jl pass a null ptr to scs if P is zero
Update build SHAs Restore ScsSettings constructor Change ScsSettings constructor Revert changes to build.jl Various updates
failure on 1.6 x86 suggests that we pass wrong size Int somewhere |
what's the status on this? @odow should this drop 1.0 and only test on 1.6 and stable? |
@matbesancon the real blocker is failure on buildkite related to cvxgrp/scs#180 EDIT: dropping julia-1.0 is just fine with me |
4d39439
to
a017e6e
Compare
but perhaps the current failure on buildkite is due to mismatch between OpenBLAS variants (LP64 vs ILP64). see JuliaPackaging/Yggdrasil#4113 |
@kalmarek I'm in favor of merging this even with the failing GPU build. It's not critical, and I think it should be fixed by your new SCS_GPU build. As a next step, I'd like to remove all traces of |
@kalmarek sorry for the late response, I unfortunately don't have access to a GPU machine I could use for some tests |
@odow very well! merge at will! |
@odow I just had a quick look at https://jump.dev/JuMP.jl/dev/developers/custom_solver_binaries/ this looks really good. I've been recently using https://docs.binarybuilder.org/stable/jll/#dev'ed-JLL-packages i.e. I |
I don't think this is a BLAS issue. The segfault is happening in the initialization routines, before anything reaches an optimize call. |
Okay. I'll merge this, but we'll hold off tagging until the GPU issue is fixed. |
TODO:
Closes #235