Skip to content

Commit 98c6913

Browse files
committed
Squashed commit of the following:
commit f9bbd84 Author: st-- <[email protected]> Date: Fri Jan 28 09:11:50 2022 +0100 make nystrom work with AbstractVector (#427) * make nystrom work with AbstractVector * add test * Update test/approximations/nystrom.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * patch bump * Update test/approximations/nystrom.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: David Widmann <[email protected]> * Apply suggestions from code review * deprecate * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: David Widmann <[email protected]> * Apply suggestions from code review Co-authored-by: Théo Galy-Fajou <[email protected]> * Update src/approximations/nystrom.jl Co-authored-by: Théo Galy-Fajou <[email protected]> * Update src/approximations/nystrom.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: David Widmann <[email protected]> Co-authored-by: Théo Galy-Fajou <[email protected]> commit d1c68a9 Author: st-- <[email protected]> Date: Thu Jan 13 22:33:43 2022 +0100 fix Distances compat (#423) * CompatHelper: bump compat for Distances to 0.10 for package test, (keep existing compat) * try out Theo's fix * fix test compat * use ForwardDiff for chain rule test of SqMahalanobis * test on 1.4 instead of 1.3 - see if the chainrules test passes there * revert version branch * revert to 1.3 * test_broken for older Julia versions Co-authored-by: CompatHelper Julia <[email protected]> commit 93d33c2 Author: st-- <[email protected]> Date: Wed Jan 12 14:11:14 2022 +0100 fix figure & cleanup (#422) * fix figure & cleanup * bump LIBSVM compat & Manifest * improve writing, replaces #321 commit 40cb59e Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed Jan 12 09:39:01 2022 +0200 CompatHelper: bump compat for Kronecker to 0.5 for package docs, (keep existing compat) (#367) * CompatHelper: bump compat for Kronecker to 0.5 for package docs, (keep existing compat) * ] up Co-authored-by: CompatHelper Julia <[email protected]> Co-authored-by: st-- <[email protected]> commit 7204529 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue Jan 11 18:37:23 2022 +0200 CompatHelper: bump compat for Kronecker to 0.5 for package test, (keep existing compat) (#366) Co-authored-by: CompatHelper Julia <[email protected]> Co-authored-by: st-- <[email protected]> commit 924925d Author: st-- <[email protected]> Date: Tue Jan 11 16:26:02 2022 +0100 switch SVM example to half-moon dataset (#421) commit 992b665 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri Dec 24 12:18:56 2021 +0200 CompatHelper: bump compat for SpecialFunctions to 2 for package test, (keep existing compat) (#412) Co-authored-by: CompatHelper Julia <[email protected]> Co-authored-by: Théo Galy-Fajou <[email protected]> Co-authored-by: st-- <[email protected]> commit 04fa7f7 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu Dec 23 13:33:59 2021 +0200 CompatHelper: bump compat for SpecialFunctions to 2, (keep existing compat) (#411) Co-authored-by: CompatHelper Julia <[email protected]> Co-authored-by: Théo Galy-Fajou <[email protected]> Co-authored-by: st-- <[email protected]> commit c0fc3e1 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu Dec 23 01:10:40 2021 +0200 CompatHelper: add new compat entry for Compat at version 3 for package test, (keep existing compat) (#418) Co-authored-by: CompatHelper Julia <[email protected]> commit 05fe340 Author: st-- <[email protected]> Date: Tue Dec 21 00:49:37 2021 +0200 use only() instead of first() (#403) * use only() instead of first() for 1-"vectors" that were for the benefit of Flux * fix one test that should not have worked as it was * add missing scalar Sinus constructor commit 2d17212 Author: st-- <[email protected]> Date: Sat Dec 18 23:43:30 2021 +0200 Zygote AD failure workarounds & test cleanup (#414) Zygote AD failures: * revert #409 (test_utils workaround for broken Zygote - now working again) * disable broken Zygote AD test for ChainTransform Improved tests: * finer-grained testsets * add missing test cases to test_AD * replace test_FiniteDiff with test_AD(..., :FiniteDiff, ...) * remove code duplication commit 3c49949 Author: Théo Galy-Fajou <[email protected]> Date: Wed Nov 24 18:32:19 2021 +0100 Fix typo in valid_inputs error (#408) * Fix typo in valid_inputs error * Update src/utils.jl Co-authored-by: David Widmann <[email protected]> Co-authored-by: David Widmann <[email protected]> commit 9955044 Author: st-- <[email protected]> Date: Wed Nov 24 18:55:18 2021 +0200 Fix for Zygote 0.6.30 breaking our tests (#409) * restrict Zygote to <0.6.30 * revert Zygote test restriction and add finer-grained testset * Update test/utils.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * revert testset * mark test_broken * Use `@test_throws` instead of `@test_broken` Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: David Widmann <[email protected]> commit 33d64d1 Author: Théo Galy-Fajou <[email protected]> Date: Thu Nov 4 14:23:57 2021 +0100 Add benchmarking CI (#399) * Add benchmark file * delete old benchmarks * Add github action * Add Project * Apply suggestions from code review Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Missing end of line Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 360ce10 Author: David Widmann <[email protected]> Date: Tue Nov 2 11:09:58 2021 +0100 Update docstring of `GibbsKernel` (#395)
1 parent 20a9819 commit 98c6913

37 files changed

+527
-486
lines changed

.github/workflows/benchmark.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Run benchmarks
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
Benchmark:
8+
runs-on: ubuntu-latest
9+
if: contains(github.event.pull_request.labels.*.name, 'performance critical')
10+
env:
11+
JULIA_DEBUG: BenchmarkCI
12+
steps:
13+
- uses: actions/checkout@v2
14+
- uses: julia-actions/setup-julia@latest
15+
with:
16+
version: 1.6
17+
- name: Install dependencies
18+
run: julia -e 'using Pkg; pkg"add PkgBenchmark BenchmarkCI"'
19+
- name: Run benchmarks
20+
run: julia -e "using BenchmarkCI; BenchmarkCI.judge()"
21+
- name: Post results
22+
run: julia -e "using BenchmarkCI; BenchmarkCI.postjudge()"
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
/test/Manifest.toml
55
coverage/
66
.DS_store
7+
benchmark/Manifest.toml

Project.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "KernelFunctions"
22
uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392"
3-
version = "0.10.26"
3+
version = "0.10.28"
44

55
[deps]
66
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
@@ -30,7 +30,7 @@ Functors = "0.1, 0.2"
3030
IrrationalConstants = "0.1"
3131
LogExpFunctions = "0.2.1, 0.3"
3232
Requires = "1.0.1"
33-
SpecialFunctions = "0.8, 0.9, 0.10, 1"
33+
SpecialFunctions = "0.8, 0.9, 0.10, 1, 2"
3434
StatsBase = "0.32, 0.33"
3535
TensorCore = "0.1"
3636
ZygoteRules = "0.2"

benchmark/MLKernels.jl

-22
This file was deleted.

benchmark/Project.toml

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[deps]
2+
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
3+
KernelFunctions = "ec8451be-7e33-11e9-00cf-bbf324bd1392"

benchmark/benchmarks.jl

+39-16
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,46 @@
11
using BenchmarkTools
2-
using Random
3-
using Distances, LinearAlgebra
2+
using KernelFunctions
43

5-
const SUITE = BenchmarkGroup()
4+
N1 = 10
5+
N2 = 20
66

7-
Random.seed!(1234)
7+
X = rand(N1, N2)
8+
Xc = ColVecs(X)
9+
Xr = RowVecs(X)
10+
Xv = collect.(eachcol(X))
11+
Y = rand(N1, N2)
12+
Yc = ColVecs(Y)
13+
Yr = RowVecs(Y)
14+
Yv = collect.(eachcol(Y))
815

9-
dim = 50
10-
N1 = 1000;
11-
N2 = 500;
12-
alpha = 2.0
16+
# Create the general suite of benchmarks
17+
SUITE = BenchmarkGroup()
1318

14-
X = rand(Float64, N1, dim)
15-
Y = rand(Float64, N2, dim)
19+
kernels = Dict(
20+
"SqExponential" => SqExponentialKernel(), "Exponential" => ExponentialKernel()
21+
)
1622

17-
KXY = rand(Float64, N1, N2)
18-
KX = rand(Float64, N1, N1)
19-
sKX = Symmetric(rand(Float64, N1, N1))
20-
kX = rand(Float64, N1)
23+
inputtypes = Dict("ColVecs" => (Xc, Yc), "RowVecs" => (Xr, Yr), "Vecs" => (Xv, Yv))
2124

22-
include("kernelmatrix.jl")
23-
include("MLKernels.jl")
25+
functions = Dict(
26+
"kernelmatrixX" => (kernel, X, Y) -> kernelmatrix(kernel, X),
27+
"kernelmatrixXY" => (kernel, X, Y) -> kernelmatrix(kernel, X, Y),
28+
"kernelmatrix_diagX" => (kernel, X, Y) -> kernelmatrix_diag(kernel, X),
29+
"kernelmatrix_diagXY" => (kernel, X, Y) -> kernelmatrix_diag(kernel, X, Y),
30+
)
31+
32+
for (kname, kernel) in kernels
33+
SUITE[kname] = sk = BenchmarkGroup()
34+
for (inputname, (X, Y)) in inputtypes
35+
sk[inputname] = si = BenchmarkGroup()
36+
for (fname, f) in functions
37+
si[fname] = @benchmarkable $f($kernel, $X, $Y)
38+
end
39+
end
40+
end
41+
42+
# Uncomment the following to run benchmark locally
43+
44+
# tune!(SUITE)
45+
46+
# results = run(SUITE, verbose=true)

benchmark/kernelmatrix.jl

-39
This file was deleted.

0 commit comments

Comments
 (0)