|
|
ARCH := $(shell getconf LONG_BIT) |
|
|
OS := $(shell cat /etc/issue) |
|
|
|
|
|
ifneq (,$(wildcard /etc/redhat-release)) |
|
|
RHEL_OS := $(shell cat /etc/redhat-release) |
|
|
endif |
|
|
|
|
|
|
|
|
DRIVER_BRANCH := $(shell nvidia-smi | grep Driver | cut -f 3 -d' ' | cut -f 1 -d '.') |
|
|
|
|
|
|
|
|
CUDA_PATH ?= "/usr/local/cuda-8.0" |
|
|
|
|
|
ifeq (${ARCH},$(filter ${ARCH},32 64)) |
|
|
|
|
|
|
|
|
|
|
|
ifneq (,$(findstring Ubuntu,$(OS))) |
|
|
DEB := $(shell dpkg -l | grep cuda) |
|
|
ifneq (,$(findstring cuda, $(DEB))) |
|
|
NVML_LIB := /usr/lib/nvidia-$(DRIVER_BRANCH) |
|
|
else |
|
|
NVML_LIB := /lib${ARCH} |
|
|
endif |
|
|
endif |
|
|
|
|
|
ifneq (,$(findstring SUSE,$(OS))) |
|
|
RPM := $(shell rpm -qa cuda*) |
|
|
ifneq (,$(findstring cuda, $(RPM))) |
|
|
NVML_LIB := /usr/lib${ARCH} |
|
|
else |
|
|
NVML_LIB := /lib${ARCH} |
|
|
endif |
|
|
endif |
|
|
|
|
|
ifneq (,$(findstring CentOS,$(RHEL_OS))) |
|
|
RPM := $(shell rpm -qa cuda*) |
|
|
ifneq (,$(findstring cuda, $(RPM))) |
|
|
NVML_LIB := /usr/lib${ARCH}/nvidia |
|
|
else |
|
|
NVML_LIB := /lib${ARCH} |
|
|
endif |
|
|
endif |
|
|
|
|
|
ifneq (,$(findstring Red Hat,$(RHEL_OS))) |
|
|
RPM := $(shell rpm -qa cuda*) |
|
|
ifneq (,$(findstring cuda, $(RPM))) |
|
|
NVML_LIB := /usr/lib${ARCH}/nvidia |
|
|
else |
|
|
NVML_LIB := /lib${ARCH} |
|
|
endif |
|
|
endif |
|
|
|
|
|
ifneq (,$(findstring Fedora,$(RHEL_OS))) |
|
|
RPM := $(shell rpm -qa cuda*) |
|
|
ifneq (,$(findstring cuda, $(RPM))) |
|
|
NVML_LIB := /usr/lib${ARCH}/nvidia |
|
|
else |
|
|
NVML_LIB := /lib${ARCH} |
|
|
endif |
|
|
endif |
|
|
|
|
|
else |
|
|
NVML_LIB := ../../lib${ARCH}/stubs/ |
|
|
$(info "libnvidia-ml.so.1" not found, using stub library.) |
|
|
endif |
|
|
|
|
|
ifneq (${ARCH},$(filter ${ARCH},32 64)) |
|
|
$(error Unknown architecture!) |
|
|
endif |
|
|
|
|
|
NVML_LIB += ../lib/ |
|
|
NVML_LIB_L := $(addprefix -L , $(NVML_LIB)) |
|
|
|
|
|
CFLAGS := -I ../../include -I ../include |
|
|
LDFLAGS := -lnvidia-ml $(NVML_LIB_L) |
|
|
|
|
|
all: example supportedVgpus |
|
|
example: example.o |
|
|
$(CC) $< $(CFLAGS) $(LDFLAGS) -o $@ |
|
|
supportedVgpus: supportedVgpus.o |
|
|
$(CC) $< $(CFLAGS) $(LDFLAGS) -o $@ |
|
|
clean: |
|
|
-@rm -f example.o |
|
|
-@rm -f example |
|
|
-@rm -f supportedVgpus.o |
|
|
-@rm -f supportedVgpus |
|
|
|