Skip to content

Commit cb93478

Browse files
author
Will Kimmerer
committed
fixes
1 parent 9978cb6 commit cb93478

File tree

3 files changed

+98
-139
lines changed

3 files changed

+98
-139
lines changed

benchmarks/Manifest.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ version = "0.1.6"
5353

5454
[[Compat]]
5555
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
56-
git-tree-sha1 = "96b0bc6c52df76506efc8a441c6cf1adcb1babc4"
56+
git-tree-sha1 = "b153278a25dd42c65abbf4e62344f9d22e59191b"
5757
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
58-
version = "3.42.0"
58+
version = "3.43.0"
5959

6060
[[CompilerSupportLibraries_jll]]
6161
deps = ["Artifacts", "Libdl"]
@@ -221,9 +221,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
221221

222222
[[LogExpFunctions]]
223223
deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"]
224-
git-tree-sha1 = "58f25e56b706f95125dcb796f39e1fb01d913a71"
224+
git-tree-sha1 = "a970d55c2ad8084ca317a4658ba6ce99b7523571"
225225
uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688"
226-
version = "0.3.10"
226+
version = "0.3.12"
227227

228228
[[Logging]]
229229
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
@@ -445,7 +445,7 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"
445445

446446
[[SuiteSparseGraphBLAS]]
447447
deps = ["ChainRulesCore", "HyperSparseMatrices", "Libdl", "LinearAlgebra", "MacroTools", "Preferences", "Random", "SSGraphBLAS_jll", "Serialization", "SparseArrays", "SpecialFunctions", "StorageOrders", "SuiteSparse"]
448-
git-tree-sha1 = "33576d2926608fdfe958334400eac5b73c58c7d1"
448+
git-tree-sha1 = "6f6472faf84bf1b93e44e4bc75b5904cd987c281"
449449
repo-rev = "master"
450450
repo-url = "https://github.com/JuliaSparse/SuiteSparseGraphBLAS.jl.git"
451451
uuid = "c2e53296-7b14-11e9-1210-bddfa8111e1d"

benchmarks/bench_subassign.jl

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ end
2626

2727
macro bench(ex)
2828
return quote
29+
$(esc(ex))
2930
local taccum = 0
3031
for i 1:3
3132
local t0 = time_ns()
@@ -57,7 +58,7 @@ function idx(C, A, I, J)
5758
else
5859
printstyled(stdout, "\nC[I, J] = A::SparseMatrixCSC($(size(A)))\n")
5960
result = @bench C[I, J] = A
60-
println(stdou, result, "s")
61+
println(stdout, result, "s")
6162
GC.gc()
6263
end
6364
flush(stdout)
@@ -75,10 +76,12 @@ function runthreadedidx(C, A, I, J)
7576
end
7677

7778
function singlebench(szC, szA)
78-
printstyled(stdout, "\nC($szC)[I, J] = A($szA))"; bold=true)
79+
printstyled(stdout, "\nC($szC)[I, J] = A($szA))\n"; bold=true)
7980
println(stdout, "################################")
80-
C = SuiteSparseGraphBLAS.wait(SuiteSparseGraphBLAS.gbrand(Float64, szC[1:2]..., szC[3]))
81-
A = SuiteSparseGraphBLAS.wait(SuiteSparseGraphBLAS.gbrand(Float64, szA[1:2]..., szA[3]))
81+
C = SuiteSparseGraphBLAS.gbrand(Float64, szC[1:2]..., szC[3])
82+
A = SuiteSparseGraphBLAS.gbrand(Float64, szA[1:2]..., szA[3])
83+
wait(C)
84+
wait(A)
8285
I = sample(1:size(C, 1), size(A, 1), replace = false)
8386
J = sample(1:size(C, 2), size(A, 2), replace = false)
8487

