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

AOCL 2.2 changes - Majorly include LAPACK 3.9.0 support #36

Open
wants to merge 1,204 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1204 commits
Select commit Hold shift + click to select a range
6d82d17
Update python scripts to use python3
pradeeptrgit Jun 18, 2023
ed86d50
Refactoring OpenMp linking
Jul 5, 2023
2ba4ea2
Enable Ctest to add test
May 23, 2023
51fd8a3
Fixes netlib-test suite errors for complex precisions
Jun 27, 2023
fb152e1
LibFLAME Testsuite: when leading dimension = -1 set to default value
Jul 25, 2023
741fb69
Resolve merge conflicts from downstream
pradeeptrgit Jul 28, 2023
16f966a
Skip update step for AOCLUtils library build on reruns
pradeeptrgit Jul 31, 2023
fc1ba5a
Enable all the disabled OMP code
May 29, 2023
8e42117
DGETRF optimization using avx512 intrinsic.
Jun 12, 2023
070980f
libFLAME: Nested parallelism issues
edwsmyth Jun 13, 2023
e894d92
Version number updated to 4.1.1
Aug 7, 2023
f48159b
Libflame: AOCL FLA progress support for multithread Application.
May 24, 2023
1daea61
fPIC Flag added
Aug 7, 2023
7889a0f
Fix compiler warnings - ILP64
Jul 14, 2023
2ba5f47
Code coverage for Libflame
Jul 21, 2023
1c64660
Threads from context and code refactoring
Aug 28, 2023
257afcf
Fixes netlib-test suite errors
Aug 24, 2023
1d051f8
Option to link with AOCL-BLAS during build
pradeeptrgit Jul 5, 2023
a7a50eb
libFLAME: DORG2R modified for compatibility with latest DGEQRF
varajago Sep 6, 2023
4efd983
LibFLAME: Add hidden xerbla string length argument
edwsmyth Aug 1, 2023
420e44d
Update f2c postprocess Script
Aug 31, 2023
f6fdaac
Fix compiler warnings
Sep 12, 2023
3ad0e31
New script for netlib lapack test summary (short)
Sep 7, 2023
6ba160f
Added global context checking for AVX implementations
Sep 14, 2023
b4640d2
libFLAME: Optimization of DGESVD for Small sizes (path 6T)
varajago Aug 28, 2023
4d52b99
Ctest for Various Configurations
Sep 11, 2023
df8a31e
libFLAME: Fix for missing header file build error
varajago Sep 19, 2023
711d079
Libflame Testsuite: Added ROT and LARTG api test
Jul 14, 2023
2779b33
LibFLAME Test suite: Added ORG2R test case
Oct 3, 2023
b23a3d3
LibFLAME Test suite: Reset input.global.operations file
Oct 4, 2023
8756b7b
libFLAME: Fix for build errors with super-matrix enabled
varajago Oct 2, 2023
46546f7
LibFLAME Test suite: Fix ORGQR and ORG2R input matrix dimension issue
Oct 6, 2023
7d65d84
DGETRF regression in latest development branch compared to aocl 4.1
Oct 5, 2023
fc01832
libFLAME: Test Suite build error on AOCC4.2
varajago Oct 9, 2023
4ee5548
ZGETRF optimization for genoa
Sep 11, 2023
13770d2
libFLAME: Optimization of DGESVD
varajago Oct 10, 2023
89cc7fe
libFLAME: Fix for HSEQR Test failure
varajago Oct 22, 2023
41b4e2f
Fix header file inclusions in AOCL-BLAS mode
pradeeptrgit Oct 15, 2023
bdc8360
libFLAME library linking error
Oct 25, 2023
19dc253
libFLAME: Fix Netlib test errors due to DGESVD Optimization
varajago Oct 25, 2023
6abe599
Libflame Testsuite: Memory Leaks with ASAN tests
Oct 23, 2023
68f8676
DGETRS Small Size Optimization
Sep 13, 2023
224dbbd
libFLAME: Change in usage of optimization macro
varajago Oct 18, 2023
33da279
Legacy flame test build issue with CMake
Nov 3, 2023
04fb3e6
Libflame Testsuite: Fixing the NAN and Inf issues in LARTG and ROT API
Oct 13, 2023
98a5a62
CMake build: Fix issues with external OpenMP linking
Oct 30, 2023
abfccea
libFLAME: Fix for DGESVDX memory issue
varajago Nov 2, 2023
ca5a375
Cmake install path and default ISA config flag updates
Nov 7, 2023
4e81c23
Disable AOCL-Utils library merge by default
pradeeptrgit Oct 10, 2023
0d49800
libFLAME: Optimization of DGESVD
varajago Nov 4, 2023
978fee3
LibFLAME Test suite: Added SYEVX test case
Oct 20, 2023
30a283d
Exclude thread count function from initialization function
pradeeptrgit Oct 5, 2023
d1da586
ZGETRF optimization
Nov 10, 2023
30b501b
LibFLAME Test suite: Fix test_syevx windows issue
Nov 10, 2023
1bdf63b
Update sample code build to link with aoclutils library
pradeeptrgit Nov 10, 2023
70f6c4d
LibFLAME Test suite: Fixes for ctest failures
Nov 14, 2023
b965844
libFLAME: Fixes for static analysis issues
varajago Nov 10, 2023
6839a10
LF_ISA_CONFIG flag not handling wrong configuration
Nov 20, 2023
0f6ca42
Update build documentation to include AOCL-Utils dependency
pradeeptrgit Nov 17, 2023
34e003f
LibFLAME Test suite: Fixes for ctest failures
Nov 14, 2023
7e3dfdc
LF_ISA_CONFIG flag not handling wrong configuration
Nov 20, 2023
7257332
Update build documentation to include AOCL-Utils dependency
pradeeptrgit Nov 17, 2023
3af8018
Netlib tests output differences with Make and CMake build systems
Nov 21, 2023
c962da5
Netlib tests output differences with Make and CMake build systems
Nov 21, 2023
f474f27
Changes to CMake external openmp settings
pradeeptrgit Dec 5, 2023
cacad2e
Changes to CMake external openmp settings
pradeeptrgit Dec 5, 2023
01c132c
AOCL-LAPACK: Version upgrade to 4.2.0
varajago Dec 14, 2023
c8d8a70
AOCL-LAPACK: Version upgrade to 4.2.0
varajago Dec 14, 2023
da18bca
Link aocl-utils library as needed for shared library build
pradeeptrgit Dec 14, 2023
bdaa993
Link aocl-utils library as needed for shared library build
pradeeptrgit Dec 14, 2023
d08e681
CMake changes for OpenMP and BLAS library name flags
pradeeptrgit Dec 22, 2023
4d0d940
Removed build warnings from Libflame library and main test suite
Jan 4, 2024
9843918
Added check for quick return test for ggevx, gesv, geqrf and gerqf ap…
ksaithar Jan 5, 2024
c17a5fe
Match AOCL-LAPACK APIs return type with netlib prototypes
pradeeptrgit Jan 5, 2024
def7936
AOCL-LAPACK Test Suite: Tests to check for quick return and Incorrect…
ksaithar Jan 11, 2024
1377814
Add hidden lsame string length argument
pradeeptrgit Dec 2, 2023
91b6847
Update C++ interface to match return type of netlib prototypes
pradeeptrgit Jan 31, 2024
0e75fa9
AOCL-LAPACK: Fix for work buffer usage in optimized DGESVD
varajago Jan 22, 2024
5546780
DGESV optimizations for 4x4, 3x3 and 2x2 sizes
Feb 13, 2024
ee6a065
AOCL-LAPACK Test Suite: Tests to check for extreme values of gesv API
ksaithar Feb 15, 2024
4a3138a
AOCL-LAPACK test suite: Correction of norm calculation for few APIs.
mopathan Feb 26, 2024
b51ceb2
Resolve merge conflicts
pradeeptrgit Feb 26, 2024
238d324
AOCL-LAPACK Test Suite: Addition of test case for GELS & LARFG
Jan 12, 2024
b92846e
LibFLAME Test suite: Change in GETRS
Feb 16, 2024
cc5385a
AOCL-LAPACK test suite: added early return test cases
Feb 15, 2024
d2318fb
CMake updates - Accept multiple binaries for BLAS lib on Linux and fe…
pradeeptrgit Feb 19, 2024
a1a5519
AOCL-LAPACK Test Suite: Added error handling for --imatrix option
ksaithar Mar 4, 2024
5775356
AOCL-LAPACK Main Test: Change in GELS Validation
varajago Mar 6, 2024
4170869
AOCL-LAPACK Test Suite: Addition of test case for GTSV API
Jan 29, 2024
466b0cc
AOCL LAPACK Testsuite: Accuracy tests for syevx
Mar 11, 2024
c8caa20
Exclude xerbla from AOCL-LAPACK
pradeeptrgit Feb 21, 2024
601fc77
AOCL-LAPACK: Version upgrade to 4.2.1
Mar 12, 2024
17a69cf
AOCL-LAPACK Test suite: Extreme value Test for GERQ2
Mar 4, 2024
229e30b
AOCL-LAPACK Test Suite: Tests to check for extreme values of geqrf API
ksaithar Mar 8, 2024
9f55666
AOCL-LAPACK Test suite: Addition of test case for GESVDX API
Feb 9, 2024
f02dfc3
AOCL-LAPACK Test Suite: Tests to check for early returns of gesvd API
ksaithar Mar 12, 2024
e5a6eaf
Update Zen5 core architecture detection with LF_ISA_CONFIG=auto
Mar 8, 2024
b75f577
AOCL-LAPACK Test Suite: Tests to check for early returns of gesdd API
ksaithar Mar 13, 2024
e7111c5
AOCL-LAPACK Test Suite: Tests to check for extreme values
Mar 12, 2024
3710d2f
AOCL-LAPACK Test Suite: Tests to check for extreme values of ggev API
ksaithar Mar 13, 2024
0726967
AOCL LAPACK Test suite: Map and display API name w.r.t datatype
Mar 26, 2024
43e0537
AOCL-LAPACK test suite: Added new test cases for GBTRF, GBTRS.
mopathan Jan 12, 2024
e2ea684
AOCL-LAPACK Test suite: Update for GELS validation code
Mar 13, 2024
b4fa08c
AOCL-LAPACK Test Suite: Tests to check for extreme values of gesvd API
ksaithar Mar 28, 2024
8d44628
AOCL LAPACK Testsuite: Added GELSD test case
Mar 29, 2024
302e286
AOCL-LAPACK Test suite: Conformance Test for GELQF
Mar 29, 2024
e4f7db1
AOCL-LAPACK Test Suite: Tests to check for extreme values of gerqf API
ksaithar Mar 22, 2024
66572c7
Perf improvement for DLARFG
Mar 25, 2024
4078594
AOCL-LAPACK Test suite: Change in LARFG and GESVDX
Mar 14, 2024
d7de321
AOCL-LAPACK Test Suite: Tests to check for early return and extreme v…
Mar 27, 2024
d0d2d5a
DLARFG FLA_DSCAL_INLINE_SMALL value changed from 32 to 128
Apr 15, 2024
488bba2
Reformatting of main-test suite files using clang-format tool.
Mar 25, 2024
40ef777
Global variable renaming and setting scope to static
pradeeptrgit Apr 17, 2024
fc07004
CMAKE minimum version added for netlib cmake file
ksaithar Apr 18, 2024
d5696bf
AOCL-LAPACK Test Suite: Tests to check for extreme values of gesdd API
ksaithar Mar 28, 2024
9f7da23
AOCL LAPACK Testsuite: Added GELSS test case
Jan 31, 2024
43971fe
AOCL-LAPACK: Fix warnings in libflame build.
Apr 23, 2024
eb0a2e8
Set specific ISA path through AOCL_ENABLE_INSTRUCTIONS environment va…
pradeeptrgit Mar 15, 2024
1318716
AOCL-LAPACK Test Suite: Tests to check for early returns and incorrec…
ksaithar Apr 23, 2024
0ce5833
AOCL-LAPACK Test Suite: Tests to check for extreme values of gbtrf API
ksaithar May 2, 2024
315fef6
Reformatting of src/aocl_dtl, src/map files using clang-format tool.
Apr 23, 2024
fd0f63b
Fix : Increase in Netlib Errors due to DGETRF Latest Optimizations
May 3, 2024
b9a5f53
AOCL-LAPACK Test Suite: Addition of test case for SYTRF
Dec 14, 2023
5dc596b
DGETRI optimizations for small input sizes.
Apr 25, 2024
a026f5a
Updated the return type of xerbla API to void
May 7, 2024
6726847
AOCL-LAPACK Optimization: DGESVD Optimization for Small sizes
varajago Feb 13, 2024
070fa08
DGELS optimization for small size
pradeeptrgit Feb 19, 2024
59955de
dgbtf2 optimization
May 7, 2024
87accd3
dgbtrs optimization
May 8, 2024
f84fd5b
drot declaration conflict issue
May 9, 2024
76a40e7
Fix : DGETRI functionality tests failures on Linux and Windows
May 9, 2024
af03080
AOCL-LAPACK Test suite: Update for SYTRF
May 8, 2024
faab5ee
AOCL-LAPACK Test Suite: Conformance tests for GELS, GELSS, GELSD and …
Apr 28, 2024
910da5c
Include -mavx512dq flag in auto tools build
pradeeptrgit May 13, 2024
7311f84
Fix : Warnings in DGETRI optimized code
May 13, 2024
98f3952
AOCL LAPACK test suite: initialize known input values for POTRF, POTRS.
mopathan Apr 25, 2024
46c0faa
Renamed dim_t to fla_dim_t
May 14, 2024
953089d
Segmentation fault issue with AOCL_BLAS feature
May 15, 2024
6439975
Disabling AOCL-BLAS version of ZGETRF
May 16, 2024
3c697cf
Reformatting of src/lapack/x86 and test/example files using customize…
May 7, 2024
4ffb98e
AOCL-LAPACK Test suite: Conformance Test for POTRF
Apr 25, 2024
e789f3e
AOCL-LAPACK Test Suite: Tests to check for early returns and extreme …
ksaithar May 2, 2024
5357576
Inline few C++ interface functions
pradeeptrgit May 14, 2024
99c8dd8
AOCL-LAPACK Test Suite: Overflow and Underflow for GESVD
Apr 15, 2024
52e5834
AOCL-LAPACK Test Suite: Tests to check for early returns, incorrect v…
ksaithar May 22, 2024
46256be
AOCL LAPACK Testsuite: Accuracy tests for geev
May 23, 2024
d679cb6
Fix : Memory Leaks for DGETRI in ASAN Tests
Jun 3, 2024
6b244fa
Line ending change from DOS to UNIX
May 30, 2024
1cb4ee9
AOCL-LAPACK Test suite: Overflow underflow test for POTRF
May 30, 2024
a64c1c8
AOCL-LAPACK Test Suite: Add LARF API
May 17, 2024
ad4e37b
AOCL-LAPACK Test suite: Overflow underflow test for GERQ2
Jun 3, 2024
de04d27
AOCL-LAPACK Test Suite: Overflow and Underflow for GEEV
Apr 19, 2024
0e093e6
AOCL-LAPACK: Fix for work buffer computation in DGESVD
varajago Jun 3, 2024
d74e58f
AOCL LAPACK Testsuite: Accuracy tests for syev
May 13, 2024
ff85b08
AOCL-LAPACK Test suite: Fix for GELS & Update for rand_vector
May 15, 2024
d631b47
AOCL-LAPACK Test suite: Fix for row space check validation
Jun 11, 2024
f1cb869
AOCL-LAPACK Test Suite: Ctest and lwork for GESVD
Jun 10, 2024
7977868
AOCL-LAPACK Test suite: Overflow underflow test for GELQF
Jun 5, 2024
6accd6a
AOCL-LAPACK Test suite: Input generation for GELSS
Jun 11, 2024
5270019
AOCL LAPACK Testsuite: Config file update
Jun 13, 2024
ce47cf4
AOCL-LAPACK Test suite: Specific input generation for gelsd
Jun 14, 2024
b228a27
AOCL-LAPACK Test Suite: Implement functional accuracy for the steqr api
Jun 12, 2024
d12dcad
AOCL-LAPACK: AVX512 Optimization for rotation routines
varajago May 31, 2024
9a93426
AOCL-LAPACK Test suite: GETRF, GETRI, GESV, GETRS updates
Jun 13, 2024
4ec1713
AOCL-LAPACK test suite: conformance tests for STEDC, STEVD.
mopathan May 14, 2024
7aba0eb
Fix: Code cleanup in dtrtri and dbdsqr routines
Jun 19, 2024
bcbd288
AOCL-LAPACK Test suite: FIX for sytrf nightly build
Jun 17, 2024
e8852bd
Enabling AVX512 kernel for DGETRF
Jun 20, 2024
c7eed10
AOCL LAPACK Testsuite: Accuracy tests for ggev
Jun 21, 2024
5b0606c
Implicit declaration error when AOCL-BLAS feature is enabled
Jun 21, 2024
87e70c1
AOCL LAPACK Testsuite: Accuracy tests for geevx
Jun 24, 2024
d678338
AOCL-LAPACK: Doxygen Documentation for sphinx
Jun 18, 2024
efc59c7
AOCL-LAPACK Test Suite: Tests to check for early returns, incorrect v…
ksaithar May 29, 2024
f7c8bc8
AOCL-LAPACK Test Suite: Tests to check for early returns, incorrect v…
ksaithar Jun 10, 2024
18eb661
AOCL-LAPACK Test Suite: Functional accuracy of stevd & fix heevx pres…
Jun 21, 2024
90beb24
AOCL LAPACK Testsuite: Fix for ggevx, geevx accuracy test failure
Jun 26, 2024
fcc3b04
AOCL-LAPACK Test Suite: Overflow and Underflow for GESVDX
Jun 26, 2024
8ec570b
AOCL-LAPACK Test Suite: Conformance tests for SYEVX/HEEVX API
Jun 19, 2024
8c66b89
Test-Suite: Fix for GESVDX, GGEV Tests
varajago Jun 28, 2024
e4663c3
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Jun 27, 2024
93511c3
AOCL LAPACK Testsuite: Accuracy tests for syevd
Jul 1, 2024
2ba05b7
AOCL-LAPACK Test suite: Overflow underflow test for GETRF
Jun 26, 2024
73b8449
AOCL-LAPACK Test Suite: Ensure functional accuracy of the stedc api a…
Jun 21, 2024
b0c07bd
AOCL-LAPACK test suite: Conformance tests for STEQR.
mopathan Jun 20, 2024
7e77a3f
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Jul 2, 2024
4d2f112
AOCL-LAPACK Test Suite: Fix bug in passing argument to check orthogon…
Jul 4, 2024
b718988
AOCL LibFlame Crash in DGETRS AVX2 5x5 code path
Jul 3, 2024
7858c13
AOCL-LAPACK Test suite: GETRF fix
Jul 3, 2024
400dfc4
AOCL LAPACK Testsuite: LAPACKE interface support for GESV API
Jul 4, 2024
4a05675
AOCL LAPACK test suite: Conformance tests for HSEQR, HGEQZ, SYEV/HEEV…
mopathan Jul 4, 2024
6fd9049
Main Test-Suite: Fix in input generation for Eigen APIs & Cholesky
varajago Jul 8, 2024
8bcf41d
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Jul 8, 2024
eed95fc
AOCL-LAPACK Test Suite: Conformance test for GTSV
Jul 11, 2024
6f71e5f
Cmake updates for ENABLE_AOCL_BLAS option
pradeeptrgit Jul 10, 2024
5fd6cbe
AOCL-LAPACK Test Suite: Tests to check for early returns and test cod…
ksaithar Jul 15, 2024
2a253f6
AOCL-LAPACK Test Suite: Overflow and Underflow for GTSV
Jul 1, 2024
1ec6565
Main Test-Suite: Overflow/Underflow Tests for GELS
varajago Jul 16, 2024
5b79e0c
AOCL LAPACK Test Suite: Improve hseqr test case implementation
Jul 9, 2024
afb8bda
Rename variable in CPP interface to avoid keyword clash
pradeeptrgit Jul 18, 2024
b399925
AOCL-LAPACK test suite: Update for GETRF overflow
Jul 22, 2024
d4d1ffe
AOCL-LAPACK Testsuite: Overflow/Underflow tests for GELSD
Jul 22, 2024
bc19a25
AOCL-LAPACK test suite: Update create_matrix based on matrix layout
Jul 23, 2024
55165bc
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Jul 21, 2024
8c1e6a9
AOCL-LAPACK Testsuite: Overflow/Underflow tests for GELSS
Jul 26, 2024
fa9fd0f
AOCL-LAPACK Test suite: Sphinx Document Generation
Jul 15, 2024
07b731e
AOCL-LAPACK test suite: Overflow, underflow tests for STEDC, STEVD, S…
mopathan Jul 18, 2024
42820f8
AOCL-LAPACK Test Suite: Init hessenberg matrix using generate_asym_ma…
Jul 30, 2024
8e542f2
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Jul 30, 2024
2f0167d
AOCL LAPACK Testsuite: Modified convert_matrix_layout for LAPACKE
Jul 30, 2024
831fb25
SSCAL and DSCAL optimization
Jul 22, 2024
9f7f010
LibFlame DGetrf API perf regression for AOCL-4.2 in comparison to AO…
Jul 31, 2024
6a7953d
AOCL-LAPACK: Fix for 2x2 DGESVD error
varajago Jul 30, 2024
0b577f4
AOCL-LAPACK Test suite: Copyright text update for rst files
Jul 31, 2024
ae3e721
zscal optimization
Aug 1, 2024
a03c9e2
AOCL-LAPACK Test Suite: Overflow and Underflow for SYEVX
Jul 25, 2024
1d956d7
AOCL-LAPACK Test Suite: larf api test case changes
Jul 31, 2024
9232b2a
Fix for STEDC failure with size > 3000.
mopathan Aug 2, 2024
0066baa
AVX512 implementation for dlarf's dgemv and dger call
Jul 31, 2024
7ecd52f
Removal of multiple declarations from lapack header file in lapacke …
Aug 1, 2024
4fd8204
libFLAME: Fixes for static analysis issues
Jul 18, 2024
b91288b
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Aug 1, 2024
a0637a1
AOCL-LAPACK Test Suite: Tests to check for Overflow and underflow val…
ksaithar Jul 21, 2024
5a7d049
AOCL-LAPACK Testsuite: Overflow/Underflow tests for GETRS
Aug 2, 2024
91d17af
Extreme values test cases for GBTRF, GBTRS & removed fla progress tes…
mopathan Aug 1, 2024
8912d81
Setting default path for non avx machine
Aug 1, 2024
be77670
AOCL LAPACK Testsuite: Accuracy tests for gesdd
Jul 22, 2024
cd92c67
AOCL LAPACK Testsuite: GESVD overflow test fix
Aug 5, 2024
f3f1a3c
Removal of compiler errors and warnings in amd-main with generic cod…
Aug 5, 2024
66d73a0
Removal of compiler errors amd-main with generic code path 2
Aug 5, 2024
effcb45
AOCL-LAPACK Test-suite: GESDD update
Aug 5, 2024
ecd7e19
Removal of compiler errors amd-main with generic code path 3
Aug 6, 2024
2bd84bf
AOCL LAPACK Testsuite: LAPACKE interface support from config file
Aug 4, 2024
6ce75de
Compilation issue for Static ST while using ENABLE_AOCL_BLAS=ON in W…
Aug 7, 2024
ccc239b
AOCL LAPACK Testsuite: Adding lapacke prototypes
Aug 7, 2024
91ed6f5
AOCL-LAPACK Testsuite: Overflow/Underflow tests for GETRI
Aug 6, 2024
2f88ef8
Fix for GEEVX OVERFLOW FAILURE
ksaithar Aug 14, 2024
770aa6a
Changing Libflame minumum_cmake_version to 3.22 for consistency acro…
Aug 19, 2024
9822dda
Fix function declaration issues in cpp headers
pradeeptrgit Aug 13, 2024
9f526c0
AOCL-LAPACK Test suite: GESDD update for jobz = O
Aug 20, 2024
fc5f198
Test-Suite: Fix for GTSV test failure
varajago Aug 22, 2024
867c4a8
AOCL-LAPACK: Sphinx document : CMakefile update
Aug 23, 2024
794226e
pkgconfig support for libflame
Aug 19, 2024
a8c4161
AOCL-LAPACK: Doxygen comments update
Aug 27, 2024
7f70b3a
Test Suite: Fix for test failure in SYEV and SYEVD tests
varajago Aug 29, 2024
b45b420
Another fix in cpp header function declaration
pradeeptrgit Sep 8, 2024
9ef411f
pkgconfig fix for numpy build system
Sep 9, 2024
0d96c3f
AOCL-LAPACK: Version upgrade to 5.0.0
ksaithar Sep 19, 2024
6321b12
Resolve merge conflicts from internal branch
pradeeptrgit Oct 3, 2024
bba798f
Update the LICENSE text
pradeeptrgit Oct 9, 2024
3279fc5
Merge updated LICENSE file contents
pradeeptrgit Oct 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
118 changes: 118 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Style file based on the modified rocBLAS / AOCL-Sparse style

