Loading...

Moneo: Distributed GPU System Monitoring for AI Workflows

Moneo: Distributed GPU System Monitoring for AI Workflows

Microsoft has introduced a new open-source GPU monitoring framework named Moneo (Latin for monitor). Moneo orchestrates metric collection (DCGMI + Prometheus DB) and visualization (Grafana) across multi-GPU/node systems.  This provides useful insights into workflow and system level characterization.

 

GPUs are optimized for high throughput, massively parallel, workloads. Efficient use of GPUs is dependent on a few factors such as workload characteristics, system characteristics, and sometimes physical environment.  GPU system level monitoring determines GPU utilization and facilitates workload characterization.  This aids in exploring how to utilize the GPU more efficiently.

 

Monitoring GPU metrics on a single system over a period may be trivial. However, formatting and analyzing the raw metric data so that it can provide intuitive insights can prove to be a tedious task. Our goal is to pair system level characterization with application metrics to determine the efficiency of our use of the GPUs.

 

Given that there is already some complexity with collecting and analyzing GPU metrics on a single system, unsurprisingly, scaling the same methodology for multiple systems is difficult.

 

For certain deep learning models use of distributed multi-GPU systems is the only feasible way to train in a reasonable time frame. Much of the application complexity is abstracted away by high level AI frameworks, but there are still configurations and design choices that users must make that ultimately affect the throughput and behavior of model training. 

 

Moneo’s usefulness in providing system level insights can help guide design choices to achieve the efficient use of GPU systems.

 

Moneo Design

Rafael_Salas_0-1655752144081.png

Figure 1: Design

Three categories of metrics that Moneo monitors:

  1. Device Counters
    1. Compute/Memory Utilization
    2. Streaming multiprocessor (SM) and Memory Clock frequency
    3. Temperature
    4. Power
    5. ECC Counts
  2. Profiling Counters
    1. SM Activity
    2. Memory Dram Activity
    3. NVLink Activity
    4. PCIE Rate
  3. InfiniBand Network Counters
    1. IB TX/RX rate

Once Moneo has been launched these metrics can be viewed from the Grafana portal. See figures 2,3,4 for snapshots of the different metric views.

Rafael_Salas_1-1655752346436.png

Figure 2: Device Counter View

 

Rafael_Salas_2-1655752354193.png

Figure 3: Profiling Counter View

 

Rafael_Salas_2-1655754097583.png

Figure 4: IB Counter View

 

 

Getting Started

Starting with Moneo is easy. Just clone the latest release from the Moneo Repo and follow the README for detailed setup instructions or take a look at the quick start guide.  In a short period, you should be able to launch Moneo with a single command and log into the Grafana portal to start seeing results!

 

Moneo is also available on Azure HPC + AI Ubuntu images.  Just navigate to “/opt/azurehpc/tools/Moneo”. The image has all the required dependencies installed. So, all that’s necessary is configuring and deploying Moneo.

 

Quick start instructions:

  1. Clone Moneo from Github and install ansible.
    1. git clone https://github.com/Azure/Moneo.git
    2. cd Moneo
    3. python3 -m pip install ansible
  1. Next create a host.ini config file.

    Rafael_Salas_4-1655752618982.png

    • Note: The master node can also be a worker node as well. The master node will have the Grafana and Prometheus docker containers deployed to it.

    • Note: If you have configured password less SSH already, [all:vars] section can be skipped.

    • Note: The master node must be able to ssh into itself. 

  2. Now deploy Moneo
    • ansible-playbook -i host.ini src/ansible/deploy.yaml
  3. Log into the portal by navigating to http://master-ip-or-domain:3000 and inputting your credentials
    • Rafael_Salas_5-1655752797433.png
    • Note: By default, username/password are set to "azure". This can be changed here "src/master/grafana/grafana.env"
  4. Navigating Moneo Grafana Portal
    1. The current view is labeled in the top left corner:
      • Rafael_Salas_6-1655753066606.png

         

    2. VM instance and GPU can be selected from the drop-down menus in the top left corner:
      • Rafael_Salas_7-1655753080675.png

         

    3. Various actions such as dashboard selection or data source configuration can be achieved using the left screen menu:Rafael_Salas_12-1655753496902.png

       

    4. Metric groups are collapsible:

Rafael_Salas_10-1655753451422.png

 

 

 

 

 

 

 

Published on:

Learn more
Azure Compute Blog articles
Azure Compute Blog articles

Azure Compute Blog articles

Share post:

Related posts

Convert CSV files to JSON in Power Automate

How do you convert CSV files to JSON? When you have data in CSV format and you want to use this within Power Automate, there used to be a lot...

1 day ago

3 reasons to use the new designer in Power Automate

Hardly ever, I've seen a software change take so long for people to accept. How long will it be before developers just get on with as the new ...

2 days ago

Power Automate – View property value expanded inline in the new cloud flow designer

We are announcing the ability to view property value expanded inline in the new cloud flow designer in Power Automate. This feature will reach...

3 days ago

Substring vs Slice in Power Automate

Power Automate has quite a few string functions that can help you sort out textual issue. Two of these functions are Substring and Slice. Do y...

6 days ago

Power Automate – Debug easily into condition actions at runtime

We are announcing the ability to debug condition actions by displaying values passed into the dynamic content and expressions at runtime in Po...

6 days ago

Run a generative action in Power Automate

Recently the Run a generative action was added to Power Automate. To make this action work is not as easy as you might hope.

7 days ago

Send community news by email using Power Automate

Yesterday on Reddit I was asked about how to collect and send community news articles from websites using Power Automate so that news letters ...

7 days ago

4 ways to filter data in Power Automate

Yesterday, I looked at how to filter data when making an API call using the HTTP action and noticed that filtering data isn't always straight ...

9 days ago

Segments in Customer Insights - Journeys: Bulk delete with Power Automate

Currently its not possible to delete segments more than one at a time from the view in Dynamics 365 Customer Insights - Journeys. Why? I don’...

14 days ago

Organise UI Elements in Power Automate Desktop

In recent months, I have begun using Power Automate Desktop for automated testing within Power Apps. In this post I will have a look at how w...

15 days ago
Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy