mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-10-25 02:04:48 +01:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			da81a73b4a
			...
			sycl-linki
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 6d25badce5 | ||
|  | adcc97cbbb | ||
|  | bc8c5fb16c | ||
|  | 845d757bb0 | ||
|  | 0d5470c363 | 
| @@ -21,6 +21,7 @@ if BUILD_HDF5 | |||||||
|   extra_headers+=serialisation/Hdf5Type.h |   extra_headers+=serialisation/Hdf5Type.h | ||||||
| endif | endif | ||||||
|  |  | ||||||
|  |  | ||||||
| all: version-cache Version.h | all: version-cache Version.h | ||||||
|  |  | ||||||
| version-cache: | version-cache: | ||||||
| @@ -53,6 +54,17 @@ Version.h: version-cache | |||||||
| include Make.inc | include Make.inc | ||||||
| include Eigen.inc | include Eigen.inc | ||||||
|  |  | ||||||
|  | extra_sources+=$(ZWILS_FERMION_FILES) | ||||||
|  | extra_sources+=$(WILS_FERMION_FILES) | ||||||
|  | extra_sources+=$(STAG_FERMION_FILES) | ||||||
|  | if BUILD_GPARITY | ||||||
|  |   extra_sources+=$(GP_FERMION_FILES) | ||||||
|  | endif | ||||||
|  | if BUILD_FERMION_REPS | ||||||
|  |   extra_sources+=$(ADJ_FERMION_FILES) | ||||||
|  |   extra_sources+=$(TWOIND_FERMION_FILES) | ||||||
|  | endif | ||||||
|  |  | ||||||
| lib_LIBRARIES = libGrid.a | lib_LIBRARIES = libGrid.a | ||||||
|  |  | ||||||
| CCFILES += $(extra_sources) | CCFILES += $(extra_sources) | ||||||
|   | |||||||
| @@ -1,67 +0,0 @@ | |||||||
| #include <Grid/GridCore.h> |  | ||||||
| #include <fcntl.h> |  | ||||||
|  |  | ||||||
| NAMESPACE_BEGIN(Grid); |  | ||||||
|  |  | ||||||
| MemoryStats *MemoryProfiler::stats = nullptr; |  | ||||||
| bool         MemoryProfiler::debug = false; |  | ||||||
|  |  | ||||||
| void check_huge_pages(void *Buf,uint64_t BYTES) |  | ||||||
| { |  | ||||||
| #ifdef __linux__ |  | ||||||
|   int fd = open("/proc/self/pagemap", O_RDONLY); |  | ||||||
|   assert(fd >= 0); |  | ||||||
|   const int page_size = 4096; |  | ||||||
|   uint64_t virt_pfn = (uint64_t)Buf / page_size; |  | ||||||
|   off_t offset = sizeof(uint64_t) * virt_pfn; |  | ||||||
|   uint64_t npages = (BYTES + page_size-1) / page_size; |  | ||||||
|   uint64_t pagedata[npages]; |  | ||||||
|   uint64_t ret = lseek(fd, offset, SEEK_SET); |  | ||||||
|   assert(ret == offset); |  | ||||||
|   ret = ::read(fd, pagedata, sizeof(uint64_t)*npages); |  | ||||||
|   assert(ret == sizeof(uint64_t) * npages); |  | ||||||
|   int nhugepages = npages / 512; |  | ||||||
|   int n4ktotal, nnothuge; |  | ||||||
|   n4ktotal = 0; |  | ||||||
|   nnothuge = 0; |  | ||||||
|   for (int i = 0; i < nhugepages; ++i) { |  | ||||||
|     uint64_t baseaddr = (pagedata[i*512] & 0x7fffffffffffffULL) * page_size; |  | ||||||
|     for (int j = 0; j < 512; ++j) { |  | ||||||
|       uint64_t pageaddr = (pagedata[i*512+j] & 0x7fffffffffffffULL) * page_size; |  | ||||||
|       ++n4ktotal; |  | ||||||
|       if (pageaddr != baseaddr + j * page_size) |  | ||||||
| 	++nnothuge; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|   int rank = CartesianCommunicator::RankWorld(); |  | ||||||
|   printf("rank %d Allocated %d 4k pages, %d not in huge pages\n", rank, n4ktotal, nnothuge); |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
|  |  | ||||||
| std::string sizeString(const size_t bytes) |  | ||||||
| { |  | ||||||
|   constexpr unsigned int bufSize = 256; |  | ||||||
|   const char             *suffixes[7] = {"", "K", "M", "G", "T", "P", "E"}; |  | ||||||
|   char                   buf[256]; |  | ||||||
|   size_t                 s     = 0; |  | ||||||
|   double                 count = bytes; |  | ||||||
|    |  | ||||||
|   while (count >= 1024 && s < 7) |  | ||||||
|     { |  | ||||||
|       s++; |  | ||||||
|       count /= 1024; |  | ||||||
|     } |  | ||||||
|   if (count - floor(count) == 0.0) |  | ||||||
|     { |  | ||||||
|       snprintf(buf, bufSize, "%d %sB", (int)count, suffixes[s]); |  | ||||||
|     } |  | ||||||
|   else |  | ||||||
|     { |  | ||||||
|       snprintf(buf, bufSize, "%.1f %sB", count, suffixes[s]); |  | ||||||
|     } |  | ||||||
|    |  | ||||||
|   return std::string(buf); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| NAMESPACE_END(Grid); |  | ||||||
|  |  | ||||||
| @@ -4,4 +4,10 @@ bench-local: all | |||||||
| 	./Benchmark_su3 | 	./Benchmark_su3 | ||||||
| 	./Benchmark_memory_bandwidth | 	./Benchmark_memory_bandwidth | ||||||
| 	./Benchmark_wilson | 	./Benchmark_wilson | ||||||
| 	./Benchmark_dwf --dslash-unroll | 	./Benchmark_dwf --dslash-unroll | ||||||
|  |  | ||||||
|  | OBJECTS=$(shell find ../Grid/ -name '*.o')  | ||||||
|  |  | ||||||
|  | Benchmark_dwf_fp32.nolib:	Benchmark_dwf_fp32.o | ||||||
|  | 	$(CXXLINK)  Benchmark_dwf_fp32.o $(OBJECTS) $(LIBS) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -123,6 +123,20 @@ case ${ac_LAPACK} in | |||||||
|         AC_DEFINE([USE_LAPACK],[1],[use LAPACK]);; |         AC_DEFINE([USE_LAPACK],[1],[use LAPACK]);; | ||||||
| esac | esac | ||||||
|  |  | ||||||
|  | ############### fermions | ||||||
|  | AC_ARG_ENABLE([fermion-reps], | ||||||
|  |     [AC_HELP_STRING([--fermion-reps=yes|no], [enable extra fermion representation support])], | ||||||
|  |     [ac_FERMION_REPS=${enable_fermion_reps}], [ac_FERMION_REPS=yes]) | ||||||
|  |  | ||||||
|  | AM_CONDITIONAL(BUILD_FERMION_REPS, [ test "${ac_FERMION_REPS}X" == "yesX" ]) | ||||||
|  |  | ||||||
|  | AC_ARG_ENABLE([gparity], | ||||||
|  |     [AC_HELP_STRING([--enable-gparity=yes|no], [enable G-parity support])], | ||||||
|  |     [ac_GPARITY=${enable_gparity}], [ac_GPARITY=yes]) | ||||||
|  |  | ||||||
|  | AM_CONDITIONAL(BUILD_GPARITY, [ test "${ac_GPARITY}X" == "yesX" ]) | ||||||
|  |  | ||||||
|  |  | ||||||
| ############### Nc | ############### Nc | ||||||
| AC_ARG_ENABLE([Nc], | AC_ARG_ENABLE([Nc], | ||||||
|     [AC_HELP_STRING([--enable-Nc=2|3|4], [enable number of colours])], |     [AC_HELP_STRING([--enable-Nc=2|3|4], [enable number of colours])], | ||||||
|   | |||||||
| @@ -6,13 +6,36 @@ home=`pwd` | |||||||
| cd $home/Grid | cd $home/Grid | ||||||
| HFILES=`find . -type f -name '*.h' -not -name '*Hdf5*' -not -path '*/gamma-gen/*' -not -path '*/Old/*' -not -path '*/Eigen/*'` | HFILES=`find . -type f -name '*.h' -not -name '*Hdf5*' -not -path '*/gamma-gen/*' -not -path '*/Old/*' -not -path '*/Eigen/*'` | ||||||
| HFILES="$HFILES" | HFILES="$HFILES" | ||||||
| CCFILES=`find . -name '*.cc' -not -path '*/gamma-gen/*' -not -name '*Communicator*.cc' -not -name '*SharedMemory*.cc' -not -name '*Hdf5*'` | CCFILES=`find . -name '*.cc' -not -path '*/instantiation/*/*' -not -path '*/gamma-gen/*' -not -name '*Communicator*.cc' -not -name '*SharedMemory*.cc' -not -name '*Hdf5*'` | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ZWILS_FERMION_FILES=` find . -name '*.cc' -path '*/instantiation/*' -path '*/instantiation/ZWilsonImpl*' ` | ||||||
|  | WILS_FERMION_FILES=`  find . -name '*.cc' -path '*/instantiation/*' -path '*/instantiation/WilsonImpl*' ` | ||||||
|  | STAG_FERMION_FILES=`  find . -name '*.cc' -path '*/instantiation/*' -path '*/instantiation/Staggered*' ` | ||||||
|  | GP_FERMION_FILES=`    find . -name '*.cc' -path '*/instantiation/*' -path '*/instantiation/Gparity*' ` | ||||||
|  | ADJ_FERMION_FILES=`   find . -name '*.cc' -path '*/instantiation/*' -path '*/instantiation/WilsonAdj*' ` | ||||||
|  | TWOIND_FERMION_FILES=`find . -name '*.cc' -path '*/instantiation/*' -path '*/instantiation/WilsonTwoIndex*'` | ||||||
|  |  | ||||||
| HPPFILES=`find . -type f -name '*.hpp'` | HPPFILES=`find . -type f -name '*.hpp'` | ||||||
| echo HFILES=$HFILES $HPPFILES > Make.inc | echo HFILES=$HFILES $HPPFILES > Make.inc | ||||||
| echo >> Make.inc | echo >> Make.inc | ||||||
| echo CCFILES=$CCFILES >> Make.inc | echo CCFILES=$CCFILES >> Make.inc | ||||||
|  |  | ||||||
|  | echo ZWILS_FERMION_FILES=$ZWILS_FERMION_FILES >> Make.inc | ||||||
|  | echo WILS_FERMION_FILES=$WILS_FERMION_FILES   >> Make.inc | ||||||
|  | echo STAG_FERMION_FILES=$STAG_FERMION_FILES   >> Make.inc | ||||||
|  | echo GP_FERMION_FILES=$GP_FERMION_FILES   >> Make.inc | ||||||
|  | echo ADJ_FERMION_FILES=$ADJ_FERMION_FILES   >> Make.inc | ||||||
|  | echo TWOIND_FERMION_FILES=$TWOIND_FERMION_FILES   >> Make.inc | ||||||
|  |  | ||||||
|  | cd $home | ||||||
|  | echo CCFILES=$CCFILES > nolib.inc | ||||||
|  | echo ZWILS_FERMION_FILES=$ZWILS_FERMION_FILES >> nolib.inc | ||||||
|  | echo WILS_FERMION_FILES=$WILS_FERMION_FILES   >> nolib.inc | ||||||
|  | echo STAG_FERMION_FILES=$STAG_FERMION_FILES   >> nolib.inc | ||||||
|  | echo GP_FERMION_FILES=$GP_FERMION_FILES   >> nolib.inc | ||||||
|  | echo ADJ_FERMION_FILES=$ADJ_FERMION_FILES   >> nolib.inc | ||||||
|  | echo TWOIND_FERMION_FILES=$TWOIND_FERMION_FILES   >> nolib.inc | ||||||
|  |  | ||||||
| # tests Make.inc | # tests Make.inc | ||||||
| cd $home/tests | cd $home/tests | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user