diff options
| author | Joshua Bakita <bakitajoshua@gmail.com> | 2025-05-05 03:30:13 -0400 |
|---|---|---|
| committer | Joshua Bakita <bakitajoshua@gmail.com> | 2025-05-09 06:03:11 -0400 |
| commit | 97e97dc9d55e71edbc2031e6a509a7cc17abe168 (patch) | |
| tree | 645476af274ed5716204c27057cd6c8c1f4dfca2 /Makefile | |
| parent | c250928930cb5c95bffc878913301f9a5d4efcb7 (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-- | Makefile | 23 |
1 files changed, 17 insertions, 6 deletions
| @@ -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 |
| 22 | nvtaskset: nvtaskset.c libsmctrl.so libsmctrl.a | ||
| 23 | $(CC) $@.c -o $@ -L. -l:libsmctrl.a $(CFLAGS) $(LDFLAGS) | ||
| 24 | |||
| 22 | libsmctrl_test_gpc_info: libsmctrl_test_gpc_info.c libsmctrl.a testbench.h | 25 | libsmctrl_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 | |||
| 26 | libsmctrl_test_mask_shared.o: libsmctrl_test_mask_shared.cu testbench.h | 29 | libsmctrl_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 | ||
| 32 | libsmctrl_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 | |||
| 29 | libsmctrl_test_global_mask: libsmctrl_test_global_mask.c libsmctrl.a libsmctrl_test_mask_shared.o | 35 | libsmctrl_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_ | |||
| 41 | libsmctrl_test_next_mask_override: libsmctrl_test_next_mask_override.c libsmctrl.a libsmctrl_test_mask_shared.o | 47 | libsmctrl_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 | ||
| 44 | 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 | 50 | tests: 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 | ||
| 46 | all: libsmctrl.so tests | 55 | all: libsmctrl.so nvtaskset tests |
| 47 | 56 | ||
| 48 | clean: | 57 | clean: |
| 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 | ||