# Common settings
BasedOnStyle: WebKit
TabWidth: 4
IndentWidth: 4
UseTab: Never
ColumnLimit: 100

# Other languages JavaScript, Proto

---
Language: Cpp
DisableFormat: false
Standard: Cpp11

AccessModifierOffset: -4
AlignAfterOpenBracket: true
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: true
AlignTrailingComments: false
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: true
# If false, a function call’s arguments will either be all on the same line or will have one line each
BinPackArguments: true
# If false, a function call’s arguments will either be all
# on the same line or will have one line each.
BinPackParameters: true

# Configure each individual brace in BraceWrapping
BreakBeforeBraces: Custom
# Control of individual brace wrapping cases
BraceWrapping: {
AfterCaseLabel: 'true'
AfterClass: 'true'
AfterControlStatement: 'true'
AfterEnum : 'true'
AfterFunction : 'true'
AfterNamespace : 'true'
AfterStruct : 'true'
AfterUnion : 'true'
BeforeCatch : 'true'
BeforeElse : 'true'
IndentBraces : 'false'
}

CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
SpaceBeforeCpp11BracedList: false
DerivePointerAlignment: false
ExperimentalAutoDetectBinPacking: false
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IndentCaseLabels: true
IndentPPDirectives: None
IndentWrappedFunctionNames: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
ObjCBlockIndentWidth: 4
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000

PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: false
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: Never
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInSquareBrackets: false

# Include sorting rules:
# ".h"
# ".hpp"
#
# <>
SortIncludes: true
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^".*\.h"'
Priority: 1
SortPriority: 1
- Regex: '^".*\.hpp"'
Priority: 1
SortPriority: 2
- Regex: '^<.*>'
Priority: 2
- Regex: '.*'
Priority: 10
# Deactivate the main header sorting
IncludeIsMainRegex: '^A'

# Comments will be formatted similar to the function calls
ReflowComments: true
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
*.so.*
# test executables
*.x
# log and trace files
P*_log.txt
P*_trace.txt

# -- build system files --

Expand Down
223 changes: 223 additions & 0 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# STEPS TO COMPILE AOCL-LAPACK USING CMAKE
## 1. Generating AOCL-LAPACK library

Create a new build directory e.g. build1

mkdir build1
cd build1

Use the following command to configure project

#### GCC:

With LP64
cmake ../ -DENABLE_AMD_FLAGS=ON -DCMAKE_INSTALL_PREFIX=<path>

With ILP64
cmake ../ -DENABLE_ILP64=ON -DENABLE_AMD_FLAGS=ON -DCMAKE_INSTALL_PREFIX=<path>

Note: Use -DCMAKE_C_COMPILER flag to set the compiler
-DCMAKE_C_COMPILER=gcc OR
export CC=gcc

#### AOCC:

export CC=clang
export CXX=clang++
export FC=flang
export FLIBS="-lflang"

With LP64
cmake ../ -DENABLE_AMD_AOCC_FLAGS=ON -DCMAKE_INSTALL_PREFIX=<path>

With ILP64
cmake ../ -DENABLE_ILP64=ON -DENABLE_AMD_AOCC_FLAGS=ON -DCMAKE_INSTALL_PREFIX=<path>

Shared library is turned on by default. To generate Static library provide additional option

-DBUILD_SHARED_LIBS=OFF

Compile library using following command. This will generate libflame.a/libflame.so library in the lib directory

cmake --build . -j OR make -j

Install the library

make install

Linking with AOCL-BLAS
------------------------------------
AOCL-LAPACK can be linked with any Netlib BLAS compliant library when compiled with standard cmake options above. However, AOCL-LAPACK provides an option to explicitly to link with AOCL-BLAS library at compile time. This option helps achieve better performance for certain APIs on AMD "Zen" CPUs by invoking lower level AOCL-BLAS APIs directly. To force AOCL-LAPACK to use AOCL-BLAS library, provide option ENABLE_AOCL_BLAS in cmake configuration

`cmake -DENABLE_AMD_AOCC_FLAGS=ON -DENABLE_AOCL_BLAS=ON ...`

