Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
8c627c0
port weights to SYCL
abagusetty Sep 8, 2020
f868206
SYCL 2020, barrier() -> group_barrier()
abagusetty Sep 8, 2020
811d4e4
port SYCL extensions
abagusetty Sep 8, 2020
9400fc0
port zmat functions
abagusetty Sep 8, 2020
17eec14
port pack_density functions
abagusetty Sep 8, 2020
90bd17a
port inc_potential
abagusetty Sep 8, 2020
ca24c84
port eval_denvars
abagusetty Sep 9, 2020
53e37fb
port collocation functions
abagusetty Sep 9, 2020
d395e02
mkl extensions
abagusetty Sep 9, 2020
419c6b6
change namespace from cl::sycl:: to sycl:: to comply with SYCL 2020
abagusetty Sep 9, 2020
1fc88bf
pushback SYCL-2020 for now and revert to SYCL 1.2
abagusetty Sep 10, 2020
204e00b
add GAUXC_SYCL_ERROR macro for SYCL error handling
abagusetty Sep 10, 2020
637031a
SYCL utils
abagusetty Sep 11, 2020
f611ff3
minor house cleaning, xc_sycl_utils, xc_sycl_data
abagusetty Sep 11, 2020
5047b8e
Merge pull request #2 from wavefunction91/cuda
wavefunction91 Sep 11, 2020
fbd63ad
WIP for batched dgemm using oneMKL
abagusetty Sep 12, 2020
9ff2412
wrap up sycl onemkl gemm and syr2k
abagusetty Sep 12, 2020
210b962
SYCL tests
abagusetty Sep 13, 2020
fb6720a
WIP SYCL build
abagusetty Sep 14, 2020
2e3dfec
build complete with addressing some warnings
abagusetty Sep 14, 2020
39556f6
Made MAGMA batched BLAS optional, revert back to cuBLAS on multiple s…
wavefunction91 Sep 15, 2020
6cd4ec6
MAGMA is now optional
wavefunction91 Sep 15, 2020
b63a346
Remove aligned_alloc in gau2grid with MVAPICH free
Sep 15, 2020
91cb012
Added standalone driver which takes same reference data as UTs
Sep 15, 2020
0b207ed
Added missing file, fixed basis construction
Sep 16, 2020
46cbaf5
Starting Basis Parser for UTs / driver
Sep 16, 2020
fc1af75
Finished basis parser
wavefunction91 Sep 16, 2020
9b7660a
Insulate CUDA code when not enabled
wavefunction91 Sep 16, 2020
b7139a9
Merge branch 'master' into basis_parse
wavefunction91 Sep 16, 2020
e4daffd
Remove quotes in __GG_NO_PRAMGA
wavefunction91 Sep 16, 2020
e66743b
Fixed bug in the basis generation of Oxygen, updated UTs
wavefunction91 Sep 17, 2020
e464107
Updated Taxol geometry, able to reliably reproduce proxy app results
wavefunction91 Sep 17, 2020
064c872
Updated Ubiquitin geometry, added timers to standalone driver
wavefunction91 Sep 17, 2020
eaafe41
Cleanup of standards code
wavefunction91 Sep 17, 2020
98b8752
Added Berkeley BSD-3 License and Copyright information
wavefunction91 Sep 21, 2020
1115587
Merge branch 'master' into sycl_integrators
wavefunction91 Sep 21, 2020
26ede13
Added SYCL propagation / check against ExchCXX installation + build
wavefunction91 Sep 21, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,22 @@ list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake )
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/modules )

