Skip to content

Commit 270ba42

Browse files
author
Mathieu Taillefumier
committed
Improvements
- QUDA_FERMIONIC_FORCES and QUDA_EXPERIMENTAL are always on - Removed KOJAK instrumentation - Added a custom Qphix find package file because the original one is broken
1 parent 252d968 commit 270ba42

20 files changed

+58
-221
lines changed

.github/workflows/qphix-build.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,10 @@ jobs:
172172
-DTM_USE_OMP=ON \
173173
-DTM_USE_LEMON=ON \
174174
-DTM_USE_QPHIX=ON \
175-
-DCMAKE_CXXFLAGS="-O2 -mtune=haswell -march=haswell -mavx2 -mfma -DOMPI_SKIP_MPICXX -fopenmp" \
176-
-DCMAKE_CFLAGS="-O2 -mtune=haswell -march=haswell -mavx2 -mfma -DOMPI_SKIP_MPICXX -fopenmp" \
175+
-DCMAKE_CXX_FLAGS="-O2 -mtune=haswell -march=haswell -mavx2 -mfma -DOMPI_SKIP_MPICXX -fopenmp" \
176+
-DCMAKE_C_FLAGS="-O2 -mtune=haswell -march=haswell -mavx2 -mfma -DOMPI_SKIP_MPICXX -fopenmp" \
177177
-DQPHIX_DIR="${{github.workspace}}/qphix/build/install_dir" \
178+
-DQMP_DIR="${{github.workspace}}/qmp/build/install_dir" \
178179
..
179180
make -j > config.log
180181

CMakeLists.txt

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -123,12 +123,6 @@ cmake_dependent_option(TM_USE_LEMON "Use the lemon io library" OFF "TM_USE_MPI"
123123
ON)
124124

125125
# GPU dependent options
126-
cmake_dependent_option(TM_USE_QUDA_EXPERIMENTAL "Enable QUDA support" ON
127-
"TM_USE_QUDA" OFF)
128-
cmake_dependent_option(
129-
TM_QUDA_FERMIONIC_FORCES "Enable support for fermionic forces using QUDA" ON
130-
"TM_USE_QUDA" OFF)
131-
132126
cmake_dependent_option(TM_USE_NVHPC "Enable Nvidia HPC toolkit" OFF
133127
"TM_USE_CUDA" OFF)
134128

@@ -253,15 +247,7 @@ if(TM_USE_HIP OR QUDA_TARGET_HIP)
253247
endif()
254248

255249
if(TM_USE_QPHIX)
256-
find_package(QPhiX REQUIRED CONFIG)
257-
message("${QPhiX_LIBRARIES}")
258-
if(NOT TARGET tmlqcd::qphix)
259-
add_library(tmlqcd::qphix INTERFACE IMPORTED)
260-
set_target_properties(tmlqcd::qphix PROPERTIES INTERFACE_LINK_LIBRARIES
261-
"${QPhiX_LIBRARIES}")
262-
set_target_properties(tmlqcd::qphix PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
263-
"${QPhiX_INCLUDE_DIRS}")
264-
endif()
250+
find_package(Qphix REQUIRED)
265251
endif()
266252

267253
# check for fftw3 (rely on pkgconfig).