@@ -91,10 +94,11 @@ function singlebench(szC, szA)
9194
gbset(C, :format, SuiteSparseGraphBLAS.BYCOL)
9295
SuiteSparseGraphBLAS.wait(A)
9396
gbresultsC = runthreadedidx(C, A, I, J)
94-
A2 = SparseMatrixCSC(A)
95-
SAresults = tpose(A2)
97+
A = SparseMatrixCSC(A)
98+
C = SparseMatrixCSC(C)
99+
SAresults = idx(C, A, I, J)
96100
println(stdout, )
97-
printstyled(stdout, "\nRESULTS, C = copy(transpose(A)): \n"; bold=true, color=:green)
101+
printstyled(stdout, "\nRESULTS, C[I, J] = A: \n"; bold=true, color=:green)
98102
println(stdout, "################################")
99103
println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
100104
println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")

benchmarks/benchmarks2.jl

Lines changed: 82 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -145,143 +145,98 @@ function singlebench(pathornum)
145145
throw(ErrorException("Argument is not a path or SuiteSparseMatrixCollection ID number"))
146146
end
147147
name = basename(path)
148-
# A = SuiteSparseGraphBLAS.mmread(path)
149-
# if eltype(A) == Bool
150-
# A = Int64.(A)
151-
# end
152-
# GC.gc()
153-
# printstyled(stdout, "\n#################################################################################\n"; bold=true, color=:green)
154-
# printstyled(stdout, "Benchmarking $name:\n"; bold=true, color=:green)
155-
# printstyled(stdout, "#################################################################################\n"; bold=true, color=:green)
148+
A = SuiteSparseGraphBLAS.mmread(path)
149+
if eltype(A) == Bool
150+
A = Int64.(A)
151+
end
152+
GC.gc()
153+
printstyled(stdout, "\n#################################################################################\n"; bold=true, color=:green)
154+
printstyled(stdout, "Benchmarking $name:\n"; bold=true, color=:green)
155+
printstyled(stdout, "#################################################################################\n"; bold=true, color=:green)
156156

