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,017 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1017 commits
Select commit Hold shift + click to select a range
fa3ccb9
libFLAME Testsuite: Fix in memory allocation for large sizes
May 15, 2023
50fb58c
Updated README to use name AOCL-LAPACK
pradeeptrgit May 18, 2023
113886b
Update AMD's version of README with content specific to AMD work
pradeeptrgit May 17, 2023
3524670
Updated README to use name AOCL-LAPACK
pradeeptrgit May 18, 2023
9a2e516
Incorrect memory allocation in FLA_Apply_pivots_unb_external.c
edwsmyth May 15, 2023
4caff79
Fixes more compiler warnings
May 17, 2023
16c88f3
DTL Bug fix
May 18, 2023
14c7f0d
DTL Bug fix
May 18, 2023
fcb2d51
Legacy test suite memory leak issues fix in test_LDLT2
May 19, 2023
8971bae
Libflame: Fixed test application build failure
May 19, 2023
7488db2
libFLAME: clang compiler flags in configure script
edwsmyth May 15, 2023
3ab51ca
Libflame: Fixed test application build failure
May 19, 2023
8436850
Update version number to 4.1.0
pradeeptrgit May 24, 2023
c2670ed
Libflame: Example fix for ILP64
May 23, 2023
3023c08
Libflame: Example fix for ILP64
May 23, 2023
ae07863
Accept libaoclutils repository path as a parameter
pradeeptrgit May 18, 2023
76b9149
Change default netlib-test suite for GCC and AOCC
May 19, 2023
3a9a34e
Libflame: Special Input Values
May 17, 2023
675ce32
libFLAME: Addition of STDC++ Dependency
Jun 2, 2023
d2b3b97
libFLAME: Addition of STDC++ Dependency
Jun 2, 2023
c7a64d6
libFLAME: ACML LAPACK test failure: complex xPOTRF and xPBTRF
edwsmyth Jun 5, 2023
420ff42
libFLAME: ACML LAPACK test failure: complex xPOTRI and ZPFTRI
edwsmyth Jun 5, 2023
b2fff70
Adding DTL to z* APIs (double precision Complex)
Aug 22, 2022
9c1fa3c
Adding DTL to z* APIs (double precision Complex)
Aug 22, 2022
875c4ba
zgetrf optimization
Sep 29, 2022
52d2835
DORGQR API Optimization
Sep 29, 2022
ad43e4a
libFLAME: ZGETRF Accuracy Fix
Oct 4, 2022
853660f
libFLAME: Fix for Netlib-test errors in Windows
Oct 7, 2022
8a883ca
Adding DTL to z* APIs (double precision Complex)
Aug 22, 2022
2462a0f
Adding DTL to z* APIs (double precision Complex)
Aug 22, 2022
9358c54
Adding DTL to z* APIs (double precision Complex)
Aug 22, 2022
f6c1d3b
Adding DTL to z* APIs (double precision Complex)
Aug 22, 2022
338ea62
libFLAME Main Test Suite: Testing through Command-line options
Sep 16, 2022
7092a9c
libFLAME Test Suite: Fix for GGEVX, STEQR test cases
Oct 13, 2022
e43309d
Fix for netlib-test failures with AOCC
Oct 14, 2022
2944337
Memory leak fix libFLAME main test suite
Oct 12, 2022
04f1b14
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
92cae8a
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
e10a6c4
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
21af192
GETRF() test case fails when M>N with different sizes in main test su…
mopathan Oct 11, 2022
5dd1861
LibFLAME Test Suite:Working of the test suite with multithreading
Oct 19, 2022
d8a1dde
libFLAME: Test folder structure changes and standalone project for W…
Oct 26, 2022
f7922ed
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
d025359
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
e96ac72
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
9b3b510
AOCL progress callback hardening
Sep 30, 2022
b1d4ba8
DGEQP3 API Optimization
Nov 11, 2022
5b5ac38
libFLAME Main Test Suite: Testing through Command-line options
Oct 21, 2022
71a46d2
libFLAME Main Test Suite: Testing through Command-line options
Oct 31, 2022
2c658d0
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
1e91639
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
c759f04
DTL BUG-FIX (double precision Complex.)
Nov 17, 2022
378b408
libflame main test suite: GGEVX read custom data from a file
Nov 21, 2022
16aa7e9
Updated version number to 4.0.1
pradeeptrgit Nov 23, 2022
eda202d
Revert commit "DGEQP3 API Optimization"
pradeeptrgit Nov 25, 2022
c812dc1
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
05ce940
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
e7d6b45
libFLAME: ACML LAPACK test failure: xPOTRI
edwsmyth Nov 28, 2022
49ea212
Libflame Test Suite: Script to run api from the DTL logs
Nov 14, 2022
652de35
libflame main test suite: custom data read a from a file logic imple…
Nov 25, 2022
9daf2ce
libFLAME Main Test Suite: Testing through Command-line options
Nov 15, 2022
a3327d4
Enhance test cases to support LDA>M in main test suite
Nov 23, 2022
c341b0a
libflame framework updates
pradeeptrgit Nov 23, 2022
a75b30b
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
e09b7cc
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
722bbd6
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
523bb19
libFLAME Main Test Suite: Testing through Command-line options
Nov 22, 2022
4cd5a65
Enhance test cases to support LDA>M in main test suite
Dec 7, 2022
7c3c811
Enhance test cases to support LDA>M in main test suite.
Dec 9, 2022
66034af
libflame main test suite: custom data read from a file logic impleme…
Dec 6, 2022
56e0d8d
Adding DTL to z* APIs (double precision Complex.)
Aug 22, 2022
9994968
libFLAME Test Suite: Fix for FLOPS computation for GETRF
Dec 16, 2022
1fe945c
Rename 'min' and 'max' macros to "fla_min" and "fla_max"
pradeeptrgit Dec 27, 2022
20d7367
Make check to include main test
Dec 14, 2022
d1a8f84
libFLAME: Optimization of DGGEVX API
Nov 16, 2022
384c139
DGEQP3 Optimizations with internal test suite accuracy fix
Dec 2, 2022
a611af8
libFLAME Main Test Suite:Support for testing group of libflame APIs
Dec 26, 2022
c3c6500
libflame Framework upgrades to support context passing in all APIs
pradeeptrgit Jan 3, 2023
cf758ab
libFLAME Main Test Suite: Config files clean-up
Jan 5, 2023
1fdc7b3
Libflame Test Suite: Changing folder structure of the DTL Log Script
Jan 16, 2023
b5524f5
libFLAME main test suite: Test for Unaligned memories
Jan 12, 2023
d718f89
LibFLAME Test Suite: Return value condition checks for LAPACK / BLAS …
Dec 15, 2022
d447d5f
libFLAME SVD Optimization: Inlining block-size selection
Jan 18, 2023
2728bca
Fix for issues reported by Coverity tool
Jan 13, 2023
b697a73
ZORGQR and ZGEQP3 Optimizations
Dec 5, 2022
5ac1595
Enabled lapack path of sgesvd
Jan 5, 2023
4691146
LibFLAME Test suite: Support for all API naming conventions
Jan 23, 2023
104b784
Fix warnings in bunch of files - Part 2
pradeeptrgit Jan 31, 2023
9f7175e
Libflame Test Suite: SYEV Eigen API Test case
Jan 25, 2023
8a08b04
Upgrade to LAPACK 3.11 Specs
Dec 14, 2022
085a57f
libflame main test suite: added spffrtx and spffrt2 api's with valid…
Feb 1, 2023
7782e33
SGESVD accuracy issue
Feb 2, 2023
bfdca0b
ZSCAL AVX Path Update
Jan 31, 2023
787900b
LAPACK 3.11.0 netlib-test suite
Jan 30, 2023
edab47d
Single Precision APIs updated to LAPACK 3.11.0 specs
Jan 24, 2023
481bdfd
Libflame Test Suite: HSEQR EIG API Test case
Jan 18, 2023
776b564
LAPACKE: Replacing 'fla_min' and 'fla_max' macros to "min" and "max"
Feb 9, 2023
39c2dc8
libFLAME main-test suite error fix : SSYEVD
Feb 14, 2023
569e384
Minor bug fixes for in the DTL logs
Jan 13, 2023
11d3c9a
Fix for issues reported by Coverity tool
Feb 7, 2023
ae8ecda
zgetrf optimization
Feb 7, 2023
813757c
Revert "zgetrf optimization"
Feb 16, 2023
dd29cb9
LAPACKE Test Suite Failures Fix
Feb 15, 2023
41b5549
Migration from Autotools to CMAKE build system
Nov 21, 2022
bf80766
Ported LAPACKE from LAPACK 3.11.0
Feb 1, 2023
90bcec5
LAPACK test failure fix for xGEQPF
Feb 8, 2023
9d3a802
Libflame Test Suite: GGHRD LIN API Test Case
Feb 9, 2023
37ed7bb
Fixes hang issue observed in some of internal application benchmarks
Feb 22, 2023
ff33066
Added netlib-test suites support for Windows
ksaithar Nov 16, 2022
6448b6b
Header file modifications
pradeeptrgit Jan 18, 2023
c370777
Fixes implicit declaration warnings for xGEQPF and LAPACK failures
Feb 23, 2023
9660866
Libflame Test Suite: Example for libflame api
Jan 31, 2023
7ef65d7
Modifications and bug fixes in CMAKE
Feb 22, 2023
42cff8f
LDL issues fix for non-finites values
Mar 3, 2023
99f6aa5
Libflame Test Suite: GEHRD LIN API Test Case
Feb 2, 2023
387045f
Remove value "amdopt" from multi-thread model option.
pradeeptrgit Mar 6, 2023
6fe3afe
Building issues with AOCC
Mar 7, 2023
c0f264b
Updated lapack version number to 3.11.0
Mar 7, 2023
3763687
Macro name change for trace and log
Feb 14, 2023
b14f690
Added missing symbols for new APIs from LAPACK 3.11
Mar 7, 2023
d78ea76
Multiple definition issue from Libflame while building Scalapack with…
Mar 9, 2023
cbb0f48
libFLAME Test Suite: ORGQR Test code update
Mar 10, 2023
ca5af18
Separating main test from other tests and minor changes in Cmake
Mar 9, 2023
f21dff0
Double Precision APIs updated to LAPACK 3.11.0 specs
Jan 25, 2023
9d56811
Fixes NaN and INF inconsistency for QR
Mar 20, 2023
c7ff3d7
Fixes netlib-test errors with GCC 12.2.0
Mar 20, 2023
20616b9
Set compiler flag 'implicit-function-declaration' to warning
pradeeptrgit Mar 20, 2023
2c8de7f
Separate flags for legacy test and main test suite
Mar 21, 2023
e03280d
libFLAME: DGESVD Optimization for small matrices
Jan 24, 2023
9198e79
Set compiler flag 'incompatible-function-pointer-types' to warning
pradeeptrgit Mar 26, 2023
bfa9932
libFLAME: Correction in distclean functionality
Mar 24, 2023
e6809f8
Fix for issues reported by Coverity tool
Mar 16, 2023
330f07b
Issues observed on libflame main test suite using Address Sanitizer
Mar 30, 2023
881b225
Support for linking external Openmp library
Mar 23, 2023
4731f68
Use CPU detection library
pradeeptrgit Mar 23, 2023
318d3c2
libFLAME Test-Suite: Test case addition for GELQF
Mar 31, 2023
f38d7d6
Cmake install command Bug fix and Executable name changes
Mar 29, 2023
6ed922c
zgetrf optimization
Mar 28, 2023
bf00a42
libFLAME: DGEQRF fix for Netlib test failure
Apr 12, 2023
80ead07
Libflame legacy test failiure on windows
Apr 10, 2023
57a3b70
DGESV/DGETRF optimization for small matrices
Mar 23, 2023
44c9d23
Runtime path selection based on ISA in more APIs
pradeeptrgit Apr 9, 2023
3201223
Libflame Test Suite: Command Line Fixes
Apr 10, 2023
85bc616
Libflame: SGETRF Optimization
Mar 29, 2023
b5548ec
libFLAME: Optimization of DGESVD
Apr 14, 2023
b5b9100
Complex APIs updated to LAPACK 3.11.0 specs
Jan 23, 2023
b6b19ba
Libflame Test Suite: HGEQZ EIG API Test Case
Feb 7, 2023
265c4f7
Auto download AOCL Utilities library
pradeeptrgit Apr 12, 2023
b7571c0
Compiler options modifications
pradeeptrgit Apr 19, 2023
5ab2621
Double Complex Precision APIs updated to LAPACK 3.11.0 specs
Jan 25, 2023
7d0c257
Build failure when enabled netlib tests on Windows
Apr 21, 2023
de2d2be
Multi-thread ZGETRF optimization
Apr 20, 2023
e19a37f
Library Placement in lib forder instead of bin folder
Apr 13, 2023
b9f63cf
Fix Compiler Warnings - Single Real
Apr 13, 2023
31437da
Fix Compiler Warnings - Double Precision
Apr 10, 2023
1ee56a1
Fix Compiler Warnings - Double Complex Precision
Apr 18, 2023
9d6134e
Libflame:Support for Different config for different test cycles
Apr 14, 2023
6758119
Fix compiler warnings
Apr 20, 2023
72d09e0
Failure when libFLAME is built in single thread mode
Apr 25, 2023
30df5d5
Skip AOCL Utils clone on incremental build
pradeeptrgit May 1, 2023
563045c
Revert some of the unintended commits that were cherrypicked
pradeeptrgit May 2, 2023
18947cf
Revert some of the unintended commits that were cherrypicked - 2
pradeeptrgit May 2, 2023
37661fb
Revert some of the unintended commits that were cherrypicked - 3
pradeeptrgit May 2, 2023
ca409af
Revert some of the unintended commits that were cherrypicked - 4
pradeeptrgit May 2, 2023
d6cbbe4
Revert some of the unintended commits that were cherrypicked - 5
pradeeptrgit May 2, 2023
3d4da37
Problem linking Libflame shared library with static blis library
Mar 20, 2023
6a32eb3
ACML LAPACK test suite failures for S/DORGLQ and S/DORMLQ apis
Apr 26, 2023
d4f9bb4
Update version number to 4.1.0 Beta
pradeeptrgit May 9, 2023
2175a98
Target ISA based path selection for LU
pradeeptrgit May 11, 2023
315fd4c
Fixes netlib-test errors with AOCC 4.0 and GCC 12.2
May 11, 2023
6733ca7
Re-enable AVX2 and FMA compiler flags
pradeeptrgit May 13, 2023
798961a
Update AMD's version of README with content specific to AMD work
pradeeptrgit May 17, 2023
35971ed
Updated README to use name AOCL-LAPACK
pradeeptrgit May 18, 2023
1ff276f
DTL Bug fix
May 18, 2023
2c4896f
Libflame: Fixed test application build failure
May 19, 2023
ccca539
Update version number to 4.1.0
pradeeptrgit May 24, 2023
3c4bf9c
Libflame: Example fix for ILP64
May 23, 2023
022138d
Accept libaoclutils repository path as a parameter
pradeeptrgit May 18, 2023
73f784f
libFLAME: Addition of STDC++ Dependency
Jun 2, 2023
e1eedf2
Accept libaoclutils repository path as a parameter
pradeeptrgit May 18, 2023
e71cf7d
Update python scripts to use python3
pradeeptrgit Jun 18, 2023
f10312c
Changing the config folder name
May 15, 2023
24eea22
Accept AOCLUTILS clone path as parameter
pradeeptrgit Jun 25, 2023
105c2bb
Fix for Drop in Netlib test runs for REAL Data Type
Jun 21, 2023
38545b1
Set compiler flag 'incompatible-function-pointer-types' to warning
pradeeptrgit Jun 30, 2023
54aaa7f
Set compiler flag 'incompatible-function-pointer-types' to warning
pradeeptrgit Jun 30, 2023
062b1df
Libflame CMake: Windows runtime libraries are not used by Libflame as…
Jun 26, 2023
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
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)
Aug 28, 2023
4d52b99
Ctest for Various Configurations
Sep 11, 2023
df8a31e
libFLAME: Fix for missing header file build error
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
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
Oct 9, 2023
4ee5548
ZGETRF optimization for genoa
Sep 11, 2023
13770d2
libFLAME: Optimization of DGESVD
Oct 10, 2023
89cc7fe
libFLAME: Fix for HSEQR Test failure
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
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
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
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
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
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
c962da5
Netlib tests output differences with Make and CMake build systems
Nov 21, 2023
cacad2e
Changes to CMake external openmp settings
pradeeptrgit Dec 5, 2023
c8d8a70
AOCL-LAPACK: Version upgrade to 4.2.0
Dec 14, 2023
da18bca
Link aocl-utils library as needed for shared library build
pradeeptrgit Dec 14, 2023
b51ceb2
Resolve merge conflicts
pradeeptrgit Feb 26, 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.
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
153 changes: 153 additions & 0 deletions BUILD.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# 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 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: Building tests require path to AOCL-Utils library and an external blas library. Refer to Readme in respective test suite directory for more details
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. 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_OPTION
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

## 5. 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

## 6. 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"


## 7. 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

## 8. 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.

Loading