mirror of
https://github.com/aristocratos/btop.git
synced 2024-09-29 22:51:35 +02:00
Statically link ROCm SMI
This commit is contained in:
parent
b2df0696fd
commit
a0163ce220
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +1,6 @@
|
|||||||
[submodule "lib/fmt"]
|
[submodule "lib/fmt"]
|
||||||
path = lib/fmt
|
path = lib/fmt
|
||||||
url = https://github.com/fmtlib/fmt
|
url = https://github.com/fmtlib/fmt
|
||||||
|
[submodule "lib/rocm_smi_lib"]
|
||||||
|
path = lib/rocm_smi_lib
|
||||||
|
url = https://github.com/RadeonOpenCompute/rocm_smi_lib
|
||||||
|
31
Makefile
31
Makefile
@ -120,12 +120,9 @@ ifeq ($(PLATFORM_LC),linux)
|
|||||||
THREADS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
THREADS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
||||||
SU_GROUP := root
|
SU_GROUP := root
|
||||||
ifneq ($(NO_GPU),true)
|
ifneq ($(NO_GPU),true)
|
||||||
ifeq ($(shell find /opt/rocm/include/rocm_smi/ -type f -name rocm_smi.h >/dev/null 2>&1; echo $$?),0)
|
GPULDFLAGS += lib/rocm_smi_lib/build/rocm_smi/librocm_smi64.a
|
||||||
GPUCXXFLAGS += -I/opt/rocm/include
|
|
||||||
GPULDFLAGS += -L/opt/rocm/lib -lrocm_smi64
|
|
||||||
override ADDFLAGS += -DGPU_AMD
|
override ADDFLAGS += -DGPU_AMD
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
else ifeq ($(PLATFORM_LC),freebsd)
|
else ifeq ($(PLATFORM_LC),freebsd)
|
||||||
PLATFORM_DIR := freebsd
|
PLATFORM_DIR := freebsd
|
||||||
THREADS := $(shell getconf NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
THREADS := $(shell getconf NPROCESSORS_ONLN 2>/dev/null || echo 1)
|
||||||
@ -171,9 +168,7 @@ override REQFLAGS := -std=c++20
|
|||||||
WARNFLAGS := -Wall -Wextra -pedantic
|
WARNFLAGS := -Wall -Wextra -pedantic
|
||||||
OPTFLAGS := -O2 -ftree-vectorize -flto=$(LTO)
|
OPTFLAGS := -O2 -ftree-vectorize -flto=$(LTO)
|
||||||
LDCXXFLAGS := -pthread -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -D_FILE_OFFSET_BITS=64 $(GOODFLAGS) $(ADDFLAGS)
|
LDCXXFLAGS := -pthread -D_FORTIFY_SOURCE=2 -D_GLIBCXX_ASSERTIONS -D_FILE_OFFSET_BITS=64 $(GOODFLAGS) $(ADDFLAGS)
|
||||||
GPUCXXFLAGS := -I/opt/cuda/include -I/opt/rocm/include # TODO: there has to be a better way to link these libs than hardcoded dirs
|
override CXXFLAGS += $(REQFLAGS) $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
|
||||||
GPULDFLAGS := -L/opt/cuda/lib -L/opt/rocm/lib -lnvidia-ml -lrocm_smi64
|
|
||||||
override CXXFLAGS += $(REQFLAGS) $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS) $(GPUCXXFLAGS)
|
|
||||||
override LDFLAGS += $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS) $(GPULDFLAGS)
|
override LDFLAGS += $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS) $(GPULDFLAGS)
|
||||||
INC := $(foreach incdir,$(INCDIRS),-isystem $(incdir)) -I$(SRCDIR)
|
INC := $(foreach incdir,$(INCDIRS),-isystem $(incdir)) -I$(SRCDIR)
|
||||||
SU_USER := root
|
SU_USER := root
|
||||||
@ -219,9 +214,8 @@ info:
|
|||||||
@printf "\033[1;91mWARNFLAGS \033[1;94m:| \033[0m$(WARNFLAGS)\n"
|
@printf "\033[1;91mWARNFLAGS \033[1;94m:| \033[0m$(WARNFLAGS)\n"
|
||||||
@printf "\033[1;94mOPTFLAGS \033[1;94m:| \033[0m$(OPTFLAGS)\n"
|
@printf "\033[1;94mOPTFLAGS \033[1;94m:| \033[0m$(OPTFLAGS)\n"
|
||||||
@printf "\033[1;93mLDCXXFLAGS \033[1;94m:| \033[0m$(LDCXXFLAGS)\n"
|
@printf "\033[1;93mLDCXXFLAGS \033[1;94m:| \033[0m$(LDCXXFLAGS)\n"
|
||||||
@printf "\033[1;92mGPUCXXFLAGS \033[1;94m:| \033[0m$(GPUCXXFLAGS)\n"
|
|
||||||
@printf "\033[1;92mGPULDFLAGS \033[1;94m:| \033[0m$(GPULDFLAGS)\n"
|
@printf "\033[1;92mGPULDFLAGS \033[1;94m:| \033[0m$(GPULDFLAGS)\n"
|
||||||
@printf "\033[1;95mCXXFLAGS \033[1;92m+| \033[0;37m\$$(\033[92mREQFLAGS\033[37m) \$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) \$$(\033[92mGPUCXXFLAGS\033[37m) $(OLDCXX)\n"
|
@printf "\033[1;95mCXXFLAGS \033[1;92m+| \033[0;37m\$$(\033[92mREQFLAGS\033[37m) \$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) $(OLDCXX)\n"
|
||||||
@printf "\033[1;95mLDFLAGS \033[1;92m+| \033[0;37m\$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) \$$(\033[92mGPULDFLAGS\033[37m) $(OLDLD)\n"
|
@printf "\033[1;95mLDFLAGS \033[1;92m+| \033[0;37m\$$(\033[93mLDCXXFLAGS\033[37m) \$$(\033[94mOPTFLAGS\033[37m) \$$(\033[91mWARNFLAGS\033[37m) \$$(\033[92mGPULDFLAGS\033[37m) $(OLDLD)\n"
|
||||||
|
|
||||||
info-quiet:
|
info-quiet:
|
||||||
@ -302,9 +296,26 @@ uninstall:
|
|||||||
#? Pull in dependency info for *existing* .o files
|
#? Pull in dependency info for *existing* .o files
|
||||||
-include $(OBJECTS:.$(OBJEXT)=.$(DEPEXT))
|
-include $(OBJECTS:.$(OBJEXT)=.$(DEPEXT))
|
||||||
|
|
||||||
|
#? Compile rocm_smi
|
||||||
|
ifneq ($(NO_GPU),true)
|
||||||
|
.ONESHELL:
|
||||||
|
rocm_smi:
|
||||||
|
@printf "\n\033[1;92mCompiling librocm_smi64.a\033[37m...\033[0m\n"
|
||||||
|
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
|
||||||
|
@mkdir lib/rocm_smi_lib/build
|
||||||
|
@cd lib/rocm_smi_lib/build
|
||||||
|
@cmake .. &>/dev/null
|
||||||
|
@make rocm_smi64 &>/dev/null
|
||||||
|
@ar -crs rocm_smi/librocm_smi64.a $$(find rocm_smi -name '*.o')
|
||||||
|
@printf "\n\033[1;92mlibrocm_smi64.a build complete in \033[92m(\033[97m$$($(DATE_CMD) -d @$$(expr $$(date +%s 2>/dev/null || echo "0") - $(TIMESTAMP) 2>/dev/null) -u +%Mm:%Ss 2>/dev/null | sed 's/^00m://' || echo "unknown")\033[92m)\033[0m\n"
|
||||||
|
else
|
||||||
|
rocm_smi:
|
||||||
|
@true
|
||||||
|
endif
|
||||||
|
|
||||||
#? Link
|
#? Link
|
||||||
.ONESHELL:
|
.ONESHELL:
|
||||||
btop: $(OBJECTS) | directories
|
btop: $(OBJECTS) | directories rocm_smi
|
||||||
@sleep 0.2 2>/dev/null || true
|
@sleep 0.2 2>/dev/null || true
|
||||||
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
|
@TSTAMP=$$(date +%s 2>/dev/null || echo "0")
|
||||||
@$(QUIET) || printf "\n\033[1;92mLinking and optimizing binary\033[37m...\033[0m\n"
|
@$(QUIET) || printf "\n\033[1;92mLinking and optimizing binary\033[37m...\033[0m\n"
|
||||||
|
1
lib/rocm_smi_lib
Submodule
1
lib/rocm_smi_lib
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit f8882d74d8749e2ad788184d624167cc326d4c2c
|
Loading…
Reference in New Issue
Block a user