The path of AOCL-BLAS library can be provided in one of the following methods
1. Set "AOCL_ROOT" environment variable to the root path where AOCL-BLAS library `($AOCL_ROOT/lib)` and header files `("$AOCL_ROOT"/include)` are located.
`export AOCL_ROOT=<path to AOCL-BLAS>`

2. Specify root path of AOCL-BLAS library through cmake option "AOCL_ROOT"
`cmake -DENABLE_AMD_AOCC_FLAGS=ON -DENABLE_AOCL_BLAS=ON -DAOCL_ROOT=<path to AOCL-BLAS> ...`

The path specified in AOCL_ROOT must have "include" directory and a "lib" directory that contains the necesaary header files and AOCL-BLAS binary respectively.

Linking with AOCL Utilities library
------------------------------------
AOCL-LAPACK depends on AOCL Utilities library, AOCL-Utils for certain functions including CPU architecture detection at runtime. The default build of AOCL-LAPACK requires path to AOCL-Utils header files to be set as follows

- For CMake based build, ensure header file path of AOCL-Utils is set using LIBAOCLUTILS_INCLUDE_PATH option.

cmake ../ -DENABLE_AMD_FLAGS=ON -DLIBAOCLUTILS_INCLUDE_PATH=<path/to/libaoclutils/header/files>

