aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorJoshua Bakita <bakitajoshua@gmail.com>2025-05-05 03:30:13 -0400
committerJoshua Bakita <bakitajoshua@gmail.com>2025-05-09 06:03:11 -0400
commit97e97dc9d55e71edbc2031e6a509a7cc17abe168 (patch)
tree645476af274ed5716204c27057cd6c8c1f4dfca2 /Makefile
parentc250928930cb5c95bffc878913301f9a5d4efcb7 (diff)
Major update for ECRTS'25: fix TPC to GPU mapping and add a "supreme" mask
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.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile23
1 files changed, 17 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 5256634..62ec245 100644
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,9 @@ libsmctrl.a: libsmctrl.c libsmctrl.h
19 19
20# ----- Utilities ----- 20# ----- Utilities -----
21# Use static linking with tests to avoid LD_LIBRARY_PATH issues 21# Use static linking with tests to avoid LD_LIBRARY_PATH issues
22nvtaskset: nvtaskset.c libsmctrl.so libsmctrl.a
23 $(CC) $@.c -o $@ -L. -l:libsmctrl.a $(CFLAGS) $(LDFLAGS)
24
22libsmctrl_test_gpc_info: libsmctrl_test_gpc_info.c libsmctrl.a testbench.h 25libsmctrl_test_gpc_info: libsmctrl_test_gpc_info.c libsmctrl.a testbench.h
23 $(CC) $< -o $@ -g -L. -l:libsmctrl.a $(CFLAGS) $(LDFLAGS) 26 $(CC) $< -o $@ -g -L. -l:libsmctrl.a $(CFLAGS) $(LDFLAGS)
24 27
@@ -26,6 +29,9 @@ libsmctrl_test_gpc_info: libsmctrl_test_gpc_info.c libsmctrl.a testbench.h
26libsmctrl_test_mask_shared.o: libsmctrl_test_mask_shared.cu testbench.h 29libsmctrl_test_mask_shared.o: libsmctrl_test_mask_shared.cu testbench.h
27 $(NVCC) -ccbin $(CXX) $< -c -g 30 $(NVCC) -ccbin $(CXX) $< -c -g
28 31
32libsmctrl_test_supreme_mask: libsmctrl_test_supreme_mask.c libsmctrl.a libsmctrl_test_mask_shared.o
33 $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS)
34
29libsmctrl_test_global_mask: libsmctrl_test_global_mask.c libsmctrl.a libsmctrl_test_mask_shared.o 35libsmctrl_test_global_mask: libsmctrl_test_global_mask.c libsmctrl.a libsmctrl_test_mask_shared.o
30 $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS) 36 $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS)
31 37
@@ -41,12 +47,17 @@ libsmctrl_test_next_mask: libsmctrl_test_next_mask.c libsmctrl.a libsmctrl_test_
41libsmctrl_test_next_mask_override: libsmctrl_test_next_mask_override.c libsmctrl.a libsmctrl_test_mask_shared.o 47libsmctrl_test_next_mask_override: libsmctrl_test_next_mask_override.c libsmctrl.a libsmctrl_test_mask_shared.o
42 $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS) 48 $(NVCC) -ccbin $(CXX) $@.c -o $@ libsmctrl_test_mask_shared.o -g -L. -l:libsmctrl.a $(LDFLAGS)
43 49
44tests: 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 50tests: libsmctrl_test_gpc_info libsmctrl_test_supreme_mask \
51 libsmctrl_test_global_mask libsmctrl_test_stream_mask \
52 libsmctrl_test_stream_mask_override libsmctrl_test_next_mask \
53 libsmctrl_test_next_mask_override
45 54
46all: libsmctrl.so tests 55all: libsmctrl.so nvtaskset tests
47 56
48clean: 57clean:
49 rm -f libsmctrl.so libsmctrl.a libsmctrl_test_gpu_info \ 58 rm -f libsmctrl.so libsmctrl.o libsmctrl.a libsmctrl_test_gpc_info \
50 libsmctrl_test_mask_shared.o libmsctrl_test_global_mask \ 59 libsmctrl_test_mask_shared.o libsmctrl_test_supreme_mask \
51 libsmctrl_test_stream_mask libmsctrl_test_stream_mask_override \ 60 libsmctrl_test_global_mask \
52 libsmctrl_test_next_mask libmsctrl_test_next_mask_override 61 libsmctrl_test_stream_mask libsmctrl_test_stream_mask_override \
62 libsmctrl_test_next_mask libsmctrl_test_next_mask_override \
63 nvtaskset