Commit Graph

213 Commits

Author SHA1 Message Date
François Coppens
fa61b50bb0 - Optimize WB3 by inlining matmuls and simplifying copies
- Occasional code restyling with 'clang-formant --style=LLVM'.
2021-07-12 08:13:58 +02:00
Pablo Oliveira
f98b4f926b Define HDF5_CXX 2021-07-09 16:54:37 +02:00
François Coppens
bc0cd03f02
Merge pull request #48 from fmgjcoppens/cycles_from_file 2021-07-09 16:09:24 +02:00
François Coppens
4f0aaa5763 Cosmetics 2021-07-09 16:00:29 +02:00
Francois Coppens
43b996dad9 - Added tests/fnu_test_h5.cpp that takes its input cycle numbers from a file instead of from the command line.
- Suppressed all debug output so as to not polute performance measurements.
2021-07-09 14:30:37 +02:00
François Coppens
99fcaa60b6
Merge pull request #47 from pablooliveira/optimize-wb2
Optimize WB2 by inlining matmuls and simplifying copies
2021-07-08 14:26:00 +02:00
Pablo Oliveira
c30967e63d Optimize WB2 by inlining matmuls and simplifying copies 2021-07-08 12:53:50 +02:00
François Coppens
61df6e2827
Merge pull request #46 from fmgjcoppens/bug/woodbury
Solved bug in Woodbury and SM/WB mix kernels
2021-07-08 11:15:59 +02:00
François Coppens
67f5379bea - Moved check on determinants in Woodbury kernels before inversion of B that was there by mistake.
- Split SM2 into SM2 and SM2star so that keeps all updates for later when used in combination with the Woodbury kernels to improve the numerical accuracy to the same level as that of SM2.
2021-07-07 12:06:31 +02:00
François Coppens
6f282f329c
Merge pull request #45 from fmgjcoppens/opt_UV
Optimised matrix multiplication with V
2021-07-02 11:12:43 +02:00
François Coppens
f6f8746bef Optimised matrix multiplication with V. 2021-07-01 13:44:28 +02:00
François Coppens
e3dc3632a4
Merge pull request #44 from fmgjcoppens:cleanup
SMWB cleanup & performance measurements
2021-06-23 17:40:33 +02:00
François Coppens
7b9b176545 - Replaced the copy-arrays in the combined SMWB kernels with pointers
- Added loop in test_cycle() to repeat a single update cycle n-times for performance testing.
2021-06-23 17:28:29 +02:00
François Coppens
a4397f1496
Merge pull request #43 from fmgjcoppens/woodbury
Woodbury cleanup
2021-06-21 14:44:05 +02:00
Francois Coppens
837e160f17 - Added various Sherman-Morrison-Woodbury kernels
- Separated debug information into 2 different debug levels.
2021-06-21 14:33:35 +02:00
Aurélien Delval
4b34fd7e17
Merge pull request #42 from PurplePachyderm/dev
Remove source code of vfc_ci and improve vfc_test_h5.cpp
2021-06-21 11:44:15 +02:00
Aurélien Delval
0114fd7b14 Remove source code of vfc_ci and improve vfc_test_h5.cpp
Since vfc_ci has been merged wih the main verificarlo repository and is
now available in Verificarlo's Docker, the source code of vfc_ci can
now be removed.

Also, vfc_test_h5.cpp has been modified so that every algorithm is
called directly. This results in a much shorter vfc_tests_config.json
since we don't need to vall vfc_test_h5 with all algorithms as
arguments.
2021-06-17 16:50:42 +02:00
François Coppens
cb8cb2c426
Merge pull request #41 from fmgjcoppens/woodbury
Corrected tiny bug in Verificarlo makefile.
2021-06-15 12:21:46 +02:00
Francois Coppens
8e250ae39f Corrected tiny bug in Verificarlo makefile. 2021-06-15 12:18:49 +02:00
François Coppens
8dac636c94
Merge pull request #40 from fmgjcoppens/woodbury
Woodbury  2x2 and 3x3 kernels + 
Unified Sherman-Morrison-Woodbury kernel (SMWB1).
2021-06-15 12:02:34 +02:00
Francois Coppens
22590b7684 * Woodburry 3x3 kernel fixed
* Written Unified Sherman-Morrison-Woodbury kernel that partitions
  the updates in blocks of 3 and tries them with Woodbury 3x3.
  The remainder of 2 or one are attempted with Woodbury 2x2 and SM2.