- For autoconfigure makefile based build, ensure header file path of AOCL-Utils is set in CFLAGS before running make command.

export CFLAGS="-I<path to libaoclutils include directory>"
configure --enable-amd-flags
make -j

In the default build mode, applications using AOCL-LAPACK must link with AOCL-Utils explicitly.

User has an option to merge the AOCL-Utils library with AOCL-LAPACK library. This can be done using "ENABLE_EMBED_AOCLUTILS" option for both CMake and autoconfigure tools build mode. With this option, AOCL-LAPACK can automatically link with libaoclutils library by downloading the source of libaoclutils from AMD GitHub, compiling it and linking/merging with AOCL-LAPACK library. Following is the sample command.

CMake Build:

cmake ../ -DENABLE_AMD_FLAGS=ON -DENABLE_EMBED_AOCLUTILS=ON

Autoconfigure :

configure --enable-amd-flags
make ENABLE_EMBED_AOCLUTILS=1 -j

With embed AOCL-Utils build, if user provides an external path for libaoclutils binary and header files via separate flags, 'LIBAOCLUTILS_LIBRARY_PATH' and 'LIBAOCLUTILS_INCLUDE_PATH' respectively, user provided library is used instead of downloading from GitHub. Following is a sample command for the same

CMake Build:

cmake ../ -DENABLE_AMD_FLAGS=ON -DENABLE_EMBED_AOCLUTILS=ON -DLIBAOCLUTILS_LIBRARY_PATH=<path/to/libaoclutils/library> -DLIBAOCLUTILS_INCLUDE_PATH=<path/to/libaoclutils/header/files>

