Git Product home page Git Product logo

nvtop's Introduction

NVTOP

What is NVTOP?

NVTOP stands for Neat Videocard TOP, a (h)top like task monitor for GPUs and accelerators. It can handle multiple GPUs and print information about them in a htop-familiar way.

Currently supported vendors are AMD (Linux amdgpu driver), Apple (limited M1 & M2 support), Huawei (Ascend), Intel (Linux i915 driver), NVIDIA (Linux proprietary divers), Qualcomm Adreno (Linux MSM driver).

Because a picture is worth a thousand words:

NVTOP interface

Table of Contents

NVTOP Options and Interactive Commands

Interactive Setup Window

NVTOP has a builtin setup utility that provides a way to specialize the interface to your needs. Simply press F2 and select the options that are the best for you.

NVTOP Setup Window

Saving Preferences

You can save the preferences set in the setup window by pressing F12. The preferences will be loaded the next time you run nvtop.

NVTOP Manual and Command line Options

NVTOP comes with a manpage!

man nvtop

For quick command line arguments help

nvtop -h
nvtop --help

GPU Support

AMD

NVTOP supports AMD GPUs using the amdgpu driver through the exposed DRM and sysfs interface.

AMD introduced the fdinfo interface in kernel 5.14 (browse kernel source). Hence, you will need a kernel with a version greater or equal to 5.14 to see the processes using AMD GPUs.

Support for recent GPUs are regularly mainlined into the linux kernel, so please use a recent-enough kernel for your GPU.

Intel

NVTOP supports Intel GPUs using the i915 linux driver.

Intel introduced the fdinfo interface in kernel 5.19 (browse kernel source). Hence, you will need a kernel with a version greater or equal to 5.19 to see the processes using Intel GPUs.

INTEL SUPPORT STATUS

  • Intel is working on exposing more hardware information through an HWMON interface. The patches are still a work in progress: see patch series.
  • The fdinfo interface does not expose the memory allocated by the process. The field in the process list is therefore empty.

NVIDIA

The NVML library does not support some of the queries for GPUs coming before the Kepler microarchitecture. Anything starting at GeForce 600, GeForce 800M and successor should work fine. For more information about supported GPUs please take a look at the NVML documentation.

Adreno

NVTOP supports Adreno GPUs using the msm linux driver.

msm introduced the fdinfo interface in kernel 6.0 (browse kernel source). Hence, you will need a kernel with a version greater or equal to 6.0 to see the processes using Adreno GPUs.

Apple

NVTOP includes some initial support for Apple using Metal. This is only supported when building for Apple, and when building for Apple only this vendor is supported.

APPLE SUPPORT STATUS

  • Apple support is still being worked on. Some bugs and limitations may apply.

Ascend

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.

Build

Several libraries are required in order for NVTOP to display GPU info:

  • The ncurses library driving the user interface.
    • This makes the screen look beautiful.
  • For NVIDIA: the NVIDIA Management Library (NVML) which comes with the GPU driver.
    • This queries the GPU for info.
  • For AMD: the libdrm library used to query AMD GPUs through the kernel driver.

Distribution Specific Installation Process

Ubuntu / Debian

If your distribution provides the snap utility, follow the snap installation process to obtain an up-to-date version of nvtop.

A standalone application is available as AppImage.

Ubuntu Impish (21.10), Debian buster (stable) and more recent

  • sudo apt install nvtop

Ubuntu PPA

A PPA supporting Ubuntu 20.04, 22.04 and newer is provided by Martin Wimpress that offers an up-to-date version of nvtop, enabled for NVIDIA, AMD and Intel.

sudo add-apt-repository ppa:flexiondotorg/nvtop
sudo apt install nvtop

Older

  • AMD and Intel Dependencies

    sudo apt install libdrm-dev libsystemd-dev
    # Ubuntu 18.04
    sudo apt install libudev-dev
  • NVIDIA Depenency

  • NVTOP Dependencies

  • CMake, ncurses and Git

sudo apt install cmake libncurses5-dev libncursesw5-dev git

Fedora / Red Hat / CentOS

A standalone application is available as AppImage.

Fedora 36 and newer

  • sudo dnf install nvtop

Red Hat Enterprise Linux 8 and 9

  • sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-$(rpm -E %{rhel}).noarch.rpm
    sudo dnf install nvtop

CentOS Stream, Rocky Linux, AlmaLinux

  • sudo dnf install -y epel-release
    sudo dnf install nvtop

Build process for Fedora / Red Hat / CentOS:

  • AMD and Intel Dependencies

    sudo dnf install libdrm-devel systemd-devel
  • NVIDIA Depenency

    • NVIDIA drivers, CUDA required for nvml libraries (see RPM Fusion)
  • NVTOP Dependencies

  • CMake, ncurses, C++ and Git

sudo dnf install cmake ncurses-devel git gcc-c++

OpenSUSE

A standalone application is available as an AppImage.

Build process for OpenSUSE:

  • AMD Dependecy

    sudo zypper install libdrm-devel
  • NVIDIA Depenency

  • NVTOP Dependencies

    • CMake, ncurses and Git
      sudo zypper install cmake ncurses-devel git
  • NVTOP

Arch Linux

  • sudo pacman -S nvtop

Gentoo

  • sudo layman -a guru && sudo emerge -av nvtop

AppImage

An AppImage is a standalone application. Just download the AppImage, make it executable and run it!

  • Go to the release page and download nvtop-x86_64.AppImage

  • # Go to the download location ** The path may differ on your system **
    cd $HOME/Downloads
    # Make the AppImage executable
    chmod u+x nvtop-x86_64.AppImage
    # Enjoy nvtop
    ./nvtop-x86_64.AppImage

If you are curious how that works, please visit the AppImage website.

