|
1 | 1 | # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. |
2 | 2 | # SPDX-License-Identifier: BSD-2-Clause |
| 3 | +.PHONY: all nrt_extern test_device_functions clean |
| 4 | + |
| 5 | +.DEFAULT_GOAL := all |
3 | 6 |
|
4 | 7 | # Generates the input files used by the nvjitlink tests |
5 | 8 |
|
@@ -45,28 +48,79 @@ OUTPUT_DIR := ./ |
45 | 48 |
|
46 | 49 | NRT_INCLUDE_DIR := $(shell python -c "from numba.cuda.memory_management.nrt import get_include; print(get_include())") |
47 | 50 |
|
48 | | -all: |
49 | | - @echo "GPU CC: $(GPU_CC)" |
50 | | - @echo "Alternative CC: $(ALT_CC)" |
51 | | - # Compile all test objects |
52 | | - nvcc $(NVCC_FLAGS) $(CUBIN_FLAGS) -o $(OUTPUT_DIR)/undefined_extern.cubin undefined_extern.cu |
53 | | - nvcc $(NVCC_FLAGS) $(CUBIN_FLAGS) -o $(OUTPUT_DIR)/test_device_functions.cubin test_device_functions.cu |
54 | | - nvcc $(NVCC_FLAGS) $(FATBIN_FLAGS) -o $(OUTPUT_DIR)/test_device_functions.fatbin test_device_functions.cu |
55 | | - nvcc $(NVCC_FLAGS) $(MULTI_FATBIN_FLAGS) -o $(OUTPUT_DIR)/test_device_functions_multi.fatbin test_device_functions.cu |
56 | | - nvcc $(NVCC_FLAGS) $(PTX_FLAGS) -o $(OUTPUT_DIR)/test_device_functions.ptx test_device_functions.cu |
57 | | - nvcc $(NVCC_FLAGS) $(OBJECT_FLAGS) -o $(OUTPUT_DIR)/test_device_functions.o test_device_functions.cu |
58 | | - nvcc $(NVCC_FLAGS) $(LIBRARY_FLAGS) -o $(OUTPUT_DIR)/test_device_functions.a test_device_functions.cu |
59 | | - |
60 | | - nvcc $(NVCC_FLAGS) $(CUBIN_FLAGS) -o $(OUTPUT_DIR)/nrt_extern.cubin nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
61 | | - nvcc $(NVCC_FLAGS) $(FATBIN_FLAGS) -o $(OUTPUT_DIR)/nrt_extern.fatbin nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
62 | | - nvcc $(NVCC_FLAGS) $(MULTI_FATBIN_FLAGS) -o $(OUTPUT_DIR)/nrt_extern_multi.fatbin nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
63 | | - nvcc $(NVCC_FLAGS) $(PTX_FLAGS) -o $(OUTPUT_DIR)/nrt_extern.ptx nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
64 | | - nvcc $(NVCC_FLAGS) $(OBJECT_FLAGS) -o $(OUTPUT_DIR)/nrt_extern.o nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
65 | | - nvcc $(NVCC_FLAGS) $(LIBRARY_FLAGS) -o $(OUTPUT_DIR)/nrt_extern.a nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
66 | | - |
67 | | - # Generate LTO-IR wrapped in a fatbin |
68 | | - nvcc $(NVCC_FLAGS) $(LTOIR_FLAGS) -o $(OUTPUT_DIR)/test_device_functions.ltoir.o test_device_functions.cu |
69 | | - nvcc $(NVCC_FLAGS) $(LTOIR_FLAGS) -o $(OUTPUT_DIR)/nrt_extern.ltoir.o nrt_extern.cu -I$(NRT_INCLUDE_DIR) |
| 51 | +$(OUTPUT_DIR)/undefined_extern.cubin: undefined_extern.cu |
| 52 | + nvcc $(NVCC_FLAGS) $(CUBIN_FLAGS) -o $@ $< |
| 53 | + |
| 54 | +$(OUTPUT_DIR)/test_device_functions.cubin: test_device_functions.cu |
| 55 | + nvcc $(NVCC_FLAGS) $(CUBIN_FLAGS) -o $@ $< |
| 56 | + |
| 57 | +$(OUTPUT_DIR)/test_device_functions.fatbin: test_device_functions.cu |
| 58 | + nvcc $(NVCC_FLAGS) $(FATBIN_FLAGS) -o $@ $< |
| 59 | + |
| 60 | +$(OUTPUT_DIR)/test_device_functions_multi.fatbin: test_device_functions.cu |
| 61 | + nvcc $(NVCC_FLAGS) $(MULTI_FATBIN_FLAGS) -o $@ $< |
| 62 | + |
| 63 | +$(OUTPUT_DIR)/test_device_functions.ptx: test_device_functions.cu |
| 64 | + nvcc $(NVCC_FLAGS) $(PTX_FLAGS) -o $@ $< |
| 65 | + |
| 66 | +$(OUTPUT_DIR)/test_device_functions.o: test_device_functions.cu |
| 67 | + nvcc $(NVCC_FLAGS) $(OBJECT_FLAGS) -o $@ $< |
| 68 | + |
| 69 | +$(OUTPUT_DIR)/test_device_functions.a: test_device_functions.cu |
| 70 | + nvcc $(NVCC_FLAGS) $(LIBRARY_FLAGS) -o $@ $< |
| 71 | + |
| 72 | +$(OUTPUT_DIR)/test_device_functions.ltoir.o: test_device_functions.cu |
| 73 | + nvcc $(NVCC_FLAGS) $(LTOIR_FLAGS) -o $@ $< |
| 74 | + |
| 75 | +$(OUTPUT_DIR)/test_device_functions.ltoir: test_device_functions.cu |
70 | 76 | # Generate LTO-IR in a "raw" LTO-IR container |
71 | | - python generate_raw_ltoir.py --arch sm_$(GPU_CC) -o $(OUTPUT_DIR)/test_device_functions.ltoir test_device_functions.cu |
72 | | - python generate_raw_ltoir.py --arch sm_$(GPU_CC) -o $(OUTPUT_DIR)/nrt_extern.ltoir nrt_extern.cu --nrt |
| 77 | + python generate_raw_ltoir.py --arch sm_$(GPU_CC) -o $(OUTPUT_DIR)/test_device_functions.ltoir $< |
| 78 | + |
| 79 | +test_device_functions: $(OUTPUT_DIR)/test_device_functions.cubin \ |
| 80 | + $(OUTPUT_DIR)/test_device_functions.fatbin \ |
| 81 | + $(OUTPUT_DIR)/test_device_functions_multi.fatbin \ |
| 82 | + $(OUTPUT_DIR)/test_device_functions.ptx \ |
| 83 | + $(OUTPUT_DIR)/test_device_functions.o \ |
| 84 | + $(OUTPUT_DIR)/test_device_functions.a \ |
| 85 | + $(OUTPUT_DIR)/test_device_functions.ltoir.o \ |
| 86 | + $(OUTPUT_DIR)/test_device_functions.ltoir |
| 87 | + |
| 88 | +$(OUTPUT_DIR)/nrt_extern.cubin: nrt_extern.cu |
| 89 | + nvcc $(NVCC_FLAGS) $(CUBIN_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 90 | + |
| 91 | +$(OUTPUT_DIR)/nrt_extern.fatbin: nrt_extern.cu |
| 92 | + nvcc $(NVCC_FLAGS) $(FATBIN_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 93 | + |
| 94 | +$(OUTPUT_DIR)/nrt_extern_multi.fatbin: nrt_extern.cu |
| 95 | + nvcc $(NVCC_FLAGS) $(MULTI_FATBIN_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 96 | + |
| 97 | +$(OUTPUT_DIR)/nrt_extern.ptx: nrt_extern.cu |
| 98 | + nvcc $(NVCC_FLAGS) $(PTX_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 99 | + |
| 100 | +$(OUTPUT_DIR)/nrt_extern.o: nrt_extern.cu |
| 101 | + nvcc $(NVCC_FLAGS) $(OBJECT_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 102 | + |
| 103 | +$(OUTPUT_DIR)/nrt_extern.a: nrt_extern.cu |
| 104 | + nvcc $(NVCC_FLAGS) $(LIBRARY_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 105 | + |
| 106 | +$(OUTPUT_DIR)/nrt_extern.ltoir.o: nrt_extern.cu |
| 107 | + nvcc $(NVCC_FLAGS) $(LTOIR_FLAGS) -o $@ $< -I$(NRT_INCLUDE_DIR) |
| 108 | + |
| 109 | +$(OUTPUT_DIR)/nrt_extern.ltoir: nrt_extern.cu |
| 110 | + python generate_raw_ltoir.py --arch sm_$(GPU_CC) -o $@ $< --nrt |
| 111 | + |
| 112 | +nrt_extern: $(OUTPUT_DIR)/nrt_extern.cubin \ |
| 113 | + $(OUTPUT_DIR)/nrt_extern.fatbin \ |
| 114 | + $(OUTPUT_DIR)/nrt_extern_multi.fatbin \ |
| 115 | + $(OUTPUT_DIR)/nrt_extern.ptx \ |
| 116 | + $(OUTPUT_DIR)/nrt_extern.o \ |
| 117 | + $(OUTPUT_DIR)/nrt_extern.a \ |
| 118 | + $(OUTPUT_DIR)/nrt_extern.ltoir.o \ |
| 119 | + $(OUTPUT_DIR)/nrt_extern.ltoir |
| 120 | + |
| 121 | +all: test_device_functions nrt_extern $(OUTPUT_DIR)/undefined_extern.cubin |
| 122 | + @>&2 echo "GPU CC: $(GPU_CC)" |
| 123 | + @>&2 echo "Alternative CC: $(ALT_CC)" |
| 124 | + |
| 125 | +clean: |
| 126 | + rm -f *.cubin *.fatbin *.ptx *.o *.a *.ltoir |
0 commit comments