github.com/alwaysproblem/mlserving-tutorial@v0.0.0-20221124033215-121cfddbfbf4/TFserving/CustomOp/custom-op/Makefile (about)

     1  CXX := g++
     2  NVCC := nvcc
     3  PYTHON_BIN_PATH = python
     4  
     5  ADD_INDEX_SRCS = $(wildcard add_index/cc/kernels/*.cc) $(wildcard add_index/cc/ops/*.cc)
     6  ZERO_OUT_SRCS = $(wildcard tensorflow_zero_out/cc/kernels/*.cc) $(wildcard tensorflow_zero_out/cc/ops/*.cc)
     7  TIME_TWO_SRCS = tensorflow_time_two/cc/kernels/time_two_kernels.cc $(wildcard tensorflow_time_two/cc/kernels/*.h) $(wildcard tensorflow_time_two/cc/ops/*.cc)
     8  
     9  TF_CFLAGS := $(shell $(PYTHON_BIN_PATH) -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_compile_flags()))')
    10  TF_LFLAGS := $(shell $(PYTHON_BIN_PATH) -c 'import tensorflow as tf; print(" ".join(tf.sysconfig.get_link_flags()))')
    11  
    12  CFLAGS = ${TF_CFLAGS} -fPIC -O2 -std=c++17
    13  LDFLAGS = -shared ${TF_LFLAGS}
    14  
    15  ADD_INDEX_TARGET_LIB = add_index/python/ops/_add_index_ops.so
    16  ZERO_OUT_TARGET_LIB = tensorflow_zero_out/python/ops/_zero_out_ops.so
    17  TIME_TWO_GPU_ONLY_TARGET_LIB = tensorflow_time_two/python/ops/_time_two_ops.cu.o
    18  TIME_TWO_TARGET_LIB = tensorflow_time_two/python/ops/_time_two_ops.so
    19  
    20  # add_index op for CPU
    21  add_index_op: $(ADD_INDEX_TARGET_LIB)
    22  
    23  $(ADD_INDEX_TARGET_LIB): $(ADD_INDEX_SRCS)
    24  	$(CXX) $(CFLAGS) -o $@ $^ ${LDFLAGS}
    25  
    26  add_index_test: add_index/python/ops/add_index_ops_test.py add_index/python/ops/add_index_ops.py $(ADD_INDEX_TARGET_LIB)
    27  	$(PYTHON_BIN_PATH) add_index/python/ops/add_index_ops_test.py
    28  
    29  add_index_pip_pkg: $(ADD_INDEX_TARGET_LIB)
    30  	./build_pip_pkg.sh make artifacts
    31  
    32  # zero_out op for CPU
    33  zero_out_op: $(ZERO_OUT_TARGET_LIB)
    34  
    35  $(ZERO_OUT_TARGET_LIB): $(ZERO_OUT_SRCS)
    36  	$(CXX) $(CFLAGS) -o $@ $^ ${LDFLAGS}
    37  
    38  zero_out_test: tensorflow_zero_out/python/ops/zero_out_ops_test.py tensorflow_zero_out/python/ops/zero_out_ops.py $(ZERO_OUT_TARGET_LIB)
    39  	$(PYTHON_BIN_PATH) tensorflow_zero_out/python/ops/zero_out_ops_test.py
    40  
    41  zero_out_pip_pkg: $(ZERO_OUT_TARGET_LIB)
    42  	./build_pip_pkg.sh make artifacts
    43  
    44  
    45  # time_two op for GPU
    46  time_two_gpu_only: $(TIME_TWO_GPU_ONLY_TARGET_LIB)
    47  
    48  $(TIME_TWO_GPU_ONLY_TARGET_LIB): tensorflow_time_two/cc/kernels/time_two_kernels.cu.cc
    49  	$(NVCC) -std=c++11 -c -o $@ $^  $(TF_CFLAGS) -D GOOGLE_CUDA=1 -x cu -Xcompiler -fPIC -DNDEBUG --expt-relaxed-constexpr
    50  
    51  time_two_op: $(TIME_TWO_TARGET_LIB)
    52  $(TIME_TWO_TARGET_LIB): $(TIME_TWO_SRCS) $(TIME_TWO_GPU_ONLY_TARGET_LIB)
    53  	$(CXX) $(CFLAGS) -o $@ $^ ${LDFLAGS}  -D GOOGLE_CUDA=1  -I/usr/local/cuda/targets/x86_64-linux/include -L/usr/local/cuda/targets/x86_64-linux/lib -lcudart
    54  
    55  time_two_test: tensorflow_time_two/python/ops/time_two_ops_test.py tensorflow_time_two/python/ops/time_two_ops.py $(TIME_TWO_TARGET_LIB)
    56  	$(PYTHON_BIN_PATH) tensorflow_time_two/python/ops/time_two_ops_test.py
    57  
    58  clean:
    59  	rm -f $(ADD_INDEX_TARGET_LIB) $(ZERO_OUT_TARGET_LIB) $(TIME_TWO_GPU_ONLY_TARGET_LIB) $(TIME_TWO_TARGET_LIB)