Autoconfigure :

configure --enable-amd-flags
make ENABLE_EMBED_AOCLUTILS=1 LIBAOCLUTILS_LIBRARY_PATH=<path/to/libaoclutils/library> LIBAOCLUTILS_INCLUDE_PATH=<path/to/libaoclutils/header/files> -j


## 2. Building main Test and AOCL_FLA_PROGRESS Test Suite
In order to build tests an additional flag, BUILD_TEST, must be set ON

-DBUILD_TEST=ON
-DCMAKE_EXT_BLAS_LIBRARY_DEPENDENCY_PATH="<path to blas library>"
-DEXT_BLAS_LIBNAME="<blas_lib_name>"
-DBLAS_HEADER_PATH="<path to AOCL-BLAS header file blis.h>"
-DLIBAOCLUTILS_LIBRARY_PATH="<full path to AOCL-Utils library including library file>"

This will enable aocl progress feature tests and main test suite. It will generate test_libFLAME_aocl , test_lapack.x executables in the respective directories.

#### Note:
1. Building tests require path to AOCL-Utils library and an external blas library. Refer to Readme in respective test suite directory for more details.
2. EXT_BLAS_LIBNAME flag can be set with space separated binaries for BLAS libraries which may have more than one binary file. But all of them
must be under the same directory as set in flag CMAKE_EXT_BLAS_LIBRARY_DEPENDENCY_PATH.

Recomended to use AOCL-BLAS sharedlib with AOCL-LAPACK sharedlib