For now the unified kernel gives fails where pure SM2 does not.
I suspect there is something going wrong in how the updates are partitioned.
2021-06-15 11:53:04 +02:00
François Coppens
b6efc97233 Woodbury 2x2 kernel fixed and working. 2021-06-14 15:05:39 +02:00
Francois Coppens
573947fe2d Woodbury debugging... 2021-06-11 08:46:39 +02:00
Francois Coppens
61844da5d3 Corrected array initialisations. 2021-06-10 11:25:31 +02:00
Francois Coppens
efe96cbeea First implementation of Woodbury 2x2 and 3x3 kernels. 2021-06-10 08:46:40 +02:00
François Coppens
288bc83e19 Created Woodbery kernel infrastructure and started wrinting Woodbery 2x2 kernel. 2021-06-04 16:50:49 +02:00
Pablo de Oliveira Castro
65bb0fd0b5
Merge pull request #39 from PurplePachyderm/dev
Update vfc_ci test variables and minor bugfix in HTML report
2021-05-25 10:30:24 +02:00
Aurélien Delval
375f4cd200 Correct some widget in the report and test config 2021-05-25 10:08:04 +02:00
Aurélien Delval
b283f403dc Update Verificarlo CI test variables
Tests are now using squared Frobenius norm and res2
2021-05-25 09:56:34 +02:00
François Coppens
8883bb3372
Merge pull request #38 from fmgjcoppens:fix/makefile
Fixed Makefiles
2021-05-21 16:38:23 +02:00
Francois Coppens
68584d9c99 - Fixed bug in Makefile so everything compiles against MKL for all compilers.
- Updates Makefile.verificarlo to enable linking against MKL
2021-05-21 16:19:08 +02:00
François Coppens
5c9b9f359c
Merge pull request #37 from fmgjcoppens:add/lapack
add/lapack
2021-05-21 12:00:55 +02:00
François Coppens
c8df88b4ef Made lapack/MKL inclusion in code dependent on preprocessor macro 'MKL'. Automatic build should now succeed. 2021-05-21 11:54:57 +02:00
François Coppens
6c9c68c93d Added LAPACK option to test_h5.cpp to compare residuals and number of operations. 2021-05-20 19:21:59 +02:00
François Coppens
ab661ad785
Merge pull request #35 from fmgjcoppens/fix/abs2fabs
Fix/abs2fabs
2021-05-19 15:27:43 +02:00
François Coppens
17c8a1c7a0 Code restyled. Added restyling script. Code for determinant is not working because it gets stuck in an infinite recursion loop. 2021-05-19 15:23:19 +02:00
François Coppens
0e5bbbbffb Replaced inappropriate std::abs() occurences with std::fabs() in C++ code. 2021-05-12 16:11:47 +02:00
François Coppens
5693e177ba Re-applied code formatting on C++ code with clang-format --style=llvm. 2021-05-10 14:50:45 +02:00
François Coppens
0984682bdf
Merge pull request #34 from fmgjcoppens/fix/slagel_splitting
Various fixes
2021-05-10 14:29:02 +02:00
Francois Coppens
adf893ed6f - Various fixes
- Merged MaponiA3 and MaponiA3S into one file.
2021-05-07 17:11:04 +02:00
Aurélien Delval
99b297435c Add squared Frobenius norm to vfc_test_h5
Besides the new variable addition, vfc_test_h5 has also be made simpler
by executing directly all the possible lagorithms (instead of requiring
argument). This results in a much more concise vfc_tests_config.json,
since only one executable invocation is required.
2021-05-07 13:23:50 +02:00
Pablo de Oliveira Castro
fb6153ba68
Merge pull request #33 from PurplePachyderm/dev
Updated vfc_tests_config.json with SM4
2021-05-06 11:42:23 +02:00
Aurélien Delval
348fe14dd0 Updated vfc_tests_config.json with SM4
Because the algorithm to use is passed as a parameter to vfc_tests_h5,
it was necessary to update the tests configuration to add a new
execution.
2021-05-06 11:37:32 +02:00
Pablo de Oliveira Castro
8595a598cc
Merge pull request #32 from pablooliveira/sm4
First implementation of SM4
2021-05-06 11:06:56 +02:00
Pablo Oliveira
ada8cd6888 Fix typo 2021-05-06 11:01:07 +02:00
Pablo Oliveira
f4becac4c0 First implementation of SM4
SM4: Sherman Morrison, mix between SM3 + SM2
Leave zero denominators for later (SM3), and when none are left then split (SM2)
2021-05-06 10:51:42 +02:00
François Coppens
ff1f5655e5
Merge pull request #31 from fmgjcoppens/add/slagel_to_ma3
Adding Slagel-splitting to Maponi algorithm 3
2021-05-05 12:22:39 +02:00
François Coppens
3ee4d3b56d - Added a small 3x3 example that will always become singular regardles the order of the applied updates. This example is added to test Maponi A3 augmented with Slagel-splitting.
- Slagel-splitting in Maponi A3 is now working. A thourough analysis on the QMC=Chem datasets still has te be done.
- Acceptance tollerance  in 'test_h5' on the residuals can be set at runtime now.
2021-05-05 11:59:00 +02:00
Francois Coppens
e3815267fb * Added SM{1,2,3} algorithms to Fortran module
* Deleted final ylk array in MaponiA3(S)
* Output of Valgrind seem to suggest there are no major memory problems.
2021-05-05 11:59:00 +02:00
François Coppens
fb3ed9ce0c In Maponi A3, converted divisions into multiplications. 2021-05-05 11:59:00 +02:00