Hacker News new | past | comments | ask | show | jobs | submit login
Nvtop: Nvidia GPU htop-like monitoring tool (github.com/syllo)
150 points by jonbaer on Oct 8, 2018 | hide | past | favorite | 20 comments

This is great, I'll be using this instead of "watch nvidia-smi" now.

What exactly is "Mo" in the memory column?

  PID    USER  GPU    TYPE           MEM Command
  2324 ubuntu   0 Graphic       1Mo 0.1% /usr/bin/krunner
  2320 ubuntu   0 Graphic      48Mo 2.3% kwin_x11
  2980 ubuntu   0 Graphic      61Mo 2.9% /usr/share/spotify/spotify --type=gpu-process --no-sandbox --lo
  2326 ubuntu   0 Graphic      85Mo 4.1% /usr/bin/plasmashell
  1526   root   0 Graphic     211Mo 10.1% /usr/lib/xorg/Xorg

I think it's the French version of MB

MO or Mo = Mega Octet (French) MB = Mega Byte (English)

> The byte is a unit of digital information that __most commonly__ consists of eight bits, representing a binary number.

> The octet is a unit of digital information in computing and telecommunications that consists of eight bits.

French has nothing to it.

>In France, French Canada and Romania, octet is used in common language instead of byte when the 8-bit sense is required, for example, a megabyte (MB) is termed a megaoctet (Mo).

taken from https://en.wikipedia.org/wiki/Octet_(computing)

French has everything to do with it. it got grandfathered into their system from previous notations while the rest of the world uses megabyte for memory as a matter of practice

this is correct. i'm a romanian and both schools and government use the octet. on the other hand private enterprise has long used the bit/byte and "octet" is nowadays mostly confusing people. but it goes a bit deeper than that and it's mostly due to french influences: language is considered at the heart of national identity [0]. this has been detrimental to developing a modern language. one of the effects is actually the slow death of languages that can't adapt to their surroundings. instead we get english words translated in a crude manner to romanian or french. words that no one uses as the english/american versions are not only more popular, but also much more flexible. the french (romanians and others) are highly protective of their language, which is why they're losing the language battles.

[0] https://www.theguardian.com/commentisfree/2013/may/23/langua...

Yes, but Mo is more technically correct where "byte = 8 bits" is merely "de facto" correct. There were (likely still are) designs with bytes of 6, 7, 9 and other numbers of bits, where octet an is always 8 bits.

Then again if we cared for "technically correct" as much as we claim to when correcting other people, we'd use KiB/MiB/... instead of MB/KB/... when working in 1024s not 1000s!

My understanding of byte is that it is defined as "the smallest unit other than a single bit that a processing unit naturally deals with". Similarly "word" is the largest value the instruction set natively deals with (i.e. the architecture's register size).

Obviously these definitions are only general and are "broken" by many exceptions: for instance many CISC designs with 8-bit bytes have some instructions that work on data in 4-bit chunks (nibbles/nybbles), multiply instructions need to output twice the input size to be efficiently useful, and so on. Also "word" has in some places become synonymous with 32-bits rather than its more general definition, in much the same way "byte" became so with 8-bits.

I expect it has, given the repository owner studies in France and is likely using French locale.

Just a fancier/exactier way of referring to MB (mega byte) as an Mo (mega octet), since on more exotic systems a byte can have a different number of bits that 8 (there are/were 7-bit-byte or 6-bit-byte systems...), while octet always means 8.

...if a programmer uses Mo, they are surely 100% French!

(All the other countries that have Mo on their language only have it used by non-IT people, programmers would always use MB. The word octet is in the English language too btw, https://en.wikipedia.org/wiki/Octet_(computing) , but obviously nobody uses it, it's just too French :P)

I do like that it supports multiple gpus. I usually have tmux session up with my training progress (and keras callbacks) on one spit and the other side dedicated to htop/watch -n 0.5 nvidia-smi. Looks like I’ll give it a run this week when I’m running models.

For a programmatic view we use https://github.com/jolibrain/gpustat_server

I love that it shows memory bandwidth and also what generation/speed of PCIe slot is being used.

there's something similiar for AMD GPUs: https://github.com/clbr/radeontop

but it does not tell which processes use the GPU

Does something similar exist for Windows (10) to debug graphics card issues?

It’s not quite the same, but windows 10 shows some basic gpu utilisation in task manager next to each processes, and some graphs in the next tab (where cpu, memory etc are - there’s a new tab for GPU)

Sysinternals Process Explorer also has this, and can show you per-'engine' gpu utilization, where engines represent things like shader cores, hardware video encoding cores, etc

Right now I am using MSI afterburner with its detached hardware monitor, which gives you some nice graphs of several aspects of the GPU.

Yeah, I really like that one, it can produce nice dense graphs that display a lot of history at once. It even shows stats about the CPU cores as well.

An awesome looking tool, however I'm a little wary of building software for an expensive multi-gpu server that isn't fully vetted. Seems like a ripe target for cryptojacking. On that note, people should probably avoid pre-built binaries of this for that reason.

sudo apt-get install nvtop E: Unable to locate package nvtop

otherwise great tool!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact