# \[ANN\] SCS-0.7.1 comes with GPU support

**URL:** <https://discourse.julialang.org/t/ann-scs-0-7-1-comes-with-gpu-support/49240>\
**Category:** Package Announcements\
**Tags:** jump\
**Created:** [October 29, 2020, 2:28pm UTC](https://discourse.julialang.org/t/ann-scs-0-7-1-comes-with-gpu-support/49240 "2020-10-29T14:28:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![abulak](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abulak/32/28314_2.png) [@abulak](https://discourse.julialang.org/u/abulak)\
**Post date:** [October 29, 2020, 2:28pm UTC](https://discourse.julialang.org/t/ann-scs-0-7-1-comes-with-gpu-support/49240/1 "2020-10-29T14:28:00Z")

</div>

Dear all,

I’m pleased to announce the release of [SCS.jl-0.7.1](https://github.com/jump-dev/SCS.jl), which finally plumbed the optional support for the gpu indirect solver through jlls.

Since we didn’t want to depend on `CUDA_jll` (a huge dependancy), the gpu solver is enabled only if `using SCS` is done AFTER `using CUDA_jll`. The `SCS_GPU_jll` providing the support depends on `CUDA_jll@9.0`, so remember to pin the version appropriately 😉

One way to make sure that the gpu solver is available is to check `SCS.available_solvers`:

```julia
julia> import Pkg

julia> Pkg.add(Pkg.PackageSpec(name = "CUDA_jll", version = "9.0"))

julia> using CUDA_jll # This must be called before `using SCS`.

julia> using SCS

julia> SCS.available_solvers
3-element Array{DataType,1}:
 SCS.DirectSolver
 SCS.IndirectSolver
 SCS.GpuIndirectSolver

julia> solver = SCS.Optimizer(linear_solver = SCS.GpuIndirectSolver)
SCS.Optimizer

```

Of course the support is very young, so don’t forget to file issues/submit PRs is something goes awry 😉

---

<div class="post-metadata">

**Author:** ![davidschlegel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidschlegel/32/29711_2.png) [@davidschlegel](https://discourse.julialang.org/u/davidschlegel)\
**Post date:** [October 5, 2021, 7:40am UTC](https://discourse.julialang.org/t/ann-scs-0-7-1-comes-with-gpu-support/49240/2 "2021-10-05T07:40:07Z")

</div>

Thank you for providing GPU support for SCS!  
However, I have trouble getting it to work. After following your instructions on SCS.jl-0.7.1, and CUDA\_jll version 9.0, I get

```julia
julia> using CUDA_jll
[NVBLAS] NVBLAS_CONFIG_FILE environment variable is NOT set : relying on default config filename 'nvblas.conf'
[NVBLAS] Cannot open default config file 'nvblas.conf'
[NVBLAS] Config parsed
[NVBLAS] CPU Blas library need to be provided

```

after trying to run an SCS optimization using the GPUIndirectSolver, I get

```julia
ERROR: could not load library "/home/david/.julia/artifacts/8ae303d28090f987e71f6f5337ab4cf2d8a458bd/lib/libscsgpuindir.so"
libcudart.so.10.1: cannot open shared object file: No such file or directory

```

Did the state-of-the-art GPU integration change?  
Do I have to recompile SCS from source?  
Any help appreciated!

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [October 5, 2021, 10:41pm UTC](https://discourse.julialang.org/t/ann-scs-0-7-1-comes-with-gpu-support/49240/3 "2021-10-05T22:41:09Z")

</div>

> Did the state-of-the-art GPU integration change?

Try the latest instructions: [GitHub - jump-dev/SCS.jl: Julia Wrapper for SCS (https://github.com/cvxgrp/scs)](https://github.com/jump-dev/SCS.jl#scs-on-gpu). You need CUDA\_jll@10.1