157-
# printstyled(stdout, "\nSparse * Vec\n"; bold=true)
158-
# println(stdout, "################################")
159-
# flush(stdout)
160-
# B = rand(eltype(A), size(A, 2))
161-
# B = GBVector(B)
162-
#
163-
# gbresultsR = runthreaded(A, B; accumdenseoutput=true)
164-
# gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
165-
# diag(A)
166-
# gbresultsC = runthreaded(A, B; accumdenseoutput=true)
167-
# SAresults = mxm(SparseMatrixCSC(A), Vector(B))
168-
# printstyled(stdout, "\nRESULTS, Sparse * DenseVec: \n"; bold=true, color=:green)
169-
# println(stdout, "################################")
170-
# println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
171-
# println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
172-
# println(stdout, "SparseArrays: $SAresults")
173-
# flush(stdout)
157+
printstyled(stdout, "\nSparse * Vec\n"; bold=true)
158+
println(stdout, "################################")
159+
flush(stdout)
160+
B = rand(eltype(A), size(A, 2))
161+
B = GBVector(B)
174162
#
175-
# printstyled(stdout, "\nSparse * (n x 2)\n"; bold=true)
176-
# println(stdout, "################################")
177-
# flush(stdout)
178-
# B = GBMatrix(rand(eltype(A), size(A, 2), 2))
179-
# gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
180-
# diag(A)
181-
# gbresultsR = runthreaded(A, B; accumdenseoutput=true)
182-
# gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
183-
# diag(A)
184-
# gbresultsC = runthreaded(A, B; accumdenseoutput=true)
185-
# SAresults = mxm(SparseMatrixCSC(A), Matrix(B))
186-
# printstyled(stdout, "\nRESULTS, Sparse * n x 2 Dense: \n"; bold=true, color=:green)
187-
# println(stdout, "################################")
188-
# println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
189-
# println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
190-
# println(stdout, "SparseArrays: $SAresults")
191-
# flush(stdout)
163+
gbresultsR = runthreaded(A, B; accumdenseoutput=true)
164+
gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
165+
diag(A)
166+
gbresultsC = runthreaded(A, B; accumdenseoutput=true)
167+
SAresults = mxm(SparseMatrixCSC(A), Vector(B))
168+
printstyled(stdout, "\nRESULTS, Sparse * DenseVec: \n"; bold=true, color=:green)
169+
println(stdout, "################################")
170+
println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
171+
println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
172+
println(stdout, "SparseArrays: $SAresults")
173+
flush(stdout)
192174
#
193-
# printstyled(stdout, "\nSparse * (n x 32)\n"; bold=true)
194-
# println(stdout, "################################")
195-
# flush(stdout)
196-
# B = GBMatrix(rand(eltype(A), size(A, 2), 32))
197-
# gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
198-
# diag(A)
199-
# gbresultsR = runthreaded(A, B; accumdenseoutput=true)
200-
# gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
201-
# diag(A)
202-
# gbresultsC = runthreaded(A, B; accumdenseoutput=true)
203-
# SAresults = mxm(SparseMatrixCSC(A), Matrix(B))
204-
# printstyled(stdout, "\nRESULTS, Sparse * n x 32 Dense: \n"; bold=true, color=:green)
205-
# println(stdout, "################################")
206-
# println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
207-
# println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
208-
# println(stdout, "SparseArrays: $SAresults")
209-
# flush(stdout)
175+
printstyled(stdout, "\nSparse * (n x 2)\n"; bold=true)
176+
println(stdout, "################################")
177+
flush(stdout)
178+
B = GBMatrix(rand(eltype(A), size(A, 2), 2))
179+
gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
180+
diag(A)
181+
gbresultsR = runthreaded(A, B; accumdenseoutput=true)
182+
gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
183+
diag(A)
184+
gbresultsC = runthreaded(A, B; accumdenseoutput=true)
185+
SAresults = mxm(SparseMatrixCSC(A), Matrix(B))
186+
printstyled(stdout, "\nRESULTS, Sparse * n x 2 Dense: \n"; bold=true, color=:green)
187+
println(stdout, "################################")
188+
println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
189+
println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
190+
println(stdout, "SparseArrays: $SAresults")
191+
flush(stdout)
210192
#
211-
# printstyled(stdout, "\nSparse * Sparse'"; bold=true)
212-
# println(stdout, "################################")
213-
# flush(stdout)
214-
# gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
215-
# diag(A)
216-
# gbresultsR = runthreaded(A, transpose(A))
217-
# gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
218-
# diag(A)
219-
# gbresultsC = runthreaded(A, transpose(A))
220-
# A2 = SparseMatrixCSC(A)
221-
# SAresults = mxm(A2, transpose(A2))
222-
# println(stdout, )
223-
# printstyled(stdout, "\nRESULTS, Sparse * Sparse: \n"; bold=true, color=:green)
224-
# println(stdout, "################################")
225-
# println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
226-
# println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
227-
# println(stdout, "SparseArrays: $SAresults")
228-
# flush(stdout)
193+
printstyled(stdout, "\nSparse * (n x 32)\n"; bold=true)
194+
println(stdout, "################################")
195+
flush(stdout)
196+
B = GBMatrix(rand(eltype(A), size(A, 2), 32))
197+
gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
198+
diag(A)
199+
gbresultsR = runthreaded(A, B; accumdenseoutput=true)
200+
gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
201+
diag(A)
202+
gbresultsC = runthreaded(A, B; accumdenseoutput=true)
203+
SAresults = mxm(SparseMatrixCSC(A), Matrix(B))
204+
printstyled(stdout, "\nRESULTS, Sparse * n x 32 Dense: \n"; bold=true, color=:green)
205+
println(stdout, "################################")
206+
println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
207+
println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
208+
println(stdout, "SparseArrays: $SAresults")
209+
flush(stdout)
229210
#
230-
# printstyled(stdout, "\nSparse * Sparse'"; bold=true)
231-
# println(stdout, "################################")
232-
# flush(stdout)
233-
# gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
234-
# diag(A)
235-
# gbresultsR = runthreaded(A, transpose(A))
236-
# gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
237-
# diag(A)
238-
# gbresultsC = runthreaded(A, transpose(A))
239-
# A2 = SparseMatrixCSC(A)
240-
# SAresults = mxm(A2, transpose(A2))
241-
# println(stdout, )
242-
# printstyled(stdout, "\nRESULTS, Sparse * Sparse: \n"; bold=true, color=:green)
243-
# println(stdout, "################################")
244-
# println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
245-
# println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
246-
# println(stdout, "SparseArrays: $SAresults")
247-
# flush(stdout)
248-
# printstyled(stdout, "\nC = copy(transpose(A))"; bold=true)
249-
# println(stdout, "################################")
250-
# flush(stdout)
251-
# gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
252-
# diag(A)
253-
# gbresultsR = runthreadedt(A)
254-
# gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
255-
# diag(A)
256-
# gbresultsC = runthreadedt(A)
257-
# A2 = SparseMatrixCSC(A)
258-
# SAresults = tpose(A2)
259-
# println(stdout, )
260-
# printstyled(stdout, "\nRESULTS, C = copy(transpose(A)): \n"; bold=true, color=:green)
261-
# println(stdout, "################################")
262-
# println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
263-
# println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
264-
# println(stdout, "SparseArrays: $SAresults")
265-
# flush(stdout)
266-
267-
268-
printstyled(stdout, "\nC[I, J] = A)"; bold=true)
211+
printstyled(stdout, "\nSparse * Sparse'"; bold=true)
269212
println(stdout, "################################")
270-
C = SuiteSparseGraphBLAS.wait(SuiteSparseGraphBLAS.gbrand(Float64, 25_000_000, 25_000_000, 5.76e-8))
271-
A = SuiteSparseGraphBLAS.wait(SuiteSparseGraphBLAS.gbrand(Float64, 5_000, 5_000, 0.002))
272-
I = rand(1:size(C, 1), size(A, 1))
273-
J = rand(1:size(C, 2), size(A, 2))
274-
275213
flush(stdout)
276214
gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
277-
gbset(C, :format, SuiteSparseGraphBLAS.BYROW)
278-
SuiteSparseGraphBLAS.wait(A)
279-
gbresultsR = runthreadedt(A, transpose(A))
215+
diag(A)
216+
gbresultsR = runthreaded(A, transpose(A))
280217
gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
281-
gbset(C, :format, SuiteSparseGraphBLAS.BYCOL)
282-
SuiteSparseGraphBLAS.wait(A)
283-
gbresultsC = runthreadedt(A, transpose(A))
218+
diag(A)
219+
gbresultsC = runthreaded(A, transpose(A))
284220
A2 = SparseMatrixCSC(A)
221+
SAresults = mxm(A2, transpose(A2))
222+
println(stdout, )
223+
printstyled(stdout, "\nRESULTS, Sparse * n x 32 Dense: \n"; bold=true, color=:green)
224+
println(stdout, "################################")
225+
println(stdout, "A by row (1, 2, 16 thread): $gbresultsR")
226+
println(stdout, "A by col (1, 2, 16 thread): $gbresultsC")
227+
println(stdout, "SparseArrays: $SAresults")
228+
flush(stdout)
229+
230+
printstyled(stdout, "\nC = copy(transpose(A))"; bold=true)
231+
println(stdout, "################################")
232+
flush(stdout)
233+
gbset(A, :format, SuiteSparseGraphBLAS.BYROW)
234+
diag(A)
235+
gbresultsR = runthreadedt(A)
236+
gbset(A, :format, SuiteSparseGraphBLAS.BYCOL)
237+
diag(A)
238+
gbresultsC = runthreadedt(A)
239+
A2 = SparseMatrixCSC(A)
285240
SAresults = tpose(A2)
286241
println(stdout, )
287242
printstyled(stdout, "\nRESULTS, C = copy(transpose(A)): \n"; bold=true, color=:green)

0 commit comments

Comments
 (0)