Skip to content

Commit 1603e83

Browse files
authored
Merge pull request #452 from lxzlxzliuxuzhao/feature/ixml-support
Add Iluvatar CoreX ixML backend
2 parents f7dbb30 + d88d57f commit 1603e83

4 files changed

Lines changed: 770 additions & 1 deletion

File tree

CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ if(APPLE)
7272
set(PANTHOR_SUPPORT_DEFAULT OFF)
7373
set(ASCEND_SUPPORT_DEFAULT OFF)
7474
set(METAX_SUPPORT_DEFAULT OFF)
75+
set(IXML_SUPPORT_DEFAULT OFF)
7576
elseif(ASCEND_SUPPORT)
7677
set(APPLE_SUPPORT_DEFAULT OFF)
7778
set(NVIDIA_SUPPORT_DEFAULT OFF)
@@ -83,6 +84,7 @@ elseif(ASCEND_SUPPORT)
8384
set(PANTHOR_SUPPORT_DEFAULT OFF)
8485
set(ASCEND_SUPPORT_DEFAULT ON)
8586
set(METAX_SUPPORT_DEFAULT OFF)
87+
set(IXML_SUPPORT_DEFAULT OFF)
8688
else()
8789
set(APPLE_SUPPORT_DEFAULT OFF)
8890
set(NVIDIA_SUPPORT_DEFAULT ON)
@@ -95,6 +97,7 @@ else()
9597
set(PANTHOR_SUPPORT_DEFAULT ON)
9698
set(ASCEND_SUPPORT_DEFAULT OFF)
9799
set(METAX_SUPPORT_DEFAULT ON)
100+
set(IXML_SUPPORT_DEFAULT ON)
98101
endif()
99102

100103
# TPU and Enflame GCU support is only available on Linux
@@ -139,6 +142,7 @@ option(TPU_SUPPORT "Build support for Google TPUs through GRPC" ${TPU_SUPPORT_DE
139142
option(ROCKCHIP_SUPPORT "Enable support for Rockchip NPU" ${ROCKCHIP_SUPPORT_DEFAULT})
140143
option(METAX_SUPPORT "Build support for MetaX GPUs through libmxsml" ${METAX_SUPPORT_DEFAULT})
141144
option(ENFLAME_SUPPORT "Build support for Enflame GCUs through libefml" ${ENFLAME_SUPPORT_DEFAULT})
145+
option(IXML_SUPPORT "Build support for Iluvatar CoreX GPUs through libixml" ${IXML_SUPPORT_DEFAULT})
142146

143147
add_subdirectory(src)
144148

README.markdown

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ htop-familiar way.
1111
Currently supported vendors are AMD (Linux amdgpu driver), Apple (limited M1 &
1212
M2 support), Huawei (Ascend), Intel (Linux i915/Xe drivers), NVIDIA (Linux
1313
proprietary divers), Qualcomm Adreno (Linux MSM driver), Broadcom VideoCore (Linux v3d driver),
14-
Rockchip, MetaX (MXSML driver), Enflame (Linux EFML driver).
14+
Rockchip, MetaX (MXSML driver), Enflame (Linux EFML driver), Iluvatar CoreX
15+
(ixML / libixml).
1516

1617
Because a picture is worth a thousand words:
1718

@@ -31,6 +32,7 @@ Table of Contents
3132
- [Adreno](#adreno)
3233
- [Apple](#apple)
3334
- [Ascend](#ascend) (only tested on 910B)
35+
- [Iluvatar CoreX](#iluvatar-corex)
3436
- [VideoCore](#videocore)
3537
- [Rockchip](#rockchip)
3638
- [MetaX](#metax)
@@ -136,6 +138,15 @@ NVTOP supports Ascend (testing on Altas 800 (910B)) by DCMI API (version 6.0.0).
136138

137139
Currently, the DCMI only supports limited APIs, missing PCIe generation, tx/rx throughput info, max power draw etc.
138140

141+
### Iluvatar CoreX
142+
143+
NVTOP supports Iluvatar CoreX GPUs through the ixML library.
144+
145+
The backend dynamically loads `libixml.so` from `/usr/local/corex/lib`,
146+
`/usr/local/corex/lib64`, or the default dynamic loader search path. The ixML
147+
runtime exposes an NVML-compatible API surface used by NVTOP to query device,
148+
power, PCIe, clock, temperature, memory, and process information.
149+
139150
### VideoCore
140151

141152
NVTOP supports VideoCore (testing on raspberrypi 4B).
@@ -175,6 +186,8 @@ Several libraries are required in order for NVTOP to display GPU info:
175186
* For METAX: the *MetaX System Management Library* (*MXSML*) which comes with the GPU driver.
176187
* This queries the GPU for info.
177188
* For Enflame: the *Enflame Management Library* (*EFML*) which comes with the GCU driver.
189+
* For Iluvatar CoreX: the *ixML* runtime library (`libixml.so`) which comes with the driver.
190+
* This backend loads the library dynamically at runtime.
178191

179192
## Distribution Specific Installation Process
180193

src/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ if(ENFLAME_SUPPORT)
164164
target_sources(nvtop PRIVATE extract_gcuinfo_enflame.c)
165165
endif()
166166

167+
if(IXML_SUPPORT)
168+
message(STATUS "Building with Iluvatar CoreX GPU support")
169+
target_sources(nvtop PRIVATE extract_gpuinfo_ixml.c)
170+
endif()
171+
167172
target_include_directories(nvtop PRIVATE
168173
${PROJECT_SOURCE_DIR}/include
169174
${PROJECT_BINARY_DIR}/include)

0 commit comments

Comments
 (0)