Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
204 commits
Select commit Hold shift + click to select a range
d52e7bc
Initial CI for hipSYCL
sbalint98 Apr 25, 2022
29f6f1b
only test bionic
sbalint98 Apr 25, 2022
48c1ee7
use the bionic repo
sbalint98 Apr 25, 2022
31bd620
Use rocm 5.1.1
sbalint98 May 15, 2022
606b28d
WIP
sbalint98 May 15, 2022
c3fceed
Update github CI workflow file to test compilation of oneMKL with hip…
nilsfriess Jul 4, 2022
27ac901
Include Cuda backend. Tested on Ubuntu 20.04 ctest segfaults at Imatc…
normallytangent Nov 16, 2022
e85bfc8
convert tabs to spaces
normallytangent Nov 16, 2022
f40b918
resolve a typo
normallytangent Nov 16, 2022
ecee0a1
lapack change cmd for install
normallytangent Nov 16, 2022
4f3fbdd
fix indentation
normallytangent Nov 16, 2022
2af2f43
change to cmake build for lapack
normallytangent Nov 17, 2022
4e1edde
fix typo in cuda version
normallytangent Nov 22, 2022
c8e9b6f
downgrade cuda version to 11.6
normallytangent Nov 23, 2022
7ae465a
update hipsycl target
normallytangent Nov 23, 2022
10c640f
add path to clang
normallytangent Nov 29, 2022
5171aaa
path to cuda
normallytangent Dec 5, 2022
3f77175
add linux ci workflow
normallytangent Jan 17, 2023
f6c0b82
add debug statement
normallytangent Jan 18, 2023
457b315
look for libcuda.so
normallytangent Jan 18, 2023
e18c7af
look for ld_library_path
normallytangent Jan 18, 2023
dcbd7d3
add symlink to libcuda.so
normallytangent Jan 18, 2023
9316417
fix typo in symlink
normallytangent Jan 18, 2023
a2ceedd
add missing permissions for symlinks creation
normallytangent Jan 18, 2023
609b0c7
fix path to onemkl in tests
normallytangent Jan 18, 2023
bdddafa
add env variable for hipsycl visibility masl
normallytangent Jan 31, 2023
c17bdf7
remove ubuntu-18.04
normallytangent Jan 31, 2023
aa062c6
add hipsycl path
normallytangent Jan 31, 2023
0945915
add test cmds for hipsycl
normallytangent Feb 1, 2023
0c63b55
change path to hipSYCL
normallytangent Feb 1, 2023
6ddceee
change path to hipSYCL in tests
normallytangent Feb 1, 2023
cee72d3
remove tests for onemkl
normallytangent Feb 3, 2023
6534a9a
clean up github ci script
normallytangent Feb 3, 2023
17ef94c
remove typo in ci
normallytangent Feb 3, 2023
53942cb
add ubuntu 18.04
normallytangent Feb 5, 2023
670cabe
add pipeline for rocblas backend
normallytangent Feb 8, 2023
33f92b5
Merge branch 'develop' of github.com:normallytangent/oneMKL into develop
normallytangent Feb 15, 2023
1bd8d3a
Merge branch 'add-hipsycl-github-ci' into develop
normallytangent Feb 15, 2023
e1bc3e1
update name hipSYCL to OpenSYCL
normallytangent Feb 15, 2023
ef05f54
revert path name to ../lib/cmake/hipSYCL
normallytangent Feb 15, 2023
1e17fd3
Merge branch 'oneapi-src:develop' into develop
normallytangent Feb 27, 2023
9e24361
Merge branch 'oneapi-src:develop' into develop
normallytangent Mar 22, 2023
5133328
update install path to Open SYCL
normallytangent Mar 24, 2023
8fa66a8
revert name in oneMKL build
normallytangent Mar 24, 2023
a652aee
revert name in oneMKL build path
normallytangent Mar 24, 2023
f4c28c8
fix path to Open SYCL in OneMKL build
normallytangent Mar 24, 2023
73d52ed
precautionary commit bc not sure if strequal in cmake really is case…
normallytangent Mar 29, 2023
42f6a7c
revert path in opensycl tests
normallytangent Mar 29, 2023
ccd3822
Merge branch 'oneapi-src:develop' into develop
normallytangent Mar 29, 2023
e420e88
minor fix
normallytangent Mar 30, 2023
f58963c
Merge branch 'develop' of github.com:normallytangent/oneMKL into develop
normallytangent Mar 30, 2023
7e4c668
Update environment variable to `OPENSYCL_TARGETS`
normallytangent Apr 26, 2023
8d28a70
Update target for cuBLAS backend
normallytangent Apr 26, 2023
0a84474
[BLAS] fix deprecation warnings from cuda.hpp (#295)
andrewtbarker Mar 29, 2023
e9d31d9
Adding a comment to the build instruction for cmake install option (#…
akabalov Mar 29, 2023
f55cb16
[BLAS] Add missing copyright banner (#300)
mmeterel Apr 5, 2023
42d38fd
[DFT] Fix MKLCPU DFT backend build issue (#303)
FMarno Apr 11, 2023
db812f4
[BLAS] Rotmg test no longer asserts on implementation defined outputs…
fabiomestre Apr 17, 2023
6acfa8c
[DFT] Add more warning flags (#290)
Rbiessy Apr 20, 2023
dad3c05
Get rid of warning when we #include "cuda.hpp" from the LLVM SYCL bac…
andreyfe1 Apr 21, 2023
1b6c664
[DFT] Split descriptor tests that do not need a device (#291)
Rbiessy Apr 26, 2023
d099abf
[DFT] Synced mklcpu backend + Real_Real tests (#288)
anantsrivastava30 Apr 28, 2023
e5801bf
[DFT] Rearrange DFT compute tests so unimplemented always skips (#311)
FMarno May 9, 2023
e7776ac
[BLAS] allow device pointers in cublas output scalars (#304)
andrewtbarker May 9, 2023
f616e8f
[DFT] Introduce the cuFFT backend for the DFT interface. (#284)
FMarno May 9, 2023
d00d62c
[BLAS::SYCL-BLAS backend] New BLAS backend: SYCL-BLAS (#262)
hjabird May 10, 2023
41e5f6d
[BLAS] fix issue #314 (#315)
andrewtbarker May 10, 2023
3fa67a9
[mklcpu][mklgpu] replace FindMKL.cmake with MKLConfig.cmake (#316)
mkrainiuk May 11, 2023
4fae01e
Fix clang-format (#320)
mkrainiuk May 17, 2023
7110d5e
[mklcpu][mklgpu] SYCL API target for all Intel oneMKL domains (#319)
mkrainiuk May 17, 2023
bbf968e
[cmake] replace missed FindMKL with MKLConfig (#324)
mkrainiuk May 22, 2023
e575a60
Fix tables in README.md (#327)
mkrainiuk May 23, 2023
74f74b8
[cmake] extend search path for sycl library and add error message (#325)
mkrainiuk May 24, 2023
975b9ed
[BLAS::SYCL-BLAS backend] Enable syclblas spr level 2 operator (#292)
muhammad-tanvir-1211 May 24, 2023
0079943
[BLAS:: SYCL-BLAS backend] Enable BLAS Level 3 Symm routine (#318)
muhammad-tanvir-1211 May 24, 2023
2bf53ad
[BLAS::SYCL-BLAS backend] Enable BLAS Level 2 Spr2 routine (#317)
muhammad-tanvir-1211 May 24, 2023
20855d6
add cufft linking for cmake < 3.17 (#323)
FMarno May 24, 2023
dde7300
[doc] update TPP files (#328)
mkrainiuk May 24, 2023
d848b4d
[LAPACK][CUSOLVER] Add getri batch funcs (#248)
hdelan Jun 2, 2023
2e8e73c
[BLAS:: SYCL-BLAS backend] Enable SYCL-BLAS routines (#277)
pgorlani Jun 19, 2023
b61bb28
[DFT] Add rocFFT backend for DFT interface (#330)
FMarno Jun 22, 2023
1c47c66
dft remove invalid descriptor configuration for MKLCPU (#339)
FMarno Jun 29, 2023
80062fb
[dft] removed unneeded library from dft tests (#344)
FMarno Jul 6, 2023
67c0f61
[BLAS] add cublas backend for omatadd and omatcopy (#345)
andrewtbarker Jul 11, 2023
e8f8acf
[SYCL-BLAS] fix SYCL-BLAS backend names in backend table (#349)
andrewtbarker Jul 13, 2023
2e46f97
[DFT] Add descriptor move constructor and assignment (#346)
hjabird Jul 21, 2023
3bb7277
[DFT] read only accessors return const reference with get_pointer() (…
anantsrivastava30 Jul 21, 2023
78024e7
Update MKL Config file to oneMKL 2023.2 version (#354)
akabalov Jul 25, 2023
17b3815
[BLAS] --offload-arch required in both compilation and linking (#353)
andrewtbarker Jul 25, 2023
41b2c0c
Fix Clang Format issues in fft/lapack files (#357)
akabalov Jul 26, 2023
73e0cd3
[LAPACK] allocation of pointer arrays in group batch tests (#285)
sknepper Jul 26, 2023
a78d64d
[DFT] Fix MKLCPU const_cast for release DPC++ (#356)
hjabird Jul 27, 2023
94b501b
[DFT] remove compile-time compute dispatch from dft domain (#342)
FMarno Jul 27, 2023
60f9511
[BLAS][ROCBLAS] Fix host accesses for iamax and iamin operators in ro…
muhammad-tanvir-1211 Aug 2, 2023
67be794
[BLAS][CUBLAS] Fix host accesses for iamax and iamin operators in cub…
muhammad-tanvir-1211 Aug 2, 2023
229d962
[BLAS] Fix const pointer for netlib build with newer compilers (#348)
andrewtbarker Aug 10, 2023
b24d7ad
[BLAS:: SYCL-BLAS backend] Enabled omatcopy (Extension Level) and tps…
OuadiElfarouki Aug 11, 2023
feef442
Rename SYCL-BLAS to portBLAS (#366)
aacostadiaz Sep 4, 2023
eeaffca
[DFT][cuFFT][rocFFT] Add tests for strides and fix strides in cuFFT a…
t4c1 Sep 6, 2023
18332a0
[BLAS::portBLAS backend] Enabled omatadd operator (#364)
s-Nick Sep 8, 2023
dd9d9cc
[RNG][rocRAND] Update rocRAND backend (#376)
jle-quel Sep 12, 2023
9fcabd8
[BLAS::portBLAS backend] Fix cmake issue with local portBLAS implemen…
s-Nick Sep 21, 2023
ccec4e1
[CMake] Set SYCL_COMPILER for MKL and add MKLROOT in MKL search paths…
dnhsieh-intel Sep 21, 2023
22ad63b
[BLAS][Netlib]Fix get pointer warnings (#385)
mmeterel Sep 25, 2023
9d5cbdc
[blas::portBLAS] Update gemm_batch_stride and asum (#381)
s-Nick Sep 26, 2023
ab0fa34
[BLAS::portBLAS backend] Add USM support for level 1 operators (#370)
aacostadiaz Oct 4, 2023
f50685e
[BLAS::portBLAS backend] Add USM support for rotmg (#371)
aacostadiaz Oct 12, 2023
db4a3bb
[BLAS::portBLAS backend] Enable omatcopy_batch and omatadd_batch oper…
s-Nick Oct 18, 2023
04bb103
[BLAS::portBLAS backend] Add missing `<complex>` headers (#389)
victor-eds Oct 18, 2023
0e0e498
[README] Update supported LLVM version and add AMD GPU (#397)
dnhsieh-intel Oct 18, 2023
0879a1a
[LAPACK][rocSOLVER] Update rocSOLVER backend (#393)
jle-quel Oct 18, 2023
8c1a337
[tests] skip DP tests on devices without DP support (#395)
mkrainiuk Oct 18, 2023
37694c5
[BLAS::portBLAS backend] Add USM support for level 2 operators (#372)
aacostadiaz Oct 19, 2023
9059882
[BLAS::portBLAS backend] Update nrm2 operator call routine (#398)
s-Nick Oct 19, 2023
2bdc3c7
[LAPACK][cuSOLVER] Get cuSOLVER backend to build with SYCL2020 change…
sknepper Oct 19, 2023
69ec69e
Fix layout enum to match specification (#402)
Rbiessy Oct 23, 2023
a025616
[BLAS::portBLAS backend] Add USM support for level 3 operators (#373)
aacostadiaz Oct 26, 2023
3c75a15
[BLAS::portBLAS backend] Add USM support for batch operators (#399)
s-Nick Oct 26, 2023
7716aae
[SPARSE] Add support for sparse gemv with MKLCPU (#374)
Rbiessy Oct 30, 2023
2f5a937
[MKL][CUBLAS] Restore pointer mode after calling USM dot (#406)
Nov 7, 2023
3bb90ee
[MKL][CUBLAS] Remove unnecessary call causing crashes in getNextCompu…
Nov 9, 2023
d09a1d9
[MKL][CUBLAS] add the omatcopy and omatadd functions in row-major lay…
jinz2014 Nov 9, 2023
ec94d22
[SPARSE] Add support for sparse GEMM using MKLCPU (#403)
Rbiessy Nov 15, 2023
b977f4e
[RNG] Missing clang-format and deprecations fixes (#408)
aelizaro Nov 21, 2023
af5b508
[BLAS::portBLAS backend] Update Dot & Sdsdot operator call routines &…
OuadiElfarouki Nov 22, 2023
eeca570
[RNG] Device API headers and tests migration (#382)
egrabovskaya Nov 23, 2023
6330d88
[DFT] Fix warnings in the DFT domain (2024 release) (#415)
FMarno Nov 27, 2023
0b8f5e8
[BLAS] update oneMKL backend to be compatible with 2024.0 release (#417)
andrewtbarker Nov 28, 2023
546c056
[SPARSE] Add support for sparse TRSV with MKLCPU backend (#407)
Rbiessy Nov 30, 2023
237bd1f
[MKL][BLAS] Add omatcopy2 interface (#404)
s-Nick Dec 1, 2023
21f82d0
Add one more Include to have the product workable with FetchContent (…
akabalov Dec 1, 2023
14295a2
Update oneMKL Config to 2024.0 release (#419)
akabalov Dec 5, 2023
2998c79
[DFT] Cleanup comment (#420)
lhuot Dec 5, 2023
76c058b
[SPARSE] Add support for sparse MKLGPU backend (#410)
Rbiessy Dec 5, 2023
ebfd12d
Revome requiring for TBB config and add condition to allow using loca…
akabalov Dec 5, 2023
3bee0e5
Add oneMKL Interfaces includes as -I if cmake >= 3.25 (#422)
akabalov Dec 5, 2023
724972b
Update the readme FAQ with details about using oneMKL Interfaces (#421)
akabalov Dec 6, 2023
444ac84
[BLAS::portBLAS backend] Enabled Complex Gemm portBLAS API (#412)
OuadiElfarouki Dec 6, 2023
8438aab
[DFT] portFFT integration (#416)
FMarno Dec 7, 2023
6703bb0
[RNG] Refactored the curand backend (#426)
andreyfe1 Dec 14, 2023
3e924d5
[RNG] Removed deprecated API from Device API tests and examples (#427)
andreyfe1 Dec 14, 2023
298a530
Allow multiple CUDA backends to be enabled at once (#430)
andrewtbarker Dec 19, 2023
eb166aa
[BLAS::portBLAS backend] Enable iamax, iamin and axpy_batch operators…
s-Nick Dec 20, 2023
edf1446
[DFT] Implement external workspace (#411)
hjabird Jan 2, 2024
32cd772
[README] Update supported LLVM version and hardware (#433)
dnhsieh-intel Jan 3, 2024
1566194
[BLAS:hipSYCL] Fix build issue (#435)
mmeterel Jan 9, 2024
a161416
[BLAS][rocBLAS] Update rocBLAS backend (#428)
jle-quel Jan 18, 2024
f50fad0
[BLAS] Fix AMD GPU backend with hipSYCL (#439)
mmeterel Jan 22, 2024
6a9920e
[BLAS:portBLAS] SYCL targets related Cmake improvements (#437)
OuadiElfarouki Jan 29, 2024
72315d6
[cmake] Add missing dependencies (#369)
Rbiessy Feb 7, 2024
f33f176
[BLAS] fix iamin/iamax header to correspond to oneMKL backend (#445)
andrewtbarker Feb 14, 2024
42d4636
[BLAS][cuBLAS] Fix cmake for cuBLAS backend (#452)
s-Nick Feb 28, 2024
d3beef0
Update references to Intel oneMKL for clarity. (#455)
hparks-intel Mar 7, 2024
ad8500c
Fix BLAS comment (#456)
Rbiessy Mar 11, 2024
bc4fabe
Fix warnings for -Wextra-semi and -Wsuggest-override (#454)
hjabird Mar 11, 2024
7e87979
[Docs] Document the build of CUFFT, ROCFFT and PORTFFT backends (#457)
hjabird Mar 12, 2024
502eb2e
[README][Docs] Update LLVM compiler name in README and related docume…
dnhsieh-intel Mar 19, 2024
71ab5a9
[RNG][Tests] Skip several device tests for devices without fp64 suppo…
aelizaro Mar 21, 2024
2dab082
[CUDA][HIP] Use device to get native context (#425)
Apr 1, 2024
517ad90
Update .gitignore to ignore all build dirs (#463)
Apr 2, 2024
33941eb
[Docs][Conan] Remove Conan
hjabird Apr 3, 2024
2172011
[README] Update supported operating systems and compiler version (#462)
dnhsieh-intel Apr 4, 2024
f9c2504
[README] Remove Open DPC++ compiler from oneMKL CPU supported configu…
dnhsieh-intel Apr 9, 2024
6e3df7f
[DFT] Improve support for different ROCm versions (#471)
Rbiessy Apr 10, 2024
3224e78
[BLAS][portBLAS] Add CUDA_TARGET (#474)
pgorlani Apr 25, 2024
fc08492
README: add UXL Foundation links (#479)
mkrainiuk Apr 30, 2024
8bb0bcf
[blas::portBLAS] Update portBLAS cmake (#480)
s-Nick May 3, 2024
bcf968d
GitHub: slack notification for RFCs (#481)
rscohn2 May 14, 2024
c16cc69
README: add link to #onemkl slack channel (#492)
mkrainiuk May 15, 2024
0ad6960
GitHub workflow for running unit tests for MKL backend on CPU (#483)
rscohn2 May 16, 2024
1317adf
Add Security md file (#493)
vmalia May 21, 2024
faf709f
github actions workflow for publishing documentation (#494)
rscohn2 May 21, 2024
d48eedc
[RNG] Fixed some bugs for device API (#470)
andreyfe1 May 28, 2024
cdf7ab2
testing for portblas portfft (#495)
rscohn2 May 30, 2024
187d84b
[CMake] Remove FindRoc* files (#490)
hjabird Jun 3, 2024
92141ef
[BLAS][portBLAS] Update portBLAS to use main branch (#505)
Rbiessy Jun 3, 2024
bd1a660
Replace outdated SYCL_DEVICE_FILTER with ONEAPI_DEVICE_SELECTOR (#484)
nmishra31 Jun 3, 2024
7dace7a
[tests][LAPACK] Avoid cuSOLVER bug in *trd tests (#498)
sknepper Jun 4, 2024
02e8276
Selective CI basecd on changes to a domain (#508)
rscohn2 Jun 7, 2024
0c03238
Revert "Selective CI basecd on changes to a domain" (#509)
rscohn2 Jun 7, 2024
82f393c
[RNG] Add explicit cast to T for operator<< of sycl::vec<T, 1> usage …
andreyfe1 Jun 14, 2024
2a5e283
[DFT][CMake] Check CUDA support with portFFT before using it as a tar…
hjabird Jun 17, 2024
f58d2d1
README: add info how to contact maintainers (#516)
mkrainiuk Jun 17, 2024
196825d
Bump urllib3 from 2.2.1 to 2.2.2 in /docs (#517)
dependabot[bot] Jun 18, 2024
989578c
[Docs] Rewrite build documentation (#510)
hjabird Jun 20, 2024
7cdd083
[Docs] add link to unit test readme and use correct github team names…
mkrainiuk Jun 21, 2024
b08b41f
[BLAS] Add new batch_gemm types (#466)
Jun 24, 2024
c248bc2
[DFT][MKLGPU] Use FWD/BWD_STRIDES (#514)
hjabird Jun 24, 2024
16d3d4b
[BLAS][EXAMPLE] Enable RT example for portBLAS backend (#521)
s-Nick Jun 25, 2024
08adee2
[DFT][Examples] Make the oneMKL DFT example consistent with the other…
s-Nick Jun 28, 2024
0d301e6
[DFT] Correct overload resolution for OOP COMPLEX vs IP REAL_REAL (#503)
hjabird Jul 2, 2024
ca9c045
selective test (#10) (#513)
rscohn2 Jul 2, 2024
af1d009
[Docs] Fix errors in example prose (#526)
hjabird Jul 4, 2024
ec583ac
Bump certifi from 2024.2.2 to 2024.7.4 in /docs (#529)
dependabot[bot] Jul 8, 2024
dde8190
Update link to oneMKL Spec (#531)
andreyfe1 Jul 9, 2024
6fd98a4
[BLAS][HIP] Fix blas support for rocBLAS 4+ (#519)
npmiller Jul 10, 2024
72f38df
Fix README documentation link (#530)
Rbiessy Jul 11, 2024
f7b15a1
[RNG] Workaround for get_multi_ptr with AdaptiveCPP (#535)
iMartyan Jul 12, 2024
60bdce9
[BLAS][DFT][SPARSE][TESTS] Remove .template from `get_host_access` to…
JackAKirk Jul 16, 2024
24125e3
[BLAS][portBLAS] Add try/catch for portblas runtime exception & minor…
s-Nick Jul 17, 2024
032ae69
[DFT][CMake] Fix inclusion of public include directories when linking…
hjabird Jul 17, 2024
78fac71
[DFT] Add FWD/BWD_STRIDES to public API, deprecate INPUT/OUTPUT_STRID…
hjabird Jul 18, 2024
5322614
[RNG] Added -fsycl -fsycl-device-code-split=per_kernel at the linking…
egrabovskaya Jul 18, 2024
dc24972
[CI]: support pagination when fetching the files changed in the PR (#…
rscohn2 Jul 30, 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
  •  
  •  
  •  
156 changes: 156 additions & 0 deletions .github/scripts/domain-check.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
//
// This script is used by pr.yml to determine if a domain must be tested based
// on the files modified in the pull request.
//

// Given a domain name and set of files, return true if the domain should be
// tested
function matchesPattern(domain, filePaths) {
// filter files that end in .md
filePaths = filePaths.filter(
(filePath) =>
!filePath.endsWith(".md") &&
!filePath.startsWith("docs/") &&
!filePath.startsWith("third-party-programs/"),
);
// These directories contain domain specific code
const dirs = "(tests/unit_tests|examples|src|include/oneapi/mkl)";
const domains = "(blas|lapack|rng|dft)";
// matches changes to the domain of interest or non domain-specific code
const re = new RegExp(`^(${dirs}/${domain}|(?!${dirs}/${domains}))`);
const match = filePaths.some((filePath) => re.test(filePath));
return match;
}

// Return the list of files modified in the pull request
async function prFiles(github, context) {
let allFiles = [];
let page = 0;
let filesPerPage = 100; // GitHub's maximum per page

while (true) {
page++;
const response = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
per_page: filesPerPage,
page: page,
});

if (response.data.length === 0) {
break; // Exit the loop if no more files are returned
}

allFiles = allFiles.concat(response.data.map((file) => file.filename));

if (response.data.length < filesPerPage) {
break; // Exit the loop if last page
}
}

return allFiles;
}

// Called by pr.yml. See:
// https://github.com/actions/github-script/blob/main/README.md for more
// information on the github and context parameters
module.exports = async ({ github, context, domain }) => {
if (!context.payload.pull_request) {
console.log("Not a pull request. Testing all domains.");
return true;
}
const files = await prFiles(github, context);
const match = matchesPattern(domain, files);
console.log("Domain: ", domain);
console.log("PR files: ", files);
console.log("Match: ", match);
return match;
};

//
// Test the matchesPattern function
//
// Run this script with `node domain-check.js` It should exit with code 0 if
// all tests pass.
//
// If you need to change the set of files that are ignored, add a test pattern
// below with positive and negative examples. It is also possible to test by
// setting up a fork and then submitting pull requests that modify files, but
// it requires a lot of manual work.
//
test_patterns = [
{
domain: "blas",
files: ["tests/unit_tests/blas/test_blas.cpp"],
expected: true,
},
{
domain: "rng",
files: ["examples/rng/example_rng.cpp"],
expected: true,
},
{
domain: "lapack",
files: ["include/oneapi/mkl/lapack/lapack.hpp"],
expected: true,
},
{
domain: "dft",
files: ["src/dft/lapack.hpp"],
expected: true,
},
{
domain: "dft",
files: ["src/dft/lapack.md"],
expected: false,
},
{
domain: "blas",
files: ["tests/unit_tests/dft/test_blas.cpp"],
expected: false,
},
{
domain: "rng",
files: ["examples/blas/example_rng.cpp"],
expected: false,
},
{
domain: "lapack",
files: ["include/oneapi/mkl/rng/lapack.hpp"],
expected: false,
},
{
domain: "dft",
files: ["src/lapack/lapack.hpp"],
expected: false,
},
{
domain: "dft",
files: ["docs/dft/dft.rst"],
expected: false,
},
{
domain: "dft",
files: ["third-party-programs/dft/dft.rst"],
expected: false,
},
];

function testPattern(test) {
const result = matchesPattern(test.domain, test.files);
if (result !== test.expected) {
console.log("Fail:");
console.log(" domain:", test.domain);
console.log(" files:", test.files);
console.log(" expected:", test.expected);
console.log(" result:", result);
process.exit(1);
}
}

if (require.main === module) {
// invoke test for each test pattern
test_patterns.forEach(testPattern);
console.log("All tests pass");
}
60 changes: 60 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Documentation
permissions: read-all

# Trigger for PR or merge to develop branch
on:
push:
branches: develop
paths:
- 'docs/**'
pull_request:
paths:
- 'docs/**'
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: '3.11'
cache: 'pip'
- name: Install Dependencies
run: pip install -r docs/requirements.txt
- name: Configure & Build
run: |
cmake -DCMAKE_VERBOSE_MAKEFILE=on -B build docs
cmake --build build
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: docs
path: build/Documentation/html

publish:
needs: build
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/develop'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
with:
ref: gh-pages
path: gh-pages
- name: Remove old site
run: rm -rf gh-pages/*
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
name: docs
path: gh-pages
- name: Push to GitHub Pages
run: |
cd gh-pages
touch .nojekyll
git add .
git config --global user.name "GitHub Actions"
git config --global user.email [email protected]
git commit -m "Update documentation"
git push --force origin gh-pages
159 changes: 159 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: Build tests with Open SYCL

on: [push, pull_request]

jobs:
test-with-hipsycl:
name: Run tests with Open SYCL
strategy:
matrix:
clang_version: [13]
rocm_version: ['5.1.1']
cuda_version: ['11.6']
os: [ubuntu-20.04, ubuntu-18.04]
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: install ROCm
run: |
sudo apt install libnuma-dev cmake unzip
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add -
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/${{matrix.rocm_version}}/ ubuntu main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt update
sudo apt install rocm-dev rocblas
- name: install LLVM
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh ${{matrix.clang_version}}
sudo apt install libclang-${{matrix.clang_version}}-dev clang-tools-${{matrix.clang_version}} libomp-${{matrix.clang_version}}-dev
- name: install boost from apt
if: matrix.os == 'ubuntu-20.04'
run: |
sudo apt update
sudo apt install libboost-all-dev
- name: install boost from source
if: matrix.os == 'ubuntu-18.04'
run: |
cd
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.zip
unzip boost_1_70_0.zip
cd boost_1_70_0
./bootstrap.sh --prefix=/usr
./b2
sudo ./b2 install -j4
- name: install CUDA
run: |
cd
wget https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run
sudo sh cuda_11.6.0_510.39.01_linux.run --override --silent --toolkit
cd
- name: test CUDA and cuBLAS version and fix path by symlink
run: |
/usr/local/cuda/bin/nvcc --version
echo $(ls /usr/local/cuda-11.6/targets/x86_64-linux/lib/stubs/libcuda*)
echo $LD_LIBRARY_PATH
sudo ln -s /usr/local/cuda-11.6/targets/x86_64-linux/lib/stubs/libcuda.so /usr/local/cuda-11.6/targets/x86_64-linux/lib/stubs/libcuda.so.1
- name: build Open SYCL
run: |
cd
git clone https://github.com/OpenSYCL/OpenSYCL.git
cd OpenSYCL
mkdir build && cd build
cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++-${{matrix.clang_version}} \
-DCLANG_EXECUTABLE_PATH=/usr/bin/clang++-${{matrix.clang_version}} \
-DLLVM_DIR=/usr/lib/llvm-${{matrix.clang_version}}/cmake \
-DCUDA_CUDA_LIBRARY=/usr/local/cuda-${{matrix.cuda_version}}/lib64/stubs/libcuda.so \
-DWITH_CUDA_BACKEND=ON \
-DWITH_ROCM_BACKEND=OFF \
-DWITH_LEVEL_ZERO_BACKEND=OFF \
-DCMAKE_INSTALL_PREFIX=/opt/OpenSYCL \
-DROCM_PATH=/opt/rocm-${{matrix.rocm_version}} \
-DCUDA_PATH=/usr/local/cuda-${{matrix.cuda_version}} ..
make -j2 install
- name: Build Open SYCL CPU Tests
run: |
cd $HOME/OpenSYCL/build
mkdir tests-omp && cd tests-omp
cmake \
-DOPENSYCL_TARGETS="omp" \
-DOpenSYCL_DIR=/opt/OpenSYCL/lib/cmake/OpenSYCL ../../tests
make -j 2 VERBOSE=ON
- name: Open SYCL tests for CPU
run: |
cd $HOME/OpenSYCL/build/tests-omp
LD_LIBRARY_PATH=$HOME/OpenSYCL/build/install/lib ./sycl_tests
- name: install LAPACK (for CBLAS)
run: |
cd
git clone https://github.com/Reference-LAPACK/lapack.git
cd lapack
mkdir build && cd build
cmake -DCMAKE_INSTALL_LIBDIR=/opt/lapack -DBUILD_SHARED_LIBS=ON -DCBLAS=ON ..
sudo cmake --build . -j --target install
- name: clone and build oneMKL with cuBLAS backend
env:
rocblas_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/rocblas/
hip_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/hip/
AMDDeviceLibs_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/AMDDeviceLibs/
amd_comgr_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/amd_comgr/
hsa-runtime64_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/hsa-runtime64/
run: |
cd
git clone https://github.com/oneapi-src/oneMKL.git
cd oneMKL
mkdir build
cd build
cmake \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++-${{matrix.clang_version}} \
-DCMAKE_C_COMPILER=/usr/bin/clang-${{matrix.clang_version}} \
-DCUDA_CUDA_LIBRARY=/usr/local/cuda-${{matrix.cuda_version}}/lib64/stubs/libcuda.so \
-DENABLE_CUBLAS_BACKEND=True \
-DENABLE_CURAND_BACKEND=False \
-DENABLE_CUSOLVER_BACKEND=False \
-DENABLE_MKLGPU_BACKEND=False \
-DENABLE_MKLCPU_BACKEND=False \
-DENABLE_NETLIB_BACKEND=False \
-DENABLE_ROCBLAS_BACKEND=False \
-DBUILD_SHARED_LIBS=ON \
-DTARGET_DOMAINS=blas \
-DREF_BLAS_ROOT=/opt/lapack/ \
-DhipSYCL_DIR=/opt/OpenSYCL/lib/cmake/hipSYCL \
-DHIPSYCL_TARGETS="omp;cuda:sm_60" \
-DONEMKL_SYCL_IMPLEMENTATION=hipsycl ..
cmake --build . -j2
cmake --install . --prefix /opt/oneMKL
- name: clone and build oneMKL with rocBLAS backend
env:
rocblas_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/rocblas/
hip_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/hip/
AMDDeviceLibs_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/AMDDeviceLibs/
amd_comgr_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/amd_comgr/
hsa-runtime64_DIR: /opt/rocm-${{matrix.rocm_version}}/lib/cmake/hsa-runtime64/
run: |
cd
git clone https://github.com/oneapi-src/oneMKL.git oneMKL-rocBLAS
cd oneMKL-rocBLAS
mkdir build
cd build
cmake \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++-${{matrix.clang_version}} \
-DCMAKE_C_COMPILER=/usr/bin/clang-${{matrix.clang_version}} \
-DROCBLAS_LIBRARIES=/opt/rocm-${{matrix.rocm_version}}/lib/cmake/rocblas/ \
-DENABLE_CUBLAS_BACKEND=False \
-DENABLE_CURAND_BACKEND=False \
-DENABLE_CUSOLVER_BACKEND=False \
-DENABLE_MKLGPU_BACKEND=False \
-DENABLE_MKLCPU_BACKEND=False \
-DENABLE_NETLIB_BACKEND=False \
-DENABLE_ROCBLAS_BACKEND=True \
-DBUILD_SHARED_LIBS=ON \
-DTARGET_DOMAINS=blas \
-DREF_BLAS_ROOT=/opt/lapack/ \
-DhipSYCL_DIR=/opt/OpenSYCL/lib/cmake/hipSYCL \
-DHIPSYCL_TARGETS="omp;hip:gfx906" \
-DONEMKL_SYCL_IMPLEMENTATION=hipsycl ..
cmake --build . -j2
cmake --install . --prefix /opt/oneMKL-rocBLAS
Loading