Snap

  • snap install nvtop
    # Add the capability to kill processes inside nvtop
    snap connect nvtop:process-control
    # Add the capability to inspect GPU information (fan, PCIe, power, etc)
    snap connect nvtop:hardware-observe
    # AMDGPU process list support (read /proc/<pid>)
    snap connect nvtop:system-observe
    # Temporary workaround to get per-process GPU usage (read /proc/<pid>/fdinfo)
    snap connect nvtop:kubernetes-support

Notice: The connect commands allow

Docker

  • NVIDIA drivers (same as above)

  • nvidia-docker (See Container Toolkit Installation Guide)

  • git clone https://github.com/Syllo/nvtop.git && cd nvtop
    sudo docker build --tag nvtop .
    sudo docker run -it --rm --runtime=nvidia --gpus=all --pid=host nvtop

NVTOP Build

git clone https://github.com/Syllo/nvtop.git
mkdir -p nvtop/build && cd nvtop/build
cmake .. -DNVIDIA_SUPPORT=ON -DAMDGPU_SUPPORT=ON -DINTEL_SUPPORT=ON
make

# Install globally on the system
sudo make install

# Alternatively, install without privileges at a location of your choosing
# make DESTDIR="/your/install/path" install

If you use conda as environment manager and encounter an error while building NVTOP, try conda deactivate before invoking cmake.

The build system supports multiple build types (e.g. -DCMAKE_BUILD_TYPE=RelWithDebInfo):

  • Release: Binary without debug info
  • RelWithDebInfo: Binary with debug info
  • Debug: Compile with warning flags and address/undefined sanitizers enabled (for development purposes)

Troubleshoot

  • The plot looks bad:
    • Verify that you installed the wide character version of the ncurses library (libncursesw5-dev for Debian / Ubuntu), clean the build directory and restart the build process.
  • Putty: Tell putty not to lie about its capabilities ($TERM) by setting the field Terminal-type string to putty in the menu Connection > Data > Terminal Details.

License

NVTOP is licensed under the GPLv3 license or any later version. You will find a copy of the license inside the COPYING file of the repository or at the GNU website <www.gnu.org/licenses/>.

nvtop's People

Contributors

caseylai avatar cfwen avatar comradekingu avatar ebetica avatar euro20179 avatar felixonmars avatar flexiondotorg avatar frankenstein91 avatar hliuca avatar jackyyf avatar jun0922 avatar khoyo avatar larunbe avatar mormacill avatar nightmayr avatar ototot avatar paklui avatar qwertychouskie avatar red-eyed avatar samraymond avatar seibz avatar snektron avatar sonicadvance1 avatar svenstaro avatar syllo avatar thehamsta avatar tzing avatar vowstar avatar xuehaipan avatar zhuyifei1999 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nvtop's Issues

help message typo

  -s --gpu-select   : Column separated list of GPU IDs to monitor
  -i --gpu-ignore   : Column separated list of GPU IDs to ignore

should be "colon" instead of "column" (to match man page)

failed to make

Projects/nvtop/src/nvtop.c:23:10: fatal error: ncurses.h: No such file or directory
#include <ncurses.h>
^~~~~~~~~~~
compilation terminated.
src/CMakeFiles/nvtop.dir/build.make:62: recipe for target 'src/CMakeFiles/nvtop.dir/nvtop.c.o' failed
make[2]: *** [src/CMakeFiles/nvtop.dir/nvtop.c.o] Error 1
CMakeFiles/Makefile2:117: recipe for target 'src/CMakeFiles/nvtop.dir/all' failed
make[1]: *** [src/CMakeFiles/nvtop.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

Prometheus Metrics

Would it be in the scope of the project to have nvtop run as a daemon and have a collector to serve nvidia metrics that Prometheus can consume?

I am imagining a flag nvtop --daemon --metrics --metrics-port 8000 or something, that would be useful to get the information into Grafana :)

Thanks

license

under what license issues?

Cannot compile