# GauXC Options
option( GAUXC_ENABLE_CUDA "Enable CUDA Bindings" OFF )
option( GAUXC_ENABLE_TESTS "Enable Unit Tests" ON )
option( GAUXC_ENABLE_CEREAL "Enable Cereal serialization" ON )
option( GAUXC_ENABLE_CUDA "Enable CUDA Bindings" OFF )
option( GAUXC_ENABLE_SYCL "Enable SYCL Bindings" ON )
option( GAUXC_ENABLE_MAGMA "Enable MAGMA Linear Algebra" ON )
option( GAUXC_ENABLE_TESTS "Enable Unit Tests" ON )
option( GAUXC_ENABLE_CEREAL "Enable Cereal serialization" ON )
option( GAUXC_ENABLE_GAU2GRID "Enable Gau2Grid Collocation" ON )

if( NOT GAUXC_ENABLE_GAU2GRID )
message( FATAL_ERROR "Gau2Grid is currently a required dependency which
will be made optional in a future releast of GauXC [WIP]" )
endif()

# Die if both CUDA and SYCL are enabled
if( GAUXC_ENABLE_CUDA AND GAUXC_ENABLE_SYCL )
message( FATAL_ERROR "CUDA / SYCL bindings are mutually exclusive" )
endif()

# Decided if we're compiling device bindings
if( GAUXC_ENABLE_CUDA )
Expand Down
42 changes: 42 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
GauXC Copyright (c) 2020, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of
any required approvals from the U.S. Dept. of Energy). All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

(1) Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.

(2) Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

(3) Neither the name of the University of California, Lawrence Berkeley
National Laboratory, U.S. Dept. of Energy nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

You are under no obligation whatsoever to provide any bug fixes, patches,
or upgrades to the features, functionality or performance of the source
code ("Enhancements") to anyone; however, if you choose to make your
Enhancements available either publicly, or directly to Lawrence Berkeley
National Laboratory, without imposing a separate written license agreement
for such Enhancements, then you hereby grant the following license: a
non-exclusive, royalty-free perpetual license to install, use, modify,
prepare derivative works, incorporate into other computer software,
distribute, and sublicense such enhancements or derivative works thereof,
in binary and source code form.
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# About

GauXC Copyright (c) 2020, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of
any required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software,
please contact Berkeley Lab's Intellectual Property Office at
IPO@lbl.gov.

NOTICE. This Software was developed under funding from the U.S. Department
of Energy and the U.S. Government consequently retains certain rights. As
such, the U.S. Government has been granted for itself and others acting on
its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
Software to reproduce, distribute copies to the public, prepare derivative
works, and perform publicly and display publicly, and to permit others to do so.

# Synopsis

Comming Soon!
5 changes: 5 additions & 0 deletions cmake/gauxc-exchcxx.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ find_package( ExchCXX QUIET )
if( NOT ${ExchCXX_FOUND} )

set( EXCHCXX_ENABLE_CUDA ${GAUXC_ENABLE_CUDA} CACHE BOOL "" )
set( EXCHCXX_ENABLE_SYCL ${GAUXC_ENABLE_SYCL} CACHE BOOL "" )
set( EXCHCXX_ENABLE_TESTS OFF CACHE BOOL "" )

