Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 8 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,14 @@ else()
set( BUILD_TESTING OFF CACHE BOOL "" FORCE )

FetchContent_MakeAvailable( libxc )

#Note: Missing this would cause test failures
if(CMAKE_C_COMPILER_ID STREQUAL "IntelLLVM")
target_compile_options(xc PRIVATE
$<$<COMPILE_LANGUAGE:C>:-fp-model=precise>
)
endif()

add_library( Libxc::xc ALIAS xc )
target_include_directories( xc
PUBLIC
Expand Down
1 change: 1 addition & 0 deletions include/exchcxx/exchcxx_config.hpp.in
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,5 @@

#ifdef EXCHCXX_ENABLE_SYCL
#include <sycl/sycl.hpp>
namespace syclex = sycl::ext::oneapi;
#endif
188 changes: 2 additions & 186 deletions include/exchcxx/util/exchcxx_macros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,8 @@

#ifdef EXCHCXX_ENABLE_SYCL

#define DEVICE_PARAMS sycl::queue* queue
#define DEVICE_PARAMS_NOTYPE queue

#define SYCL_KERNEL_PARAMS sycl::id<1> tid
#define DEVICE_PARAMS sycl::queue* stream
#define DEVICE_PARAMS_NOTYPE stream

#endif

Expand All @@ -101,19 +99,6 @@

#endif

#ifdef EXCHCXX_ENABLE_SYCL

#define RET_GENERATOR_SYCL_KERNEL( APPROX, TYPE, func ) \
func( DEV_ ## APPROX ## _IPARAMS , DEV_ ## APPROX ## _OPARAMS_ ## TYPE, \
SYCL_KERNEL_PARAMS )

#define RET_INC_GENERATOR_SYCL_KERNEL( APPROX, TYPE, func ) \
func( double scal_fact, DEV_ ## APPROX ## _IPARAMS , DEV_ ## APPROX ## _OPARAMS_ ## TYPE, \
SYCL_KERNEL_PARAMS )

#endif


// LDA Generators

#define RET_LDA_EXC_GENERATOR(func) RET_GENERATOR( LDA, EXC, func )
Expand Down Expand Up @@ -203,65 +188,6 @@

#endif

#ifdef EXCHCXX_ENABLE_SYCL

#define RET_LDA_EXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( LDA, EXC, func )
#define RET_LDA_VXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( LDA, VXC, func )
#define RET_LDA_FXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( LDA, FXC, func )
#define RET_LDA_KXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( LDA, KXC, func )
#define RET_LDA_EXC_VXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( LDA, EXC_VXC, func )
#define RET_LDA_VXC_FXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( LDA, VXC_FXC, func )


#define LDA_EXC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_EXC_GENERATOR_SYCL_KERNEL(func)
#define LDA_VXC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_VXC_GENERATOR_SYCL_KERNEL(func)
#define LDA_FXC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_FXC_GENERATOR_SYCL_KERNEL(func)
#define LDA_KXC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_KXC_GENERATOR_SYCL_KERNEL(func)
#define LDA_EXC_VXC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_EXC_VXC_GENERATOR_SYCL_KERNEL(func)
#define LDA_VXC_FXC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_VXC_FXC_GENERATOR_SYCL_KERNEL(func)


#define RET_LDA_EXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( LDA, EXC, func )
#define RET_LDA_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( LDA, VXC, func )
#define RET_LDA_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( LDA, FXC, func )
#define RET_LDA_KXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( LDA, KXC, func )
#define RET_LDA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( LDA, EXC_VXC, func )
#define RET_LDA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( LDA, VXC_FXC, func )


#define LDA_EXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_EXC_INC_GENERATOR_SYCL_KERNEL(func)
#define LDA_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_VXC_INC_GENERATOR_SYCL_KERNEL(func)
#define LDA_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_FXC_INC_GENERATOR_SYCL_KERNEL(func)
#define LDA_KXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_KXC_INC_GENERATOR_SYCL_KERNEL(func)
#define LDA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func)
#define LDA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_LDA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func)

#endif


// GGA Generators

Expand Down Expand Up @@ -353,65 +279,6 @@
#endif


#ifdef EXCHCXX_ENABLE_SYCL

#define RET_GGA_EXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( GGA, EXC, func )
#define RET_GGA_VXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( GGA, VXC, func )
#define RET_GGA_FXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( GGA, FXC, func )
#define RET_GGA_KXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( GGA, KXC, func )
#define RET_GGA_EXC_VXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( GGA, EXC_VXC, func )
#define RET_GGA_VXC_FXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( GGA, VXC_FXC, func )


#define GGA_EXC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_EXC_GENERATOR_SYCL_KERNEL(func)
#define GGA_VXC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_VXC_GENERATOR_SYCL_KERNEL(func)
#define GGA_FXC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_FXC_GENERATOR_SYCL_KERNEL(func)
#define GGA_KXC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_KXC_GENERATOR_SYCL_KERNEL(func)
#define GGA_EXC_VXC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_EXC_VXC_GENERATOR_SYCL_KERNEL(func)
#define GGA_VXC_FXC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_VXC_FXC_GENERATOR_SYCL_KERNEL(func)

#define RET_GGA_EXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( GGA, EXC, func )
#define RET_GGA_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( GGA, VXC, func )
#define RET_GGA_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( GGA, FXC, func )
#define RET_GGA_KXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( GGA, KXC, func )
#define RET_GGA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( GGA, EXC_VXC, func )
#define RET_GGA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( GGA, VXC_FXC, func )


#define GGA_EXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_EXC_INC_GENERATOR_SYCL_KERNEL(func)
#define GGA_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_VXC_INC_GENERATOR_SYCL_KERNEL(func)
#define GGA_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_FXC_INC_GENERATOR_SYCL_KERNEL(func)
#define GGA_KXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_KXC_INC_GENERATOR_SYCL_KERNEL(func)
#define GGA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func)
#define GGA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_GGA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func)

#endif


// MGGA Generators

#define RET_MGGA_EXC_GENERATOR(func) RET_GENERATOR( MGGA, EXC, func )
Expand Down Expand Up @@ -492,57 +359,6 @@



#ifdef EXCHCXX_ENABLE_SYCL

#define RET_MGGA_EXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( MGGA, EXC, func )
#define RET_MGGA_VXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( MGGA, VXC, func )
#define RET_MGGA_EXC_VXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( MGGA, EXC_VXC, func )
#define RET_MGGA_FXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( MGGA, FXC, func )
#define RET_MGGA_VXC_FXC_GENERATOR_SYCL_KERNEL(func) \
RET_GENERATOR_SYCL_KERNEL( MGGA, VXC_FXC, func )


#define MGGA_EXC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_EXC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_VXC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_VXC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_EXC_VXC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_EXC_VXC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_FXC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_FXC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_VXC_FXC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_VXC_FXC_GENERATOR_SYCL_KERNEL(func)


#define RET_MGGA_EXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( MGGA, EXC, func )
#define RET_MGGA_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( MGGA, VXC, func )
#define RET_MGGA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( MGGA, EXC_VXC, func )
#define RET_MGGA_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( MGGA, FXC, func )
#define RET_MGGA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
RET_INC_GENERATOR_SYCL_KERNEL( MGGA, VXC_FXC, func )


#define MGGA_EXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_EXC_INC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_VXC_INC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_EXC_VXC_INC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_FXC_INC_GENERATOR_SYCL_KERNEL(func)
#define MGGA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func) \
void RET_MGGA_VXC_FXC_INC_GENERATOR_SYCL_KERNEL(func)

#endif




Expand Down
Loading
Loading