diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..84b3a00 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] +jobs: + build: + strategy: + fail-fast: false + matrix: + exercise: + - 03-H_Multi_GPU_Parallelization/solutions + - 06-H_Overlap_Communication_and_Computation_MPI/solutions + - 08-H_NCCL_NVSHMEM/solutions/NCCL + - 08-H_NCCL_NVSHMEM/solutions/NVSHMEM + - 10-H_CUDA_Graphs_and_Device-initiated_Communication_with_NVSHMEM/solutions/Device-initiated_Communication_with_NVSHMEM + - 10-H_CUDA_Graphs_and_Device-initiated_Communication_with_NVSHMEM/solutions/Using_CUDA_Graphs + runs-on: ubuntu-latest + container: + image: nvidia/cuda:13.2.0-devel-ubuntu24.04 + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: | + apt-get update && apt-get install -y build-essential openmpi-bin libopenmpi-dev + - name: Build first example + working-directory: ${{ matrix.exercise }} + env: + MPI_HOME: /usr/lib/x86_64-linux-gnu/openmpi + run: | + make jacobi diff --git a/03-H_Multi_GPU_Parallelization/.master/Makefile.in b/03-H_Multi_GPU_Parallelization/.master/Makefile.in index e15d85c..72429af 100644 --- a/03-H_Multi_GPU_Parallelization/.master/Makefile.in +++ b/03-H_Multi_GPU_Parallelization/.master/Makefile.in @@ -24,8 +24,8 @@ ifdef DISABLE_CUB else NVCC_FLAGS = -DHAVE_CUB endif -NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX -lnvToolsExt $(GENCODE_FLAGS) -std=c++14 -I$(MPI_HOME)/include -NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart -lnvToolsExt +NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX $(GENCODE_FLAGS) -std=c++17 -I$(MPI_HOME)/include -I$(CUDA_HOME)/include +NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart jacobi: Makefile jacobi.cu $(NVCC) $(NVCC_FLAGS) jacobi.cu -c -o jacobi.o $(NVCC) $(GENCODE_FLAGS) jacobi.o -o jacobi $(NVCC_LDFLAGS) diff --git a/03-H_Multi_GPU_Parallelization/.master/jacobi.cu b/03-H_Multi_GPU_Parallelization/.master/jacobi.cu index a9700cc..2d913d9 100644 --- a/03-H_Multi_GPU_Parallelization/.master/jacobi.cu +++ b/03-H_Multi_GPU_Parallelization/.master/jacobi.cu @@ -59,7 +59,7 @@ #include #ifdef USE_NVTX -#include +#include const uint32_t colors[] = {0x0000ff00, 0x000000ff, 0x00ffff00, 0x00ff00ff, 0x0000ffff, 0x00ff0000, 0x00ffffff}; diff --git a/03-H_Multi_GPU_Parallelization/solutions/Makefile b/03-H_Multi_GPU_Parallelization/solutions/Makefile index 92f033c..6d3af79 100644 --- a/03-H_Multi_GPU_Parallelization/solutions/Makefile +++ b/03-H_Multi_GPU_Parallelization/solutions/Makefile @@ -24,8 +24,8 @@ ifdef DISABLE_CUB else NVCC_FLAGS = -DHAVE_CUB endif -NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX -lnvToolsExt $(GENCODE_FLAGS) -std=c++14 -I$(MPI_HOME)/include -NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart -lnvToolsExt +NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX $(GENCODE_FLAGS) -std=c++17 -I$(MPI_HOME)/include -I$(CUDA_HOME)/include +NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart jacobi: Makefile jacobi.cu $(NVCC) $(NVCC_FLAGS) jacobi.cu -c -o jacobi.o $(NVCC) $(GENCODE_FLAGS) jacobi.o -o jacobi $(NVCC_LDFLAGS) diff --git a/03-H_Multi_GPU_Parallelization/solutions/advanced/Makefile b/03-H_Multi_GPU_Parallelization/solutions/advanced/Makefile index a6399eb..5f96c74 100644 --- a/03-H_Multi_GPU_Parallelization/solutions/advanced/Makefile +++ b/03-H_Multi_GPU_Parallelization/solutions/advanced/Makefile @@ -24,8 +24,8 @@ ifdef DISABLE_CUB else NVCC_FLAGS = -DHAVE_CUB endif -NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX -lnvToolsExt $(GENCODE_FLAGS) -std=c++14 -I$(MPI_HOME)/include -NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart -lnvToolsExt +NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX $(GENCODE_FLAGS) -std=c++17 -I$(MPI_HOME)/include -I$(CUDA_HOME)/include +NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart jacobi: Makefile jacobi.cu $(NVCC) $(NVCC_FLAGS) jacobi.cu -c -o jacobi.o $(NVCC) $(GENCODE_FLAGS) jacobi.o -o jacobi $(NVCC_LDFLAGS) diff --git a/03-H_Multi_GPU_Parallelization/solutions/advanced/jacobi.cu b/03-H_Multi_GPU_Parallelization/solutions/advanced/jacobi.cu index ee32ce5..ed6a7ff 100644 --- a/03-H_Multi_GPU_Parallelization/solutions/advanced/jacobi.cu +++ b/03-H_Multi_GPU_Parallelization/solutions/advanced/jacobi.cu @@ -59,7 +59,7 @@ #include #ifdef USE_NVTX -#include +#include const uint32_t colors[] = {0x0000ff00, 0x000000ff, 0x00ffff00, 0x00ff00ff, 0x0000ffff, 0x00ff0000, 0x00ffffff}; diff --git a/03-H_Multi_GPU_Parallelization/solutions/jacobi.cu b/03-H_Multi_GPU_Parallelization/solutions/jacobi.cu index e971307..c4b542a 100644 --- a/03-H_Multi_GPU_Parallelization/solutions/jacobi.cu +++ b/03-H_Multi_GPU_Parallelization/solutions/jacobi.cu @@ -59,7 +59,7 @@ #include #ifdef USE_NVTX -#include +#include const uint32_t colors[] = {0x0000ff00, 0x000000ff, 0x00ffff00, 0x00ff00ff, 0x0000ffff, 0x00ff0000, 0x00ffffff}; diff --git a/03-H_Multi_GPU_Parallelization/tasks/Makefile b/03-H_Multi_GPU_Parallelization/tasks/Makefile index d293686..883cd2c 100644 --- a/03-H_Multi_GPU_Parallelization/tasks/Makefile +++ b/03-H_Multi_GPU_Parallelization/tasks/Makefile @@ -24,8 +24,8 @@ ifdef DISABLE_CUB else NVCC_FLAGS = -DHAVE_CUB endif -NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX -lnvToolsExt $(GENCODE_FLAGS) -std=c++14 -I$(MPI_HOME)/include -NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart -lnvToolsExt +NVCC_FLAGS += -dc -Xcompiler -fopenmp -lineinfo -DUSE_NVTX $(GENCODE_FLAGS) -std=c++17 -I$(MPI_HOME)/include -I$(CUDA_HOME)/include +NVCC_LDFLAGS = -ccbin=mpic++ -L$(NVSHMEM_HOME) -L$(MPI_HOME)/lib -lmpi -L$(CUDA_HOME)/lib64 -lcuda -lcudart jacobi: Makefile jacobi.cu $(NVCC) $(NVCC_FLAGS) jacobi.cu -c -o jacobi.o $(NVCC) $(GENCODE_FLAGS) jacobi.o -o jacobi $(NVCC_LDFLAGS) diff --git a/03-H_Multi_GPU_Parallelization/tasks/jacobi.cu b/03-H_Multi_GPU_Parallelization/tasks/jacobi.cu index acae736..150886a 100644 --- a/03-H_Multi_GPU_Parallelization/tasks/jacobi.cu +++ b/03-H_Multi_GPU_Parallelization/tasks/jacobi.cu @@ -59,7 +59,7 @@ #include #ifdef USE_NVTX -#include +#include const uint32_t colors[] = {0x0000ff00, 0x000000ff, 0x00ffff00, 0x00ff00ff, 0x0000ffff, 0x00ff0000, 0x00ffffff};