FetchContent_Declare(
Expand All @@ -21,6 +22,10 @@ else()
message( FATAL_ERROR "GauXC CUDA BINDINGS REQUIRE ExchCXX CUDA Bindings" )
endif()

if( ${GAUXC_ENABLE_SYCL} AND NOT ${EXCHCXX_ENABLE_SYCL} )
message( FATAL_ERROR "GauXC SYCL BINDINGS REQUIRE ExchCXX SYCL Bindings" )
endif()

endif()


4 changes: 4 additions & 0 deletions cmake/gauxc-gau2grid.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
if( GAUXC_ENABLE_GAU2GRID )

add_library( gauxc_gau2grid INTERFACE )

find_package( gau2grid CONFIG QUIET )
Expand All @@ -16,6 +18,7 @@ if( NOT gau2grid_FOUND )
string( REPLACE "CMAKE_SOURCE_DIR" "PROJECT_SOURCE_DIR" GAU2GRID_CORRECT "${GAU2GRID_CMAKE_LISTS}" )
file( WRITE ${gau2grid_SOURCE_DIR}/CMakeLists.txt "${GAU2GRID_CORRECT}" )
add_subdirectory( ${gau2grid_SOURCE_DIR} ${gau2grid_BINARY_DIR} )
target_compile_definitions( gg PRIVATE $<BUILD_INTERFACE:__GG_NO_PRAGMA> )
endif()


Expand All @@ -29,3 +32,4 @@ else()

endif()

endif() # If enabled
20 changes: 11 additions & 9 deletions cmake/modules/FindBLAS.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ endforeach()
fill_out_prefix( blas )

if( NOT BLAS_PREFERENCE_LIST )
set( BLAS_PREFERENCE_LIST "IntelMKL" "IBMESSL" "BLIS" "OpenBLAS" "ReferenceBLAS" )
set( BLAS_PREFERENCE_LIST "InteloneMKL" "IntelMKL" "IBMESSL" "BLIS" "OpenBLAS" "ReferenceBLAS" )
endif()

if( NOT blas_LIBRARIES )
Expand All @@ -38,24 +38,26 @@ if( NOT blas_LIBRARIES )
copy_meta_data( blas ${blas_lower_case} )


find_package( ${blas_type}
COMPONENTS ${BLAS_REQUIRED_COMPONENTS}
OPTIONAL_COMPONENTS ${BLAS_OPTIONAL_COMPONENTS}
find_package( ${blas_type}
COMPONENTS ${BLAS_REQUIRED_COMPONENTS}
OPTIONAL_COMPONENTS ${BLAS_OPTIONAL_COMPONENTS}
)

if( ${blas_type}_FOUND )

set( BLAS_VENDOR ${blas_type} )

if ( ${blas_type} MATCHES "IntelMKL" )
if ( ${blas_type} MATCHES "InteloneMKL" )
set( blas_LIBRARIES InteloneMKL::mkl )
elseif( ${blas_type} MATCHES "IntelMKL" )
set( blas_LIBRARIES IntelMKL::mkl )
elseif( ${blas_type} MATCHES "IBMESSL" )
set( blas_LIBRARIES IBMESSL::essl )
elseif( ${blas_type} MATCHES "BLIS" )
set( blas_LIBRARIES BLIS::blis )
elseif( ${blas_type} MATCHES "OpenBLAS" )
set( blas_LIBRARIES OpenBLAS::openblas )
elseif( ${blas_type} MATCHES "ReferenceBLAS" )
elseif( ${blas_type} MATCHES "ReferenceBLAS" )
set( blas_LIBRARIES ReferenceBLAS::blas )
endif()

Expand Down Expand Up @@ -112,8 +114,8 @@ if( blas_LIBRARIES )
endif()
set( CMAKE_REQUIRED_QUIET ON )

check_library_exists( "" dgemm "" BLAS_NO_UNDERSCORE )
check_library_exists( "" dgemm_ "" BLAS_USES_UNDERSCORE )
check_library_exists( "" dgemm "" BLAS_NO_UNDERSCORE )
check_library_exists( "" dgemm_ "" BLAS_USES_UNDERSCORE )

set( TEST_USES_UNDERSCORE_STR "Performing Test BLAS_USES_UNDERSCORE" )
set( TEST_NO_UNDERSCORE_STR "Performing Test BLAS_NO_UNDERSCORE" )
Expand Down Expand Up @@ -151,7 +153,7 @@ find_package_handle_standard_args( BLAS
if( BLAS_FOUND AND NOT TARGET BLAS::blas )

set( BLAS_LIBRARIES ${blas_LIBRARIES} )

add_library( BLAS::blas INTERFACE IMPORTED )
set_target_properties( BLAS::blas PROPERTIES
INTERFACE_LINK_LIBRARIES "${BLAS_LIBRARIES}"
Expand Down
Loading