Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ if(APPLE)
set(PANTHOR_SUPPORT_DEFAULT OFF)
set(ASCEND_SUPPORT_DEFAULT OFF)
set(METAX_SUPPORT_DEFAULT OFF)
set(IXML_SUPPORT_DEFAULT OFF)
elseif(ASCEND_SUPPORT)
set(APPLE_SUPPORT_DEFAULT OFF)
set(NVIDIA_SUPPORT_DEFAULT OFF)
Expand All @@ -81,6 +82,7 @@ elseif(ASCEND_SUPPORT)
set(PANTHOR_SUPPORT_DEFAULT OFF)
set(ASCEND_SUPPORT_DEFAULT ON)
set(METAX_SUPPORT_DEFAULT OFF)
set(IXML_SUPPORT_DEFAULT OFF)
else()
set(APPLE_SUPPORT_DEFAULT OFF)
set(NVIDIA_SUPPORT_DEFAULT ON)
Expand All @@ -92,6 +94,7 @@ else()
set(PANTHOR_SUPPORT_DEFAULT ON)
set(ASCEND_SUPPORT_DEFAULT OFF)
set(METAX_SUPPORT_DEFAULT ON)
set(IXML_SUPPORT_DEFAULT ON)
endif()

# TPU and Enflame GCU support is only available on Linux
Expand Down Expand Up @@ -135,6 +138,7 @@ option(TPU_SUPPORT "Build support for Google TPUs through GRPC" ${TPU_SUPPORT_DE
option(ROCKCHIP_SUPPORT "Enable support for Rockchip NPU" ${ROCKCHIP_SUPPORT_DEFAULT})
option(METAX_SUPPORT "Build support for MetaX GPUs through libmxsml" ${METAX_SUPPORT_DEFAULT})
option(ENFLAME_SUPPORT "Build support for Enflame GCUs through libefml" ${ENFLAME_SUPPORT_DEFAULT})
option(IXML_SUPPORT "Build support for Iluvatar CoreX GPUs through libixml" ${IXML_SUPPORT_DEFAULT})

add_subdirectory(src)

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

Because a picture is worth a thousand words:

Expand All @@ -31,6 +32,7 @@ Table of Contents
- [Adreno](#adreno)
- [Apple](#apple)
- [Ascend](#ascend) (only tested on 910B)
- [Iluvatar CoreX](#iluvatar-corex)
- [VideoCore](#videocore)
- [Rockchip](#rockchip)
- [MetaX](#metax)
Expand Down Expand Up @@ -134,6 +136,15 @@ NVTOP supports Ascend (testing on Altas 800 (910B)) by DCMI API (version 6.0.0).

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

### Iluvatar CoreX

NVTOP supports Iluvatar CoreX GPUs through the ixML library.

The backend dynamically loads `libixml.so` from `/usr/local/corex/lib`,
`/usr/local/corex/lib64`, or the default dynamic loader search path. The ixML
runtime exposes an NVML-compatible API surface used by NVTOP to query device,
power, PCIe, clock, temperature, memory, and process information.

### VideoCore

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

## Distribution Specific Installation Process

Expand Down
5 changes: 5 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,11 @@ if(ENFLAME_SUPPORT)
target_sources(nvtop PRIVATE extract_gcuinfo_enflame.c)
endif()

if(IXML_SUPPORT)
message(STATUS "Building with Iluvatar CoreX GPU support")
target_sources(nvtop PRIVATE extract_gpuinfo_ixml.c)
endif()

target_include_directories(nvtop PRIVATE
${PROJECT_SOURCE_DIR}/include
${PROJECT_BINARY_DIR}/include)
Expand Down
Loading