Skip to content
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

WIP: positive definite kernels, randomly pivoted Cholesky, and more (rebase of PR #72) #85

Closed
wants to merge 61 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
1641bde
update RandBLAS
rileyjmurray Jul 2, 2024
e684f1f
update RandBLAS
rileyjmurray Jul 3, 2024
43ce814
lockstep and block PCG
rileyjmurray Jul 4, 2024
ef6e80f
rpcholesky and squared exponetial kernel
rileyjmurray Jul 4, 2024
c77528b
variable renaming
rileyjmurray Jul 4, 2024
ee74ba1
RPCholesky is passing reaosnably tough tests!
rileyjmurray Jul 5, 2024
72bf03c
about to start writing tests for positive definite kernels
rileyjmurray Jul 5, 2024
42cb7d6
variable renaming
rileyjmurray Jul 5, 2024
3901c42
fix compiler warnings
rileyjmurray Jul 5, 2024
5c22ddf
tests and bugfixes
rileyjmurray Jul 5, 2024
6faf29e
reasonable test suite for current pd_kernels functionality
rileyjmurray Jul 5, 2024
65a6c6c
make rpchol_pc_data (analogous to nystrom_pc_data). Make a SpectralPr…
rileyjmurray Jul 7, 2024
a683fef
cast explicit 0.0 to (T) when needed
rileyjmurray Jul 7, 2024
1a1846c
refactored and expanded tests for low-memory spectral preconditioners
rileyjmurray Jul 7, 2024
d9a5e58
update SpectralPrecond to have operator() that conforms to the Symmet…
rileyjmurray Jul 7, 2024
658c8e6
remove unnecessary line
rileyjmurray Jul 7, 2024
c0f5660
actually use max_iters argument
rileyjmurray Jul 7, 2024
fcc829e
bugfixes for separable problems (num_regs > 1)
rileyjmurray Jul 7, 2024
c7ae484
guard against malformed input
rileyjmurray Jul 7, 2024
3129e78
beginnings of support for KRILL extensions
rileyjmurray Jul 7, 2024
185cd82
expanded tests
rileyjmurray Jul 7, 2024
d55fc8e
move SpectralPrecond into a new namespace, RandLAPACK::linops
rileyjmurray Jul 7, 2024
76e3852
created test_linops file. added operator(i,j) to SymmetricLinearOpera…
rileyjmurray Jul 7, 2024
7bf40d1
actually use tol parameter for termination criteria in lockorblock_pcg
rileyjmurray Jul 11, 2024
665f6f6
rename krill_regularization_sweep_rpchol to krill_separable_rpchol, a…
rileyjmurray Jul 11, 2024
6f65fe7
add option to control the fraction of singular values equal to one in…
rileyjmurray Jul 11, 2024
c2a6fe8
change implementation of A(i,j) for RegExplicitSymLinOp objects; the …
rileyjmurray Jul 11, 2024
b0e1178
include rl_krillx.hh in list of RandLAPACK sources
rileyjmurray Jul 11, 2024
ad8438b
left out of last commit
rileyjmurray Jul 11, 2024
ae38902
reduce code duplication across tests that need PSD matrices. Added pr…
rileyjmurray Jul 11, 2024
8805201
convenience function for matrix generation. Remove some comments.
rileyjmurray Jul 11, 2024
fb0c85e
minor updates to logging
rileyjmurray Jul 11, 2024
201402a
slightly revise interface kill_separable_rpchol. Materially revise AP…
rileyjmurray Jul 11, 2024
a61fbab
Implementation of linear operator class for the squared exponential k…
rileyjmurray Jul 11, 2024
cbbe7e0
improve (but dont fully fix) method of including comparison.hh from R…
rileyjmurray Jul 11, 2024
dceb6ab
reduce code duplication in tests
rileyjmurray Jul 11, 2024
10c24b3
basic test for separable KRILL
rileyjmurray Jul 11, 2024
5d63391
better exit message
rileyjmurray Jul 12, 2024
309d9a6
add optional argument to standardize_dataset function. Add an OpenMP …
rileyjmurray Jul 12, 2024
fa8bc0c
improve efficiency of applying SEKLOs
rileyjmurray Jul 13, 2024
0175b07
Parallelize compute_columns (needed in rp_cholesky). Improve logging.
rileyjmurray Jul 13, 2024
ac8d646
change StatefulSeminorm struct to expose the operator() function inst…
rileyjmurray Jul 14, 2024
cfbc1a5
rename krill_separable_rpchol to krill_full_rpchol and tweak its impl…
rileyjmurray Jul 14, 2024
0d258b8
left out of last commit
rileyjmurray Jul 14, 2024
7250e68
beginnings of benchmarking script for KRILL
rileyjmurray Jul 14, 2024
043e57e
more constructors for SpectralPrecond. Specification for a helper fun…
rileyjmurray Jul 14, 2024
8624cee
check in
rileyjmurray Jul 24, 2024
d5966a7
too important to risk losing. But will be removed before merge.
rileyjmurray Sep 8, 2024
4791780
update RandBLAS
rileyjmurray Sep 11, 2024
ee756b3
refactor to account for latest RandBLAS changes. One QB test is faili…
rileyjmurray Sep 11, 2024
cb04851
all tests pass except one rogue QB test
rileyjmurray Sep 11, 2024
811a8fd
make defaults explicit
rileyjmurray Sep 11, 2024
8597b77
Change compiler flags to benchmarks (we can revisit). Possibly-tempoa…
rileyjmurray Sep 12, 2024
d28160b
fixes
rileyjmurray Sep 12, 2024
9290586
add a KPCA benchmark. Rename krill_simple.cc to krr.cc. Rename SEKLO …
rileyjmurray Sep 12, 2024
63e59fb
left out of last commit
rileyjmurray Sep 12, 2024
decf258
update RandBLAS
rileyjmurray Sep 13, 2024
1dba169
changes for RandBLAS 1.0
rileyjmurray Sep 13, 2024
9630d3b
kernel PCA example
rileyjmurray Sep 13, 2024
834681a
add memory logging
rileyjmurray Sep 14, 2024
c747f76
Merge branch 'main' into lockstep-2
rileyjmurray Oct 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
benchmark/build/**
benchmark/bench_kernelalgs/**.py
benchmark/bench_kernelalgs/rpcpy

# vim
*.sw*
Expand Down
51 changes: 39 additions & 12 deletions CMake/rl_version.cmake
Original file line number Diff line number Diff line change
@@ -1,27 +1,54 @@
# Initialize tmp variable
set(tmp)

# Find Git executable
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE}
--git-dir=${CMAKE_SOURCE_DIR}/.git describe
--tags --match "[0-9]*.[0-9]*.[0-9]*"
OUTPUT_VARIABLE tmp OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_QUIET)
message(STATUS "Git found: ${GIT_EXECUTABLE}")
execute_process(
COMMAND ${GIT_EXECUTABLE} --git-dir=${CMAKE_SOURCE_DIR}/.git describe --tags --match "[0-9]*.[0-9]*.[0-9]*"
OUTPUT_VARIABLE tmp
OUTPUT_STRIP_TRAILING_WHITESPACE
ERROR_VARIABLE git_error
RESULT_VARIABLE git_result
)

# Print the result of the Git command
message(STATUS "Git command result: ${git_result}")
message(STATUS "Git command output: ${tmp}")
if(NOT git_result EQUAL 0)
message(WARNING "Git command failed with error: ${git_error}")
set(tmp "0.0.0")
endif()
else()
message(WARNING "Git not found, using fallback version 0.0.0")
set(tmp "0.0.0")
endif()

# Check if tmp is empty and set a fallback version if necessary
if(NOT tmp)
message(WARNING "Git describe output is empty, using fallback version 0.0.0")
set(tmp "0.0.0")
endif()

set(RandLAPACK_VERSION ${tmp} CACHE STRING "RandLAPACK version" FORCE)
# Debugging: Print tmp before setting RandLAPACK_VERSION
message(STATUS "tmp before setting RandLAPACK_VERSION: ${tmp}")

string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*$)"
"\\1" RandLAPACK_VERSION_MAJOR ${RandLAPACK_VERSION})
# Set RandLAPACK_VERSION without CACHE option
set(RandLAPACK_VERSION "${tmp}")
message(STATUS "RandLAPACK_VERSION after setting: ${RandLAPACK_VERSION}")

string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*$)"
"\\2" RandLAPACK_VERSION_MINOR ${RandLAPACK_VERSION})
# Ensure RandLAPACK_VERSION is not empty
if(NOT RandLAPACK_VERSION)
message(FATAL_ERROR "RandLAPACK_VERSION is empty")
endif()

string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*$)"
"\\3" RandLAPACK_VERSION_PATCH ${RandLAPACK_VERSION})
# Extract major, minor, and patch versions
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)$" "\\1" RandLAPACK_VERSION_MAJOR "${RandLAPACK_VERSION}")
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)$" "\\2" RandLAPACK_VERSION_MINOR "${RandLAPACK_VERSION}")
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(.*)$" "\\3" RandLAPACK_VERSION_PATCH "${RandLAPACK_VERSION}")

# Print extracted version components
message(STATUS "RandLAPACK_VERSION_MAJOR=${RandLAPACK_VERSION_MAJOR}")
message(STATUS "RandLAPACK_VERSION_MINOR=${RandLAPACK_VERSION_MINOR}")
message(STATUS "RandLAPACK_VERSION_PATCH=${RandLAPACK_VERSION_PATCH}")
2 changes: 1 addition & 1 deletion RandBLAS
Submodule RandBLAS updated 120 files
8 changes: 8 additions & 0 deletions RandLAPACK.hh
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
#ifndef RANDLAPACK_HH
#define RANDLAPACK_HH

// config and dependencies
#include "RandLAPACK/rl_blaspp.hh"
#include "RandLAPACK/rl_lapackpp.hh"
#include "RandBLAS.hh"

// misc
#include "RandLAPACK/misc/rl_util.hh"
#include "RandLAPACK/misc/rl_linops.hh"
#include "RandLAPACK/misc/rl_gen.hh"
#include "RandLAPACK/misc/rl_pdkernels.hh"

// Computational routines
#include "RandLAPACK/comps/rl_determiter.hh"
Expand All @@ -15,13 +21,15 @@
#include "RandLAPACK/comps/rl_syps.hh"
#include "RandLAPACK/comps/rl_syrf.hh"
#include "RandLAPACK/comps/rl_orth.hh"
#include "RandLAPACK/comps/rl_rpchol.hh"

// Drivers
#include "RandLAPACK/drivers/rl_rsvd.hh"
#include "RandLAPACK/drivers/rl_cqrrpt.hh"
#include "RandLAPACK/drivers/rl_cqrrp.hh"
#include "RandLAPACK/drivers/rl_revd2.hh"
#include "RandLAPACK/drivers/rl_rbki.hh"
#include "RandLAPACK/drivers/rl_krillx.hh"

// Cuda functions - issues with linking/visibility when present if the below is uncommented.
// A temporary fix is to add the below directly in the test/benchmark files.
Expand Down
2 changes: 2 additions & 0 deletions RandLAPACK/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ set(RandLAPACK_cxx_sources
rl_cqrrp.hh
rl_rsvd.hh
rl_revd2.hh
rl_krillx.hh
rl_qb.hh
rl_orth.hh
rl_util.hh
Expand All @@ -14,6 +15,7 @@ set(RandLAPACK_cxx_sources
rl_rf.hh
rl_syps.hh
rl_syrf.hh
rl_rpchol.hh
rl_gen.hh
rl_blaspp.hh
rl_linops.hh
Expand Down
Loading
Loading