cmake/FindQphix.cmake

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
find_library(TM_QMP_LIBS NAMES qmp PATH_SUFFIXES "lib" "lib64")
2+
find_library(TM_QPHIX_LIBS_CODEGEN NAMES "qphix_codegen" PATH_SUFFIXES "lib" "lib64")
3+
find_library(TM_QPHIX_LIBS_SOLVER NAMES "qphix_solver" PATH_SUFFIXES "lib" "lib64")
4+
5+
message("${QMP_DIR}")
6+
7+
find_path(
8+
TM_QMP_INCLUDE_DIRS
9+
NAMES qmp.h
10+
PATH_SUFFIXES "include"
11+
PATHS "${QMP_DIR}")
12+
13+
find_path(
14+
TM_QPHIX_INCLUDE_DIRS
15+
NAMES qphix_config.h
16+
PATH_SUFFIXES "qphix"
17+
PATHS "${QPHIX_DIR}")
18+
find_path(
19+
TM_QPHIX_CODEGEN_INCLUDE_DIRS
20+
NAMES qpx_utils.h
21+
PATH_SUFFIXES "qphix_codegen"
22+
PATHS "${QPHIX_DIR}")
23+
24+
message("${TM_QMP_INCLUDE_DIRS} ${TM_QPHIX_INCLUDE_DIRS} ${TM_QMP_LIBS} ${TM_QPHIX_LIBS_CODEGEN} ${TM_QPHIX_LIBS_SOLVER}")
25+
26+
find_package_handle_standard_args(
27+
Qphix DEFAULT_MSG TM_QPHIX_LIBS_CODEGEN TM_QPHIX_LIBS_SOLVER TM_QPHIX_INCLUDE_DIRS TM_QMP_LIBS TM_QMP_INCLUDE_DIRS TM_QPHIX_CODEGEN_INCLUDE_DIRS)
28+
29+
if(TM_QMP_LIBS
30+
AND TM_QPHIX_INCLUDE_DIRS
31+
AND NOT TARGET tmlqcd::qphix)
32+
add_library(tmlqcd::qphix INTERFACE IMPORTED)
33+
set_target_properties(tmlqcd::qphix PROPERTIES INTERFACE_LINK_LIBRARIES
34+
"${TM_QPHIX_LIBS_CODEGEN};${TM_QPHIX_LIBS_SOLVER};${TM_QMP_LIBS}")
35+
set_target_properties(tmlqcd::qphix PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
36+
"${TM_QPHIX_INCLUDE_DIRS}/..;${TM_QPHIX_INCLUDE_DIRS};${TM_QPHIX_CODEGEN_INCLUDE_DIRS}")
37+
endif()
38+
39+
mark_as_advanced(TM_QPHIX_LIBRARIES TM_QPHIX_INCLUDE_DIRS TM_QMP_LIBS TM_QMP_INCLUDE_DIRS)

cmake/tmlqcd_config_internal.h.in

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,6 @@
111111
/* Using QUDA GPU */
112112
#cmakedefine TM_USE_QUDA
113113

114-
/* Using experimental QUDA version */
115-
#cmakedefine TM_QUDA_EXPERIMENTAL
116-
117-
/* Using QUDA fermionic forces */
118-
#cmakedefine TM_QUDA_FERMIONIC_FORCES
119-
120114
/* Using DDalphaAMG */
121115
#cmakedefine TM_USE_DDalphaAMG
122116

