mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +00:00 
			
		
		
		
	Sunspot compile
This commit is contained in:
		
							
								
								
									
										46
									
								
								systems/Sunspot/benchmarks/bench.pbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								systems/Sunspot/benchmarks/bench.pbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#PBS -l select=1:system=sunspot,place=scatter
 | 
				
			||||||
 | 
					#PBS -A LatticeQCD_aesp_CNDA
 | 
				
			||||||
 | 
					#PBS -l walltime=01:00:00
 | 
				
			||||||
 | 
					#PBS -N dwf
 | 
				
			||||||
 | 
					#PBS -k doe
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HDIR=/home/paboyle/
 | 
				
			||||||
 | 
					module use /soft/testing/modulefiles/
 | 
				
			||||||
 | 
					module load intel-UMD23.05.25593.11/23.05.25593.11
 | 
				
			||||||
 | 
					module load tools/pti-gpu  
 | 
				
			||||||
 | 
					export LD_LIBRARY_PATH=$HDIR/tools/lib64:$LD_LIBRARY_PATH
 | 
				
			||||||
 | 
					export PATH=$HDIR/tools/bin:$PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export TZ='/usr/share/zoneinfo/US/Central'
 | 
				
			||||||
 | 
					export OMP_PROC_BIND=spread
 | 
				
			||||||
 | 
					export OMP_NUM_THREADS=3
 | 
				
			||||||
 | 
					unset OMP_PLACES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd $PBS_O_WORKDIR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					qsub jobscript.pbs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo Jobid: $PBS_JOBID
 | 
				
			||||||
 | 
					echo Running on host `hostname`
 | 
				
			||||||
 | 
					echo Running on nodes `cat $PBS_NODEFILE`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo NODES
 | 
				
			||||||
 | 
					cat $PBS_NODEFILE
 | 
				
			||||||
 | 
					NNODES=`wc -l < $PBS_NODEFILE`
 | 
				
			||||||
 | 
					NRANKS=12         # Number of MPI ranks per node
 | 
				
			||||||
 | 
					NDEPTH=4          # Number of hardware threads per rank, spacing between MPI ranks on a node
 | 
				
			||||||
 | 
					NTHREADS=$OMP_NUM_THREADS # Number of OMP threads per rank, given to OMP_NUM_THREADS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					NTOTRANKS=$(( NNODES * NRANKS ))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "NUM_NODES=${NNODES}  TOTAL_RANKS=${NTOTRANKS}  RANKS_PER_NODE=${NRANKS}  THREADS_PER_RANK=${OMP_NUM_THREADS}"
 | 
				
			||||||
 | 
					echo "OMP_PROC_BIND=$OMP_PROC_BIND OMP_PLACES=$OMP_PLACES"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					CMD="mpiexec -np ${NTOTRANKS} -ppn ${NRANKS} -d ${NDEPTH} --cpu-bind=depth -envall \
 | 
				
			||||||
 | 
						     ./gpu_tile_compact.sh \
 | 
				
			||||||
 | 
						./Benchmark_dwf_fp32 --mpi 1.1.2.6 --grid 16.32.64.192 --comms-overlap \
 | 
				
			||||||
 | 
						--shm-mpi 0 --shm 2048 --device-mem 32000 --accelerator-threads 32"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										52
									
								
								systems/Sunspot/benchmarks/gpu_tile_compact.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										52
									
								
								systems/Sunspot/benchmarks/gpu_tile_compact.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					display_help() {
 | 
				
			||||||
 | 
					  echo " Will map gpu tile to rank in compact and then round-robin fashion"
 | 
				
			||||||
 | 
					  echo " Usage (only work for one node of ATS/PVC):"
 | 
				
			||||||
 | 
					  echo "   mpiexec --np N gpu_tile_compact.sh ./a.out"
 | 
				
			||||||
 | 
					  echo
 | 
				
			||||||
 | 
					  echo " Example 3 GPU of 2 Tiles with 7 Ranks:"
 | 
				
			||||||
 | 
					  echo "   0 Rank 0.0"
 | 
				
			||||||
 | 
					  echo "   1 Rank 0.1"
 | 
				
			||||||
 | 
					  echo "   2 Rank 1.0"
 | 
				
			||||||
 | 
					  echo "   3 Rank 1.1"
 | 
				
			||||||
 | 
					  echo "   4 Rank 2.0"
 | 
				
			||||||
 | 
					  echo "   5 Rank 2.1"
 | 
				
			||||||
 | 
					  echo "   6 Rank 0.0"
 | 
				
			||||||
 | 
					  echo
 | 
				
			||||||
 | 
					  echo " Hacked together by apl@anl.gov, please contact if bug found"
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#This give the exact GPU count i915 knows about and I use udev to only enumerate the devices with physical presence.
 | 
				
			||||||
 | 
					#works? num_gpu=$(/usr/bin/udevadm info /sys/module/i915/drivers/pci\:i915/* |& grep -v Unknown | grep -c "P: /devices")
 | 
				
			||||||
 | 
					num_gpu=6
 | 
				
			||||||
 | 
					num_tile=2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ "$#" -eq 0 ] || [ "$1" == "--help" ] || [ "$1" == "-h" ] || [ "$num_gpu" = 0 ]; then
 | 
				
			||||||
 | 
					  display_help
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					gpu_id=$(( (PALS_LOCAL_RANKID / num_tile ) % num_gpu ))
 | 
				
			||||||
 | 
					tile_id=$((PALS_LOCAL_RANKID % num_tile))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unset EnableWalkerPartition
 | 
				
			||||||
 | 
					export EnableImplicitScaling=0
 | 
				
			||||||
 | 
					export ZE_ENABLE_PCI_ID_DEVICE_ORDER=1
 | 
				
			||||||
 | 
					export ZE_AFFINITY_MASK=$gpu_id.$tile_id
 | 
				
			||||||
 | 
					export ONEAPI_DEVICE_FILTER=gpu,level_zero
 | 
				
			||||||
 | 
					export SYCL_PI_LEVEL_ZERO_DEVICE_SCOPE_EVENTS=0
 | 
				
			||||||
 | 
					export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
 | 
				
			||||||
 | 
					export SYCL_PI_LEVEL_ZERO_USE_COPY_ENGINE=0:2
 | 
				
			||||||
 | 
					export SYCL_PI_LEVEL_ZERO_USE_COPY_ENGINE_FOR_D2D_COPY=1
 | 
				
			||||||
 | 
					#export SYCL_PI_LEVEL_ZERO_USM_RESIDENT=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "rank $PALS_RANKID ; local rank $PALS_LOCAL_RANKID ; ZE_AFFINITY_MASK=$ZE_AFFINITY_MASK"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ $PALS_LOCAL_RANKID = 0 ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    onetrace --chrome-device-timeline "$@"
 | 
				
			||||||
 | 
					#    "$@"
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					"$@"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										16
									
								
								systems/Sunspot/config-command
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								systems/Sunspot/config-command
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					TOOLS=$HOME/tools
 | 
				
			||||||
 | 
					../../configure \
 | 
				
			||||||
 | 
						--enable-simd=GPU \
 | 
				
			||||||
 | 
						--enable-gen-simd-width=64 \
 | 
				
			||||||
 | 
						--enable-comms=mpi-auto \
 | 
				
			||||||
 | 
						--enable-accelerator-cshift \
 | 
				
			||||||
 | 
						--disable-gparity \
 | 
				
			||||||
 | 
						--disable-fermion-reps \
 | 
				
			||||||
 | 
						--enable-shm=nvlink \
 | 
				
			||||||
 | 
						--enable-accelerator=sycl \
 | 
				
			||||||
 | 
						--enable-unified=no \
 | 
				
			||||||
 | 
						MPICXX=mpicxx \
 | 
				
			||||||
 | 
						CXX=icpx \
 | 
				
			||||||
 | 
						LDFLAGS="-fiopenmp -fsycl -fsycl-device-code-split=per_kernel -fsycl-device-lib=all -lze_loader -lapmidg -L$TOOLS/lib64/" \
 | 
				
			||||||
 | 
						CXXFLAGS="-fiopenmp -fsycl-unnamed-lambda -fsycl -I$INSTALL/include -Wno-tautological-compare -I$HOME/ -I$TOOLS/include"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user