## 3 Building Legacy test and Netlib test
#### 1. To build Legacy test suite use
-DBUILD_LEGACY_TEST=ON
-DCMAKE_EXT_BLAS_LIBRARY_DEPENDENCY_PATH="<path to blas library>"
-DEXT_BLAS_LIBNAME=blas_lib_name
-DBLAS_HEADER_PATH="<path to AOCL-BLAS header file blis.h>"
-DLIBAOCLUTILS_LIBRARY_PATH="<full path to AOCL-Utils library including library file>"

Note: On Windows, to build and run legacy test suite, a separate macro flag is enabled during AOCL-LAPACK library build because of certain constraints in legacy test suite.

#### 2. To Build Netlib-test add `-DBUILD_NETLIB_TEST=ON` along with cmake commands.

Note: Windows requires running create_new_testdir.bat script before running netlib test

## 4. Building documentation
# Requirements:
1. python >= 3.9
2. doxygen >= 1.9.6
3. sphinx >= 7.3.7
python -m pip install sphinx==7.3.7
4. rocm-docs-core == 0.30.0
python -m pip install rocm-docs-core==0.30.0
5. breathe >= 4.30.0
python -m pip install breathe==4.30.0

# To build the documentation in /libflame/docs/libflame/sphinx/html directory use
-DBUILD_DOC=ON
e.g.
cmake ../ -DBUILD_DOC=ON -DENABLE_AMD_FLAGS=ON -DCMAKE_INSTALL_PREFIX=<path>

## 5. ENABLE TRACE and LOGS

User may also enable trace and logs by passing `-DENABLE_AOCL_DTL=[OPTION]`
along with setting the value of Macros `AOCL_DTL_TRACE_ENABLE` and `AOCL_DTL_LOG_ENABLE` to 1 in file `libflame/src/aocl_dtl/aocldtlcf.h`

e.g.

cmake ../ -DENABLE_ILP64=OFF -DENABLE_AMD_FLAGS=ON -DBUILD_TEST=ON -DENABLE_AOCL_DTL=[DTL_OPTION] -DCMAKE_EXT_BLAS_LIBRARY_DEPENDENCY_PATH="<path to blas library>" -DEXT_BLAS_LIBNAME=<BLAS_lib_name> -DCMAKE_INSTALL_PREFIX=<path> -DBLAS_HEADER_PATH="<path to AOCL-BLAS header file blis.h>" -DLIBAOCLUTILS_LIBRARY_PATH="<full path to AOCL-Utils library including library file>"

#### DTL_OPTIONS:

1. "ALL" to ENABLE TRACE and LOG
2. "TRACE" to ENABLE TRACE
3. "LOG" to ENABLE LOGS
4. "OFF" to Disable trace and log, if -DENABLE_AOCL_DTL is not passed with the cmake command, DTL is turned off

## 6. Using an external Lapack library to run tests

In order to run tests on an external lapack library an additional option
`-DEXT_LAPACK_LIBRARY_PATH="path/to/external/lapack/library"` and `-DEXT_LAPACK_LIBNAME="NAME_OF_THE_LAPACK_LIB"` can be passed, if the above options are left blank AOCL-LAPACK library will be used

## 7. Linking with an external openmp library
In order to link with an external openmp library user can pass `-DEXT_OPENMP_PATH=<openmp lib path> -DEXT_OPENMP_LIB=<openmp lib name>`

#### Note:
1. In order to use openmp from the system -DEXT_OPENMP_PATH is to be left blank
2. To link Intel OpenMP library,libiomp5.so, set following flag addtionally
- gcc: `-DCMAKE_C_FLAG="-fopenmp"`
- aocc: `-DCMAKE_C_FLAG="-fopenmp=libiomp5"`


## 8. Using ctest
Ctest is enabled when `-DBUILD_TEST=ON` OR `-DBUILD_LEGACY_TEST=ON` OR `-DBUILD_NETLIB_TEST=ON`
To run ALL ctests together following command can be given.

ctest --test-dir [BUILD_DIR]

To run a specific ctest following command can be given.

ctest -R [TEST_NAME]

**Note**: Test names can be listed by

ctest -N

To run build from any location

ctest --test-dir [BUILD_DIR]

Additionally `--verbose` can be added to print the output from the executable.
#### Example:
Following command can be used to run tests with regular expression neg_test

ctest --test-dir <build_dir> -R neg_test --verbose

On windows additional "-C Release" is needed to run the test

ctest --test-dir <build_dir> -R neg_test -C Release --verbose

To list all the tests `ctest --test-dir [BUILD_DIR] -N` can be given

## 9. ENABLE GCOV
In order to enable code coverage `-DENABLE_GCOV` can be passed during configuration.
After running the executable in the root directory run

bash generate_code_coverage_html.sh

It will give you a prompt to view the code coverage of that particular application.

## 10. pkg-config support
When building the package using cmake, pkg-config metadata file for the library is generated in
the location `{CMAKE_INSTALL_PREFIX}/share/pkgconfig/`.
- The pkg-config metadata file should be placed at a location recognized by pkg-config tool.
- libblis should be installed along with it's pkg-config metadata file.
Loading