From 97e97dc9d55e71edbc2031e6a509a7cc17abe168 Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Mon, 5 May 2025 03:30:13 -0400 Subject: Major update for ECRTS'25: fix TPC to GPU mapping and add a "supreme" mask MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These updates are featured in the paper: J. Bakita and J. H. Anderson, “Hardware Compute Partitioning on NVIDIA GPUs for Composable Systems”, Proceedings of the 37th Euromicro Conference on Real-Time Systems (ECRTS), to appear, Jul 2025. They: 1. Fix reported GPC to TPC mappings (requires nvdebug update). 2. Add support for a "supreme" mask, which overrides all others and can be set on a per-process basis via an environment variable, and optionally modified at runtime via the nvtaskset utility. 3. Add test for the supreme mask. --- Makefile | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 5256634..62ec245 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,9 @@ libsmctrl.a: libsmctrl.c libsmctrl.h # ----- Utilities ----- # Use static linking with tests to avoid LD_LIBRARY_PATH issues +nvtaskset: nvtaskset.c libsmctrl.so libsmctrl.a + $(CC) $@.c -o $@ -L. -l:libsmctrl.a $(CFLAGS) $(LDFLAGS) + libsmctrl_test_gpc_info: libsmctrl_test_gpc_info.c libsmctrl.a testbench.h $(CC) $< -o $@ -g -L. -l:libsmctrl.a $(CFLAGS) $(LDFLAGS) @@ -26,6 +29,9 @@ libsmctrl_test_gpc_info: libsmctrl_test_gpc_info.c libsmctrl.a testbench.h libsmctrl_test_mask_shared.o: libsmctrl_test_mask_shared.cu testbench.h $(NVCC) -ccbin $(CXX) $< -c -g +libsmctrl_test_supreme_mask: libsmctrl_test_supreme_mask.c libsmctrl.a libsmctrl_test_mask_shared.o + $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS) + libsmctrl_test_global_mask: libsmctrl_test_global_mask.c libsmctrl.a libsmctrl_test_mask_shared.o $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS) @@ -41,12 +47,17 @@ libsmctrl_test_next_mask: libsmctrl_test_next_mask.c libsmctrl.a libsmctrl_test_ libsmctrl_test_next_mask_override: libsmctrl_test_next_mask_override.c libsmctrl.a libsmctrl_test_mask_shared.o $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS) -tests: libsmctrl_test_gpc_info libsmctrl_test_global_mask libsmctrl_test_stream_mask libsmctrl_test_stream_mask_override libsmctrl_test_next_mask libsmctrl_test_next_mask_override +tests: libsmctrl_test_gpc_info libsmctrl_test_supreme_mask \ + libsmctrl_test_global_mask libsmctrl_test_stream_mask \ + libsmctrl_test_stream_mask_override libsmctrl_test_next_mask \ + libsmctrl_test_next_mask_override -all: libsmctrl.so tests +all: libsmctrl.so nvtaskset tests clean: - rm -f libsmctrl.so libsmctrl.a libsmctrl_test_gpu_info \ - libsmctrl_test_mask_shared.o libmsctrl_test_global_mask \ - libsmctrl_test_stream_mask libmsctrl_test_stream_mask_override \ - libsmctrl_test_next_mask libmsctrl_test_next_mask_override + rm -f libsmctrl.so libsmctrl.o libsmctrl.a libsmctrl_test_gpc_info \ + libsmctrl_test_mask_shared.o libsmctrl_test_supreme_mask \ + libsmctrl_test_global_mask \ + libsmctrl_test_stream_mask libsmctrl_test_stream_mask_override \ + libsmctrl_test_next_mask libsmctrl_test_next_mask_override \ + nvtaskset -- cgit v1.2.2