Skip to content

Commit bc67017

Browse files
Simplify BLIS integration to use existing test framework
- Removed dedicated BLIS test files and test group - Added BLISLUFactorization to existing test loops in basictests.jl - Added conditional loading of BLIS dependencies in tests - BLIS tests now run as part of standard "Concrete Factorizations" test suite - Tests are automatically skipped if BLIS dependencies are not available This follows the established pattern used by other factorization methods like MKL, making the integration cleaner and more maintainable. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent c188df2 commit bc67017

File tree

5 files changed

+16
-107
lines changed

5 files changed

+16
-107
lines changed

Project.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2"
4545
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
4646

4747
[extensions]
48-
LinearSolveBandedMatricesExt = "BandedMatrices"
4948
LinearSolveBLISExt = ["blis_jll", "LAPACK_jll"]
49+
LinearSolveBandedMatricesExt = "BandedMatrices"
5050
LinearSolveBlockDiagonalsExt = "BlockDiagonals"
5151
LinearSolveCUDAExt = "CUDA"
5252
LinearSolveEnzymeExt = "Enzyme"
@@ -61,7 +61,6 @@ LinearSolveRecursiveArrayToolsExt = "RecursiveArrayTools"
6161
[compat]
6262
ArrayInterface = "7.4.11"
6363
BandedMatrices = "1"
64-
blis_jll = "0.9.0"
6564
BlockDiagonals = "0.1"
6665
ConcreteStructs = "0.2"
6766
DocStringExtensions = "0.9"
@@ -72,13 +71,13 @@ GPUArraysCore = "0.1"
7271
HYPRE = "1.4.0"
7372
InteractiveUtils = "1.6"
7473
IterativeSolvers = "0.9.3"
75-
Libdl = "1.6"
76-
LinearAlgebra = "1.9"
7774
KLU = "0.3.0, 0.4"
7875
KernelAbstractions = "0.9"
7976
Krylov = "0.9"
8077
KrylovKit = "0.6"
78+
Libdl = "1.6"
8179
LAPACK_jll = "3"
80+
LinearAlgebra = "1.9"
8281
PrecompileTools = "1"
8382
Preferences = "1"
8483
RecursiveArrayTools = "2"
@@ -91,6 +90,7 @@ Setfield = "1"
9190
SparseArrays = "1.9"
9291
Sparspak = "0.3.6"
9392
UnPack = "1"
93+
blis_jll = "0.9.0"
9494
julia = "1.9"
9595

9696
[extras]

test/basictests.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ using IterativeSolvers, KrylovKit, MKL_jll
44
using Test
55
import Random
66

7+
# Try to load BLIS extension
8+
try
9+
using blis_jll, LAPACK_jll
10+
catch LoadError
11+
# BLIS dependencies not available, tests will be skipped
12+
end
13+
714
const Dual64 = ForwardDiff.Dual{Nothing, Float64, 1}
815

916
n = 8
@@ -230,6 +237,11 @@ end
230237
if VERSION >= v"1.9" && LinearSolve.usemkl
231238
push!(test_algs, MKLLUFactorization())
232239
end
240+
241+
# Test BLIS if extension is available
242+
if Base.get_extension(LinearSolve, :LinearSolveBLISExt) !== nothing
243+
push!(test_algs, BLISLUFactorization())
244+
end
233245

234246
@testset "Concrete Factorizations" begin
235247
for alg in test_algs

test/blis/Project.toml

Lines changed: 0 additions & 6 deletions
This file was deleted.

test/blis/blis.jl

Lines changed: 0 additions & 90 deletions
This file was deleted.

test/runtests.jl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,6 @@ if GROUP == "LinearSolvePardiso"
3232
@time @safetestset "Pardiso" include("pardiso/pardiso.jl")
3333
end
3434

35-
if GROUP == "LinearSolveBLIS"
36-
Pkg.activate("blis")
37-
Pkg.develop(PackageSpec(path = dirname(@__DIR__)))
38-
Pkg.instantiate()
39-
@time @safetestset "BLIS" include("blis/blis.jl")
40-
end
41-
4235
if Base.Sys.islinux() && (GROUP == "All" || GROUP == "LinearSolveHYPRE") && HAS_EXTENSIONS
4336
@time @safetestset "LinearSolveHYPRE" include("hypretests.jl")
4437
end

0 commit comments

Comments
 (0)