src/bin/deriv_mg_tune.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,6 @@ int main(int argc, char *argv[]) {
9898

9999
init_critical_globals(TM_PROGRAM_DERIV_MG_TUNE);
100100

101-
#ifdef TM_KOJAK_INST
102-
#pragma pomp inst init
103-
#pragma pomp inst begin(main)
104-
#endif
105-
106101
verbose = 1;
107102
g_use_clover_flag = 0;
108103

@@ -367,9 +362,6 @@ int main(int argc, char *argv[]) {
367362
#endif
368363

369364
return (0);
370-
#ifdef TM_KOJAK_INST
371-
#pragma pomp inst end(main)
372-
#endif
373365
}
374366

375367
static void usage(const tm_ExitCode_t exit_code) {

src/bin/hmc_tm.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,6 @@ int main(int argc, char *argv[]) {
113113

114114
init_critical_globals(TM_PROGRAM_HMC_TM);
115115

116-
#ifdef TM_KOJAK_INST
117-
#pragma pomp inst init
118-
#pragma pomp inst begin(main)
119-
#endif
120-
121116
strcpy(gauge_filename, "conf.save");
122117
strcpy(nstore_filename, "nstore_counter");
123118
strcpy(tmp_filename, ".conf.tmp");
@@ -591,9 +586,6 @@ int main(int argc, char *argv[]) {
591586
#endif
592587

593588
return (0);
594-
#ifdef TM_KOJAK_INST
595-
#pragma pomp inst end(main)
596-
#endif
597589
}
598590

599591
static void usage(const tm_ExitCode_t exit_code) {

src/bin/invert.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,6 @@ int main(int argc, char *argv[]) {
114114

115115
init_critical_globals(TM_PROGRAM_INVERT);
116116

117-
#ifdef TM_KOJAK_INST
118-
#pragma pomp inst init
119-
#pragma pomp inst begin(main)
120-
#endif
121-
122117
DUM_DERI = 8;
123118
DUM_MATRIX = DUM_DERI + 5;
124119
NO_OF_SPINORFIELDS = DUM_MATRIX + 4;
@@ -457,9 +452,6 @@ int main(int argc, char *argv[]) {
457452
MPI_Finalize();
458453
#endif
459454
return (0);
460-
#ifdef TM_KOJAK_INST
461-
#pragma pomp inst end(main)
462-
#endif
463455
}
464456

465457
static void usage(tm_ExitCode_t exit_code) {

src/bin/offline_measurement.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,6 @@ int main(int argc, char *argv[]) {
8383

8484
init_critical_globals(TM_PROGRAM_OFFLINE_MEASUREMENT);
8585

86-
#ifdef TM_KOJAK_INST
87-
#pragma pomp inst init
88-
#pragma pomp inst begin(main)
89-
#endif
90-
9186
DUM_DERI = 8;
9287
DUM_MATRIX = DUM_DERI + 5;
9388
NO_OF_SPINORFIELDS = DUM_MATRIX + 3;
@@ -306,10 +301,6 @@ int main(int argc, char *argv[]) {
306301
MPI_Finalize();
307302
#endif
308303
return (0);
309-
310-
#ifdef TM_KOJAK_INST
311-
#pragma pomp inst end(main)
312-
#endif
313304
}
314305

315306
static void usage(const tm_ExitCode_t exit_code) {

src/lib/deriv_Sb.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,6 @@ void deriv_Sb(const int ieo, spinor* const l, spinor* const k, hamiltonian_field
8383

8484
#ifdef TM_USE_OMP
8585
#undef static
86-
#endif
87-
88-
#ifdef TM_KOJAK_INST
89-
#pragma pomp inst begin(derivSb)
9086
#endif
9187

9288
if (ieo == 0) {
@@ -292,7 +288,4 @@ void deriv_Sb(const int ieo, spinor* const l, spinor* const k, hamiltonian_field
292288
} /* OpenMP closing brace */
293289
#endif
294290
tm_stopwatch_pop(&g_timers, 0, 1, "");
295-
#ifdef TM_KOJAK_INST
296-
#pragma pomp inst end(derivSb)
297-
#endif
298291
}

src/lib/deriv_Sb_D_psi.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ void deriv_Sb_D_psi(spinor* const l, spinor* const k, hamiltonian_field_t* const
6161

6262
#ifdef TM_USE_OMP
6363
#undef static
64-
#endif
65-
66-
#ifdef TM_KOJAK_INST
67-
#pragma pomp inst begin(derivSb)
6864
#endif
6965

7066
/************** loop over all lattice sites ****************/
@@ -225,9 +221,6 @@ void deriv_Sb_D_psi(spinor* const l, spinor* const k, hamiltonian_field_t* const
225221

226222
/****************** end of loop ************************/
227223
}
228-
#ifdef TM_KOJAK_INST
229-
#pragma pomp inst end(derivSb)
230-
#endif
231224

232225
#ifdef TM_USE_OMP
233226
} /*OpenMP closing brace */

0 commit comments

Comments
 (0)