~/nvtop/build$ make
[ 20%] Linking C executable nvtop
/usr/lib32/nvidia-390/libnvidia-ml.so: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
src/CMakeFiles/nvtop.dir/build.make:176: recipe for target 'src/nvtop' failed
make[2]: *** [src/nvtop] Error 1
CMakeFiles/Makefile2:117: recipe for target 'src/CMakeFiles/nvtop.dir/all' failed
make[1]: *** [src/CMakeFiles/nvtop.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

[Ubuntu < 22.04] apt install nvtop breaks / requires another nvidia driver

Ubuntu 19.10
After I upgraded the Nvidia driver to 440, I can no longer use nvtop and can't install it.
Is there any solution other than downgrading the driver?

(base) admin01@admin01-ubuntu:~$ sudo apt install nvtop
[sudo] password for admin01: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nvtop : Depends: libnvidia-compute-418 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Wrap NVTOP in docker (Impossible to initialize nvidia nvml)

Hi guys, thanks for awesome tool.
Could you give an example how to wrap nvtop in docker?

Unfortunately this one:

FROM nvidia/cuda

RUN apt-get update && \
    apt-get install -y cmake libncurses5-dev libncursesw5-dev git && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* && \
    rm -rf /work/*


RUN ln -s /usr/local/cuda-10.1/targets/x86_64-linux/lib/stubs/libnvidia-ml.so /usr/local/lib/libnvidia-ml.so && \
    ln -s /usr/local/cuda-10.1/targets/x86_64-linux/lib/stubs/libnvidia-ml.so /usr/local/lib/libnvidia-ml.so.1



RUN cd /tmp && \
    git clone https://github.com/Syllo/nvtop.git && \
    mkdir -p nvtop/build && cd nvtop/build && \
    cmake .. && \
    make && \
    make install && \
    cd / && \
    rm -r /tmp/nvtop


CMD ["/usr/local/bin/nvtop"]

Results in:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING:

You should always run with libnvidia-ml.so that is installed with your
NVIDIA Display Driver. By default it's installed in /usr/lib and /usr/lib64.
libnvidia-ml.so in GDK package is a stub library that is attached only for
build purposes (e.g. machine that you build your application doesn't have
to have Display Driver installed).
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Impossible to initialize nvidia nvml : 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING:

You should always run with libnvidia-ml.so that is installed with your
NVIDIA Display Driver. By default it's installed in /usr/lib and /usr/lib64.
libnvidia-ml.so in GDK package is a stub library that is attached only for
build purposes (e.g. machine that you build your application doesn't have
to have Display Driver installed).
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

When I try to run with:

docker run --runtime=nvidia nvtop

Any ideas?

Gen1@16x

Device 0 [GeForce GTX 1080 Ti] PCIe GEN 3@16x
Device 1 [GeForce GTX 1080 Ti] PCIe GEN 1@16x

but we know it works at GEN 3

show CPU utilization

Hi,

first thanks for this great tool. It really simplifies to keep track of the running GPU processes on our servers. I would also like to also see the CPU utilization. If I would create a pull request, would you welcome this feature?

Thank you,
Leon

Issue with make

After cmake in the build directory, I had the following error when i make.

make
make: Warning: File Makefile' has modification time 25 s in the future make[1]: Warning: File CMakeFiles/Makefile2' has modification time 25 s in the future
make[2]: Warning: File src/CMakeFiles/nvtop.dir/flags.make' has modification time 25 s in the future Scanning dependencies of target nvtop make[2]: warning: Clock skew detected. Your build may be incomplete. make[2]: Warning: File src/CMakeFiles/nvtop.dir/flags.make' has modification time 25 s in the future
[ 12%] Building C object src/CMakeFiles/nvtop.dir/nvtop.c.o
[ 25%] Building C object src/CMakeFiles/nvtop.dir/interface.c.o
[ 37%] Building C object src/CMakeFiles/nvtop.dir/interface_layout_selection.c.o
[ 50%] Building C object src/CMakeFiles/nvtop.dir/get_process_info_linux.c.o
[ 62%] Building C object src/CMakeFiles/nvtop.dir/extract_gpuinfo.c.o
[ 75%] Building C object src/CMakeFiles/nvtop.dir/time.c.o
[ 87%] Building C object src/CMakeFiles/nvtop.dir/plot.c.o
[100%] Linking C executable nvtop
/usr/local/lib/libncursesw.so: could not read symbols: File in wrong format
collect2: ld returned 1 exit status
make[2]: *** [src/nvtop] Error 1
make[1]: *** [src/CMakeFiles/nvtop.dir/all] Error 2
make: *** [all] Error 2

Can anyone please kindly help?

ENC percentage, what it is?

Yes I know is not an issue

I'm converting a video with ffmpeg and h264_nvenc encoder (nvidia encoder) and I'm having ENC close to 100%

This is Encoder usage % isn't it?

I'm asking because there is no explicit reference/documentation...

Cannot open in a stand alone terminal (.desktop file)

If I try to create a stand alone instance like htop allows me to.
(htop case: xfce4-terminal -T "htop" -x /usr/bin/sudo /usr/bin/htop)
For example, this .desktop file (I added the .txt so I can upload it):
Exec=xfce4-terminal -T "NvTop" -x /usr/bin/sudo /usr/bin/nvtop
NvTop.desktop.txt
nvtop starts and then stops immediately after.

However, it seems to work just fine. If I open a terminal instance and run nvtop, nvtop runs as expected. It works both as root and as normal user.
Am I missing something?

Unbound memory allocation on system with six gpus

Hey there - thanks for this amazing monitoring tool! 🙇

Here's an issue I'm hitting: when running on a 6-gpu system nvtop allocates memory until it is getting killed by the linux oom killer. It looks like there is an overflow somewhere leading to unbound memory allocation (at a rate of multiple GBs per second).

Another data point: this behavior stops to happen when I run in a small terminal (e.g. 80x24) or in a tmux split pane, which indicates it has something to do with the live utilization plots.

When running a debug build and sending a SIGHUP signal during the memory allocation I get backtraces indicating draw_plots in the problem, e.g.

(gdb) bt
#0  0x00005555555c11c8 in nvtop_line_plot (win=0x0, num_data=3200171704, data=0x7ff9f9354800, min=0, max=100, num_plots=4, legend=0x7fffffffe000) at /home/djh/nvtop/src/plot.c:61
#1  0x00005555555a99db in draw_plots (interface=0x6110000002c0) at /home/djh/nvtop/src/interface.c:1604
#2  0x00005555555a9ce1 in draw_gpu_info_ncurses (dev_info=0x61a000000c80, interface=0x6110000002c0) at /home/djh/nvtop/src/interface.c:1625
#3  0x0000555555594192 in main (argc=1, argv=0x7fffffffe4a8) at /home/djh/nvtop/src/nvtop.c:270

Hope that helps, let me know if you need more information.

Regarding the shortcuts

Great tool. I think it would be nice to have the same shortcuts as htop. - Just a suggestion.

doesn't work with latest nvidia driver on Ubuntu

apt-get install nvtop

The following NEW packages will be installed:
libnvidia-compute-418 libnvidia-compute-430 ...

The following packages will be REMOVED:
libnvidia-compute-435 ...

Can nvtop be updated to use the current driver? Thanks.

Can not compile on Nvidia jetson nano board

Hi,
I got this error when I tried to compile nvtop on nvidia jetson nano

-- The C compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Setting build type to 'Release' as none was specified.
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find NVML (missing: NVML_LIBRARIES) (found version "10")
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindNVML.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:31 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/pythops/nvtop/build/CMakeFiles/CMakeOutput.log".

Environment
OS: Ubuntu 18.04.3 LTS
Cuda: 10.0.326-1
libcudnn: 7.5.0.56-1+cuda10.0
nvml: cuda-nvml-dev-10-0

Additional info

$ ldconfig -p | grep libnvidia-ml
	libnvidia-ml.so.1 (libc6,AArch64) => /usr/local/cuda/lib64/stubs/libnvidia-ml.so.1

Any help would be appreciated !

Can't scroll/view offscreen processes

I have a server running something one the order of 80 GPU processes spread across 8 GPU's.
The issue is I can't scroll the process list beyond the first visible one's(14 on my MBP's screen).
P.S.
Built from latest commit in dev.

After update from 0.1.0 to 0.2.0 most of stats does not show up

Hello,
I am running Arch Linux with latest NVIDIA drivers. Not so long ago I got update from AUR, version 0.1.0 got updated to 0.2.0 and now most of the stats does not show up:

image

Before the update I could see stats and info for GTX 1080 Ti, for GTX 780 (2nd GPU) it was not shown as I understand because of NVIDIA limitations. But at the moment as you can see even 1st GPU does not show stuffs.

All that I can see is Temperature, Fan Speed and Memory Utilization.

Here is output of my nvidia-smi:

[adomas@genesis ~]$ nvidia-smi 
Mon Apr  9 01:43:44 2018       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.48                 Driver Version: 390.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:01:00.0  On |                  N/A |
|  0%   62C    P0    84W / 280W |    820MiB / 11175MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+                     
|   1  GeForce GTX 780     Off  | 00000000:02:00.0 N/A |                  N/A |                     
| 17%   31C    P8    N/A /  N/A |     59MiB /  3022MiB |     N/A      Default |                     
+-------------------------------+----------------------+----------------------+                     
                                                                                                    
+-----------------------------------------------------------------------------+                     
| Processes:                                                       GPU Memory |                     
|  GPU       PID   Type   Process name                             Usage      |                     
|=============================================================================|                     
|    0       888      G   /usr/lib/xorg-server/Xorg                    551MiB |                     
|    0      1805      G   /usr/bin/kwin_x11                             50MiB |                     
|    0      1811      G   /usr/bin/krunner                               2MiB |                   
|    0      1813      G   /usr/bin/plasmashell                         109MiB |                     
|    0      2468      G   ...as/.local/share/Steam/ubuntu12_32/steam   103MiB |                     
|    1                    Not Supported                                       |
+-----------------------------------------------------------------------------+

ENC isn't being shown on graph

As can be seen in the below graph, GPU and MEM are shown, but the ENC value isn't being plotted.

capture

Netdata is showing as follows:

capture

Support GeForce GT 71

is this normal?

GPU-Util[                                                                             N/A]
MEM-Util[||||||||||||||||||||||||||||||||                                       0.8G/2.1G]
Encoder[                                N/A]
Decoder[                                N/A]
$ nvidia-smi -L
GPU 0: GeForce GT 710
==============NVSMI LOG==============
Driver Version                      : 410.57

error: unknown type names ‘nvmlDevice_t’, 'nvmlProcessInfo_t'

Following the instructions to build for Ubuntu 18.04.3 with (NVIDIA-SMI 440.26, Driver Version: 440.26), while running make, the build fails with errors:

... /nvtop/include/nvtop/extract_gpuinfo.h:76:3: error: unknown type name ‘nvmlDevice_t’
... /nvtop/include/nvtop/extract_gpuinfo.h:108:3: error: unknown type name ‘nvmlProcessInfo_t’

Potentially related information:

cmake reported:
CMake Warning (dev) at cmake/modules/FindNVML.cmake:45 (message):
Unable to find nvml api version

libnvidia-ml components are here:
$ ldconfig -p | grep nvidia-ml
libnvidia-ml.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1
libnvidia-ml.so.1 (libc6) => /usr/lib/i386-linux-gnu/libnvidia-ml.so.1
libnvidia-ml.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libnvidia-ml.so
libnvidia-ml.so (libc6) => /usr/lib/i386-linux-gnu/libnvidia-ml.so

switch quit to F10

I would very much appreciate it if you could end the application with F10. It would be the same as htop.

Show per-process utilization

As far as I understand, it's possible to get per-process utilization with nvmlDeviceGetProcessUtilization function. It'd be useful to have utilization together with memory usage per process.

Not getting graphs

Hey,

I'm running Fedora 25, followed the instructions, but getting the following. Unsure where I've gone wrong?

capture

Thanks!

Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)

Followed a previous post, but running
cmake -DCMAKE_LIBRARY_PATH="/lib/x86_64-linux-gnu/" ..
nor
cmake -DCMAKE_LIBRARY_ARCHITECTURE="x86_64-linux-gnu" ..
helped.

(building from source)
This is the output error and log file

t-dvginz@DGX-Station:~/repos/nvtop/build$ cmake -DCMAKE_LIBRARY_PATH="/lib/x86_64-linux-gnu/" ..
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindCurses.cmake:256 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:46 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/t-dvginz/repos/nvtop/build/CMakeFiles/CMakeOutput.log".
The system is: Linux - 4.15.0-39-generic - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/cc 
Build flags: 
Id flags:  

The output was:
0


Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"

The C compiler identification is GNU, found in "/home/XXX/repos/nvtop/build/CMakeFiles/3.10.2/CompilerIdC/a.out"

Determining if the C compiler works passed with the following output:
Change Dir: /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_a5be3/fast"
/usr/bin/make -f CMakeFiles/cmTC_a5be3.dir/build.make CMakeFiles/cmTC_a5be3.dir/build
make[1]: Entering directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_a5be3.dir/testCCompiler.c.o
/usr/bin/cc    -o CMakeFiles/cmTC_a5be3.dir/testCCompiler.c.o   -c /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp/testCCompiler.c
Linking C executable cmTC_a5be3
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a5be3.dir/link.txt --verbose=1
/usr/bin/cc      -rdynamic CMakeFiles/cmTC_a5be3.dir/testCCompiler.c.o  -o cmTC_a5be3 
make[1]: Leaving directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'


Detecting C compiler ABI info compiled with the following output:
Change Dir: /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_1e501/fast"
/usr/bin/make -f CMakeFiles/cmTC_1e501.dir/build.make CMakeFiles/cmTC_1e501.dir/build
make[1]: Entering directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o
/usr/bin/cc    -o CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c
Linking C executable cmTC_1e501
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1e501.dir/link.txt --verbose=1
/usr/bin/cc     -v -rdynamic CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o  -o cmTC_1e501 
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_1e501' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccssVplQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_1e501 /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o
COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_1e501' '-mtune=generic' '-march=x86-64'
make[1]: Leaving directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'


Parsed C implicit link information from above output:
  link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
  ignore line: [Change Dir: /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp]
  ignore line: []
  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_1e501/fast"]
  ignore line: [/usr/bin/make -f CMakeFiles/cmTC_1e501.dir/build.make CMakeFiles/cmTC_1e501.dir/build]
  ignore line: [make[1]: Entering directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp']
  ignore line: [Building C object CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o]
  ignore line: [/usr/bin/cc    -o CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o   -c /usr/share/cmake-3.10/Modules/CMakeCCompilerABI.c]
  ignore line: [Linking C executable cmTC_1e501]
  ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1e501.dir/link.txt --verbose=1]
  ignore line: [/usr/bin/cc     -v -rdynamic CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o  -o cmTC_1e501 ]
  ignore line: [Using built-in specs.]
  ignore line: [COLLECT_GCC=/usr/bin/cc]
  ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper]
  ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none]
  ignore line: [OFFLOAD_TARGET_DEFAULT=1]
  ignore line: [Target: x86_64-linux-gnu]
  ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
  ignore line: [Thread model: posix]
  ignore line: [gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) ]
  ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/]
  ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/7/../../../:/lib/:/usr/lib/]
  ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_1e501' '-mtune=generic' '-march=x86-64']
  link line: [ /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccssVplQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_1e501 /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o]
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/collect2] ==> ignore
    arg [-plugin] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so] ==> ignore
    arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper] ==> ignore
    arg [-plugin-opt=-fresolution=/tmp/ccssVplQ.res] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
    arg [-plugin-opt=-pass-through=-lc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
    arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
    arg [--sysroot=/] ==> ignore
    arg [--build-id] ==> ignore
    arg [--eh-frame-hdr] ==> ignore
    arg [-m] ==> ignore
    arg [elf_x86_64] ==> ignore
    arg [--hash-style=gnu] ==> ignore
    arg [--as-needed] ==> ignore
    arg [-export-dynamic] ==> ignore
    arg [-dynamic-linker] ==> ignore
    arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
    arg [-pie] ==> ignore
    arg [-znow] ==> ignore
    arg [-zrelro] ==> ignore
    arg [-o] ==> ignore
    arg [cmTC_1e501] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o] ==> ignore
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib]
    arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
    arg [-L/lib/../lib] ==> dir [/lib/../lib]
    arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
    arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
    arg [-L/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..]
    arg [CMakeFiles/cmTC_1e501.dir/CMakeCCompilerABI.c.o] ==> ignore
    arg [-lgcc] ==> lib [gcc]
    arg [--push-state] ==> ignore
    arg [--as-needed] ==> ignore
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [--pop-state] ==> ignore
    arg [-lc] ==> lib [c]
    arg [-lgcc] ==> lib [gcc]
    arg [--push-state] ==> ignore
    arg [--as-needed] ==> ignore
    arg [-lgcc_s] ==> lib [gcc_s]
    arg [--pop-state] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o] ==> ignore
    arg [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7] ==> [/usr/lib/gcc/x86_64-linux-gnu/7]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib] ==> [/usr/lib]
  collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
  collapse library dir [/lib/../lib] ==> [/lib]
  collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
  collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
  collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/7/../../..] ==> [/usr/lib]
  implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
  implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
  implicit fwks: []




Detecting C [-std=c11] compiler features compiled with the following output:
Change Dir: /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_a2368/fast"
/usr/bin/make -f CMakeFiles/cmTC_a2368.dir/build.make CMakeFiles/cmTC_a2368.dir/build
make[1]: Entering directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_a2368.dir/feature_tests.c.o
/usr/bin/cc   -std=c11 -o CMakeFiles/cmTC_a2368.dir/feature_tests.c.o   -c /home/XXX/repos/nvtop/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_a2368
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a2368.dir/link.txt --verbose=1
/usr/bin/cc      -rdynamic CMakeFiles/cmTC_a2368.dir/feature_tests.c.o  -o cmTC_a2368 
make[1]: Leaving directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'


    Feature record: C_FEATURE:1c_function_prototypes
    Feature record: C_FEATURE:1c_restrict
    Feature record: C_FEATURE:1c_static_assert
    Feature record: C_FEATURE:1c_variadic_macros


Detecting C [-std=c99] compiler features compiled with the following output:
Change Dir: /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_b779c/fast"
/usr/bin/make -f CMakeFiles/cmTC_b779c.dir/build.make CMakeFiles/cmTC_b779c.dir/build
make[1]: Entering directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_b779c.dir/feature_tests.c.o
/usr/bin/cc   -std=c99 -o CMakeFiles/cmTC_b779c.dir/feature_tests.c.o   -c /home/XXX/repos/nvtop/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_b779c
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b779c.dir/link.txt --verbose=1
/usr/bin/cc      -rdynamic CMakeFiles/cmTC_b779c.dir/feature_tests.c.o  -o cmTC_b779c 
make[1]: Leaving directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'


    Feature record: C_FEATURE:1c_function_prototypes
    Feature record: C_FEATURE:1c_restrict
    Feature record: C_FEATURE:0c_static_assert
    Feature record: C_FEATURE:1c_variadic_macros


Detecting C [-std=c90] compiler features compiled with the following output:
Change Dir: /home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/make" "cmTC_a7fb3/fast"
/usr/bin/make -f CMakeFiles/cmTC_a7fb3.dir/build.make CMakeFiles/cmTC_a7fb3.dir/build
make[1]: Entering directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_a7fb3.dir/feature_tests.c.o
/usr/bin/cc   -std=c90 -o CMakeFiles/cmTC_a7fb3.dir/feature_tests.c.o   -c /home/XXX/repos/nvtop/build/CMakeFiles/feature_tests.c
Linking C executable cmTC_a7fb3
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a7fb3.dir/link.txt --verbose=1
/usr/bin/cc      -rdynamic CMakeFiles/cmTC_a7fb3.dir/feature_tests.c.o  -o cmTC_a7fb3 
make[1]: Leaving directory '/home/XXX/repos/nvtop/build/CMakeFiles/CMakeTmp'


    Feature record: C_FEATURE:1c_function_prototypes
    Feature record: C_FEATURE:0c_restrict
    Feature record: C_FEATURE:0c_static_assert
    Feature record: C_FEATURE:0c_variadic_macros

Could NOT find NVML (missing: NVML_LIBRARIES) (found version "10")

Under the lastest Jetpack version 4.2.1 for embedded devices like Xavier or TX2 I'm seeing this issue when trying to cmake:

cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True

I get the error:

-- The C compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at /usr/local/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find NVML (missing: NVML_LIBRARIES) (found version "10")
Call Stack (most recent call first):
  /usr/local/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindNVML.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:31 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/nvidia/Documents/nvtop/build/CMakeFiles/CMakeOutput.log".

It seems it finds NVML and doesn't find it in the download part where you look for:

https://raw.githubusercontent.com/NVIDIA/nvidia-settings/master/src/nvml.h

Any insight is appreciated!

Bad plot with libncursesw5-dev installed

Running Ubuntu 16.04.5 LTS with Cuda compilation tools release 9.0 and the recommended ncurses libraries:

(base) ubuntu@ip-172-31-81-132:~/nvtop$ dpkg -l |grep libncurses
ii  libncurses5:amd64                      6.0+20160213-1ubuntu1                      amd64        shared libraries for terminal handling
ii  libncurses5-dev:amd64                  6.0+20160213-1ubuntu1                      amd64        developer's libraries for ncurses
ii  libncursesw5:amd64                     6.0+20160213-1ubuntu1                      amd64        shared libraries for terminal handling (wide character support)
ii  libncursesw5-dev:amd64                 6.0+20160213-1ubuntu1                      amd64        developer's libraries for ncursesw

Everything also seemed to build fine:

(base) ubuntu@ip-172-31-81-132:~$ mkdir -p nvtop/build && cd nvtop/build
(base) ubuntu@ip-172-31-81-132:~/nvtop/build$ cmake ..
-- The C compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Setting build type to 'Release' as none was specified.
-- Found NVML: /usr/local/cuda/include (found version "9")
-- Looking for cbreak in /home/ubuntu/anaconda3/lib/libncursesw.so
-- Looking for cbreak in /home/ubuntu/anaconda3/lib/libncursesw.so - not found
-- Found Curses: /home/ubuntu/anaconda3/lib/libncursesw.so
-- Performing Test compiler_has-Wall
-- Performing Test compiler_has-Wall - Success
-- Performing Test compiler_has-Wpedantic
-- Performing Test compiler_has-Wpedantic - Success
-- Performing Test compiler_has-Wextra
-- Performing Test compiler_has-Wextra - Success
-- Performing Test compiler_has-Waddress
-- Performing Test compiler_has-Waddress - Success
-- Performing Test compiler_has-Waggressive-loop-optimizations
-- Performing Test compiler_has-Waggressive-loop-optimizations - Success
-- Performing Test compiler_has-Wcast-qual
-- Performing Test compiler_has-Wcast-qual - Success
-- Performing Test compiler_has-Wcast-align
-- Performing Test compiler_has-Wcast-align - Success
-- Performing Test compiler_has-Wbad-function-cast
-- Performing Test compiler_has-Wbad-function-cast - Success
-- Performing Test compiler_has-Wmissing-declarations
-- Performing Test compiler_has-Wmissing-declarations - Success
-- Performing Test compiler_has-Wmissing-parameter-type
-- Performing Test compiler_has-Wmissing-parameter-type - Success
-- Performing Test compiler_has-Wmissing-prototypes
-- Performing Test compiler_has-Wmissing-prototypes - Success
-- Performing Test compiler_has-Wnested-externs
-- Performing Test compiler_has-Wnested-externs - Success
-- Performing Test compiler_has-Wold-style-declaration
-- Performing Test compiler_has-Wold-style-declaration - Success
-- Performing Test compiler_has-Wold-style-definition
-- Performing Test compiler_has-Wold-style-definition - Success
-- Performing Test compiler_has-Wstrict-prototypes
-- Performing Test compiler_has-Wstrict-prototypes - Success
-- Performing Test compiler_has-Wpointer-sign
-- Performing Test compiler_has-Wpointer-sign - Success
-- Performing Test compiler_has-Wdouble-promotion
-- Performing Test compiler_has-Wdouble-promotion - Success
-- Performing Test compiler_has-Wuninitialized
-- Performing Test compiler_has-Wuninitialized - Success
-- Performing Test compiler_has-Winit-self
-- Performing Test compiler_has-Winit-self - Success
-- Performing Test compiler_has-Wstrict-aliasing
-- Performing Test compiler_has-Wstrict-aliasing - Success
-- Performing Test compiler_has-Wsuggest-attribute-const
-- Performing Test compiler_has-Wsuggest-attribute-const - Success
-- Performing Test compiler_has-Wtrampolines
-- Performing Test compiler_has-Wtrampolines - Success
-- Performing Test compiler_has-Wfloat-equal
-- Performing Test compiler_has-Wfloat-equal - Success
-- Performing Test compiler_has-Wshadow
-- Performing Test compiler_has-Wshadow - Success
-- Performing Test compiler_has-Wunsafe-loop-optimizations
-- Performing Test compiler_has-Wunsafe-loop-optimizations - Success
-- Performing Test compiler_has-Wfloat-conversion
-- Performing Test compiler_has-Wfloat-conversion - Success
-- Performing Test compiler_has-Wlogical-op
-- Performing Test compiler_has-Wlogical-op - Success
-- Performing Test compiler_has-Wnormalized
-- Performing Test compiler_has-Wnormalized - Success
-- Performing Test compiler_has-Wdisabled-optimization
-- Performing Test compiler_has-Wdisabled-optimization - Success
-- Performing Test compiler_has-Whsa
-- Performing Test compiler_has-Whsa - Failed
-- Performing Test compiler_has-Wconversion
-- Performing Test compiler_has-Wconversion - Success
-- Performing Test compiler_has-Wunused-result
-- Performing Test compiler_has-Wunused-result - Success
-- Performing Test compiler_has-Werror-implicit-function-declaration
-- Performing Test compiler_has-Werror-implicit-function-declaration - Success
-- Performing Test linker_has-Wl_-z_relro
-- Performing Test linker_has-Wl_-z_relro - Success
-- Performing Test sanitizer-address-available
-- Performing Test sanitizer-address-available - Success
-- Performing Test sanitizer-undefined-available
-- Performing Test sanitizer-undefined-available - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/nvtop/build
(base) ubuntu@ip-172-31-81-132:~/nvtop/build$ make
Scanning dependencies of target nvtop
[ 12%] Building C object src/CMakeFiles/nvtop.dir/nvtop.c.o
[ 25%] Building C object src/CMakeFiles/nvtop.dir/interface.c.o
[ 37%] Building C object src/CMakeFiles/nvtop.dir/interface_layout_selection.c.o
[ 50%] Building C object src/CMakeFiles/nvtop.dir/get_process_info_linux.c.o
[ 62%] Building C object src/CMakeFiles/nvtop.dir/extract_gpuinfo.c.o
[ 75%] Building C object src/CMakeFiles/nvtop.dir/time.c.o
[ 87%] Building C object src/CMakeFiles/nvtop.dir/plot.c.o
[100%] Linking C executable nvtop
[100%] Built target nvtop
(base) ubuntu@ip-172-31-81-132:~/nvtop/build$ sudo make install
[100%] Built target nvtop
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/share/man/man1/nvtop.1
-- Installing: /usr/local/bin/nvtop
-- Set runtime path of "/usr/local/bin/nvtop" to "/usr/local/lib:/home/ubuntu/anaconda3/lib"

In there I see -- Looking for cbreak in /home/ubuntu/anaconda3/lib/libncursesw.so - not found and then -- Found Curses: /home/ubuntu/anaconda3/lib/libncursesw.so, which seems odd, but I'm assuming that worked. There is, of course, also this: -- Performing Test compiler_has-Whsa - Failed.

Anyway, like #36 the plot is a bunch of characters.

Following that thread, this is what ldd and echo $TERM return:

(base) ubuntu@ip-172-31-81-132:~/nvtop$ ldd build/src/nvtop
        linux-vdso.so.1 =>  (0x00007fff74739000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdbf5ce6000)
        libnvidia-ml.so.1 => /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 (0x00007fdbf56d7000)
        libncursesw.so.6 => /home/ubuntu/anaconda3/lib/libncursesw.so.6 (0x00007fdbf549e000)
        libtinfow.so.6 => /home/ubuntu/anaconda3/lib/libtinfow.so.6 (0x00007fdbf5263000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdbf4e99000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fdbf5fef000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdbf4c7c000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdbf4a78000)
(base) ubuntu@ip-172-31-81-132:~/nvtop$ echo $TERM
xterm

I saw at the bottom of #36 that "the problem lies in the TERM variable being ansi," but my TERM variable is xterm, which is what I think it's supposed to be.

Any suggestions? Thank you.

functional enhancement

Would it still be possible to have the consumed watts drawn in the diagram?
Thank you

nvtop not found in Debian Buster repositories

I am using "Debian GNU/Linux 10 (buster) x86_64" and have activated the non-free repos in sources.list.
When trying to install nvtop, I get the following output:

svdhero@box:~$ sudo apt install nvtop
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package nvtop

The README.md states that nvtop should be in the Debian repos. What's wrong here?

CPU usage calculation wrong

Hi, i use nvtop 1.0.0 on Ubuntu 18.04.03 and Nvidia 440.33.01.
While Rendering on the GPU with Blender 2.82 i found this gpu usage of 991%
nvtop

CPU is a Ryzen 5 2600x

Plot is bad on ubuntu 18.04

Installed on ubuntu 18.04 with CUDA 10.1 and the recommended ncurses libraries:

dpkg -l |grep libncurses
ii  libncurses5:amd64                     6.1-1ubuntu1.18.04                          amd64        shared libraries for terminal handling
ii  libncurses5-dev:amd64                 6.1-1ubuntu1.18.04                          amd64        developer's libraries for ncurses
ii  libncursesw5:amd64                    6.1-1ubuntu1.18.04                          amd64        shared libraries for terminal handling (wide character support)
ii  libncursesw5-dev:amd64                6.1-1ubuntu1.18.04                          amd64        developer's libraries for ncursesw

The plot looks bad:

 GPU 135MHz  MEM 877MHz  TEMP  37øC FAN N/A% POW  24 / 250 W
 GPU[                               0%] MEM[                      0.0G/16.9G]
   ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
100³                                                                               GPU 0³
   ³                                                                                 MEM³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
75%³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
50%³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
25%³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
   ³                                                                                    ³
 0%³ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄij
   ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
  PID USER GPU    TYPE       GPU MEM    CPU  HOST MEM Command

The build warned with:

make
[ 12%] Building C object src/CMakeFiles/nvtop.dir/nvtop.c.o
[ 25%] Building C object src/CMakeFiles/nvtop.dir/interface.c.o
/tmp/nvtop-master/src/interface.c: In function ‘draw_gpu_info_ncurses’:
/tmp/nvtop-master/src/interface.c:1221:26: warning: ‘%6llu’ directive output may be truncated writing between 6 and 14 bytes into a region of size 9 [-Wformat-truncation=]
     snprintf(memory, 9, "%6lluMB", proc[i].used_memory / 1048576);
                          ^~~~~
/tmp/nvtop-master/src/interface.c:1221:25: note: directive argument in the range [0, 17592186044415]
     snprintf(memory, 9, "%6lluMB", proc[i].used_memory / 1048576);
                         ^~~~~~~~~
In file included from /usr/include/stdio.h:862:0,
                 from /usr/include/curses.h:183,
                 from /tmp/nvtop-master/include/nvtop/plot.h:25,
                 from /tmp/nvtop-master/src/interface.c:24:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:64:10: note: ‘__builtin___snprintf_chk’ output between 9 and 17 bytes into a destination of size 9
   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        __bos (__s), __fmt, __va_arg_pack ());
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 37%] Building C object src/CMakeFiles/nvtop.dir/interface_layout_selection.c.o
[ 50%] Building C object src/CMakeFiles/nvtop.dir/get_process_info_linux.c.o
[ 62%] Building C object src/CMakeFiles/nvtop.dir/extract_gpuinfo.c.o
[ 75%] Building C object src/CMakeFiles/nvtop.dir/time.c.o
[ 87%] Building C object src/CMakeFiles/nvtop.dir/plot.c.o
[100%] Linking C executable nvtop
[100%] Built target nvtop

Not issue but feature question

I've found option to select or ignore some GPUs, but the bar-plot still draws two main GPUs charts on one plot.

I've 3 GPUs - 1 710 (device 0) to connect to monitor and draw X-server and two more 1080ti (devices 1 and 2) for DS calculation.
With default "htop" run - we have two plots - one for both 1080ti on one chart and one for not needed 710.
When i run "htop -i 0" it selects right GPUs but still draws only one plot with both 1080ti on it.

Is it possible to have two separate graphs for GPU 1 and GPU 2?

Thanks!

Error with cmake

cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find NVML (missing: NVML_LIBRARIES) (found version "8")
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
cmake/modules/FindNVML.cmake:52 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:30 (find_package)

-- Configuring incomplete, errors occurred!

I installed it on AWS without any problem. When I try installing it on server with docker I am using, I got that error.

Add an option to ignore mem and show only GPU

It would be great if there was an option to run nvtop without showing the MEM - showing only the GPU. MEM is usually constant and the lines in the graphs are only disturbing the viewing of the GPU lines
Thanks

Cuda 9 Support

Thanks for this amazing work. I'm using this tool on a lot of Systems.
With Cuda 9 Installed on Ubuntu 16.04 I get the following problem:

-- The C compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- No building type advertised, default to Release
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find NVML (missing: NVML_LIBRARIES) (found version "9")
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindNVML.cmake:47 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:26 (find_package)
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.81                 Driver Version: 384.81                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN X (Pascal)    Off  | 00000000:82:00.0 Off |                  N/A |
| 23%   32C    P8    17W / 250W |    170MiB / 12188MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1772      G   /usr/lib/xorg/Xorg                             6MiB |
|    0     18965      C   python                                       153MiB |
+-----------------------------------------------------------------------------+

Do you know how I can run nvtop with Cuda 9?

Cannot find Curses (Debian 9.7, Google Deep Learning VM image)

I am using the common-cu100 image of:
https://cloud.google.com/deep-learning-vm/docs/images

which is:

lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 9.7 (stretch)
Release:	9.7
Codename:	stretch

In order to find the NVLM libraries I need to use:

cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True -DNVML_LIBRARIES="/usr/lib/x86_64-linux-gnu/"

However, it still fails to find ncurses.

cmake .. -DNVML_RETRIEVE_HEADER_ONLINE=True -DNVML_LIBRARIES="/usr/lib/x86_64-linux-gnu/"
-- The C compiler identification is GNU 7.3.0
-- Check for working C compiler: /home/sp/miniconda3/envs/py3env/bin/x86_64-conda_cos6-linux-gnu-cc
-- Check for working C compiler: /home/sp/miniconda3/envs/py3env/bin/x86_64-conda_cos6-linux-gnu-cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Setting build type to 'Release' as none was specified.
-- Found NVML: /usr/local/cuda-10.0/include (found version "10")
CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find Curses (missing: CURSES_LIBRARY)
Call Stack (most recent call first):
  /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindCurses.cmake:248 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:46 (find_package)

which are correctly installed:

 dpkg -l |grep libncurses
ii  libncurses5:amd64                     6.0+20161126-1+deb9u2          amd64        shared libraries for terminal handling
ii  libncurses5-dev:amd64                 6.0+20161126-1+deb9u2          amd64        developer's libraries for ncurses
ii  libncursesw5:amd64                    6.0+20161126-1+deb9u2          amd64        shared libraries for terminal handling (wide character support)
ii  libncursesw5-dev:amd64                6.0+20161126-1+deb9u2          amd64        developer's libraries for ncursesw
ls /usr/include/ncurses.h
/usr/include/ncurses.h
sudo ldconfig -p | grep curses
	libncursesw.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncursesw.so.5
	libncurses.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncurses.so.5

What exact command line flags should I pass to cmake to make it compile?
Thank you!

undefined symbol: nvmlDeviceGetPcieThroughput

I just installed new Nvidia driver 340 on my machine and downloaded nvtop from the repo. Installed it and after trying to run the nvtop command it gives out the following error message:
nvtop: symbol lookup error: nvtop: undefined symbol: nvmlDeviceGetPcieThroughput
Tried to google, but didn't find any relevant answers that I can understand. Can anyone help me with this error?

Specs:
OS: Ubuntu 16.04 LTS
GPU: Quadro K1000M/PCIe/SSE2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.