GPU утилизация: что это такое и как она работает
GPU utilization (графический процессор расходования) — это показатель того, насколько полностью графический процессор используется во время выполнения графических задач. GPU utilization является важным инструментом для оптимизации работы графических приложений и обеспечения максимальной производительности.
Как правило, GPU utilization измеряется в процентах и показывает, сколько времени графический процессор выполняет полезную работу по обработке графики, а не простаивает. Высокий уровень GPU utilization говорит о том, что графический процессор работает на максимальной производительности, что может быть полезно для игр, видеоредактирования, машинного обучения и других графически интенсивных задач.
Чтобы эффективно использовать GPU utilization, необходимо учитывать особенности вашей системы и приложений. Важно выбрать подходящую графическую карту и драйверы, чтобы обеспечить максимальную совместимость и производительность. Также рекомендуется оптимизировать настройки вашего приложения и использовать соответствующие инструменты, такие как CUDA, OpenCL или Vulkan, чтобы раскрыть потенциал вашего графического процессора.
Что такое использование графического процессора и как его применять
Использование графического процессора (GPU utilization) — это процентное отношение времени, которое графический процессор проводит на выполнение вычислений, к общему времени его работы.
Графический процессор (GPU) является основным компонентом графической карты, который отвечает за обработку и генерацию графики. Он специализирован для выполнения параллельных вычислений и может эффективно выполнять большое количество задач одновременно.
Использование графического процессора может быть полезно в различных областях:
- Игровая индустрия: в играх графический процессор отвечает за отрисовку 3D графики и обеспечение плавной анимации. Увеличение использования графического процессора может улучшить качество графики и производительность игры.
- Научные исследования: графические процессоры часто используются для выполнения сложных вычислений в таких областях, как моделирование климата, искусственный интеллект и обработка больших данных. Это позволяет ускорить процесс и получить результаты быстрее.
- Компьютерное зрение и обработка изображений: графический процессор используется для обработки изображений, распознавания образов и сжатия данных. Это позволяет улучшить качество изображений и ускорить обработку.
Для эффективного использования графического процессора необходимо учитывать следующие моменты:
- Оптимизация кода: использование параллельных алгоритмов и оптимизированного кода позволит увеличить использование графического процессора. Например, можно разделить задачи на несколько независимых потоков выполнения, которые будут выполняться параллельно.
- Управление ресурсами: следует правильно управлять ресурсами графического процессора, чтобы избежать утечек памяти и других проблем. Неиспользуемые ресурсы следует освобождать, а необходимые использовать эффективно.
- Мониторинг использования: регулярное мониторинг использования графического процессора позволяет оптимизировать работу и обнаружить возможные узкие места в процессе вычислений. Это может быть полезно при разработке программ, требующих использования графического процессора.
В итоге, использование графического процессора позволяет увеличить производительность в различных областях и получить более качественные результаты в работе с графикой и вычислениями.
Понятие Gpu utilization и его роль в работе графической карты
Gpu utilization (GPU использование) является одним из ключевых параметров, характеризующих работу графической карты. Он описывает процент времени, в течение которого графический процессор был активен и выполнял вычислительные задачи.
Gpu utilization играет важную роль в определении производительности графической карты и ее способности обрабатывать требовательные графические задачи. Чем выше уровень Gpu utilization, тем эффективнее используются вычислительные ресурсы графического процессора.
Повышение Gpu utilization может быть результатом оптимизации программного обеспечения или аппаратной конфигурации. Это может быть достигнуто путем улучшения параллельной обработки данных, оптимизации алгоритмов или увеличения тактовой частоты графического процессора.
Высокий уровень Gpu utilization особенно важен при выполнении требовательных графических задач, таких как 3D-моделирование, обработка видео или игры с высоким разрешением. Низкий уровень Gpu utilization может указывать на неэффективное использование графической карты или ее ограничения по производительности.
Для контроля и мониторинга Gpu utilization разработаны различные программные инструменты, которые позволяют отслеживать и анализировать загрузку графической карты. Эти инструменты позволяют определить, насколько эффективно используется графический процессор и помогают оптимизировать работу графической карты для достижения максимальной производительности.
Таким образом, Gpu utilization играет важную роль в работе графической карты, определяя ее способность обрабатывать требовательные графические задачи и влияя на ее производительность. Оптимальное использование ресурсов графического процессора позволяет достичь максимальной производительности и качества графики.
Understanding NVIDIA GPU Performance: Utilization vs. Saturation (2023)
GPU performance metrics reported by tools like nvidia-smi may be misleading. This blog delves into the underlying issue to provide a deeper understanding.
1 NVIDIA «GPU util» : a confusing phenomenon
Even when there is only a single task that is running on a small portion of a GPU, the «GPU util» metric reported by tools such as nvidia-smi or other nvml-based tools may indicate that the device is fully occupied, which is rather confusing for users.
To provide a clearer understanding, consider the example from the NVIDIA developer forum:
This code snippet will launch a specified kernel (thread) on a single Streaming Multiprocessor (SM). Based on conventional understanding, the “utilization” of the GPU should be calculated as 1 / num_sm * 100% . For instance:
- If there are 10 SMs on the GPU, the “GPU utilization” should be 10%.
- If there are 20 SMs on the GPU, the “GPU utilization” should be 5%.
However, it has been observed that nvidia-smi may report a «GPU-Util» of 100%, as demonstrated in the following example output:
What’s the problem? Let’s find the answer.
2 GPU Util : a misleading term?
We first do some searches to gain a better understanding.
2.1 Definition from official documentation
The nvidia-smi command line tool is based on the NVIDIA Management Library (NVML), which unfortunately is not open-sourced. To find some clarifications, we refer to the official NVML documentation. According to the documentation,
GPU utilization: Current utilization rates are reported for both the compute resources of the GPU and the memory interface.
This information does not provide the desired clarity. So, move on.
2.2 Exploring the code
Although the NVML library itself is not open-sourced, we discovered that there are open-source language bindings available for it. This means that we can at least access the structure and field definitions , typically provided in a C/C++ header file. Here we choose the gonvml project, which provides a Golang binding for NVML. Here is an excerpt from the NVML header file that defines the terms «GPU Util» and “Memory Util”:
With the comments above, we get the answer.
2.3 Explanation
According to the definition provided by NVML, “utilization” refers to the percentage of time that certain activities occurred during the past sample period . Specifically:
- GPU utilization: This represents the percentage of time during which one or more kernels were executing on the GPU.
- Memory utilization: This represents the percentage of time during which global (device) memory was being read from or written to.
In other words, the concept of “utilization” defined by NVML may not align with our common understanding . It solely measures the portion of time that the device is being used within the given sampling period, without considering the number of streaming multiprocessors (SMs) being utilized during that time. Typically, we perceive “utilization” as the portion of GPU processors being used.
I’m not sure why NVIDIA’s defines “utilization” in this unconventional way. But, it may be related to the “utilization” definition within the “USE” (Utilization/Saturation/Error) methodology.
2.4 The “USE” methodology
If you are familiar with the book “Systems Performance: Enterprise and the Cloud”, you may recall the “USE” methodology introduced by Brendan Gregg. This methodology focuses on three key metrics: Utilization, Saturation, and Errors. According to the “USE” blog, the terminology definitions are as follows:
- utilization: the average time that the resource was busy servicing work [2]
- saturation: the degree to which the resource has extra work which it can’t service, often queued
- errors: the count of error events
The “USE” methodology provides an extra explanation for “utilization”:
There is another definition where utilization describes the proportion of a resource that is used , and so 100% utilization means no more work can be accepted, unlike with the «busy» definition above .
In summary, within the “USE” methodology, “utilization” refers to the portion of time a resource is actively serving or working, without considering the allocated capacity . For the latter, the term “saturation” is used. While the “USE” methodology offers valuable insights into resource usage evaluation, redefining a well-established term like “utilization” can lead to confusion. Many people still prefer the concept of “utilization” representing capacity usage or saturation.
If necessary, an alternative term to replace “utilization” could be «used-frequency» , indicating how frequently the device is being utilized .
2.5 Two metric sources: NVML / DCGM
In most cases, the metrics that we are primarily concerned with are related to “saturation”. So, where can we find these GPU metrics?
There are two popular methods for collecting GPU performance metrics:
Using command line tools such as nvidia-smi , which can output data in formats like pretty-print and xml .
- This tool is based on NVML (NVIDIA Management Library) internally.
- It collects high-level metrics such as GPU and memory “utilization” (used-frequency), device temperature, power usage, etc.
Using services like dcgm-exporter , which can output data in Prometheus format.
- This service is based on DCGM (Data Center GPU Management) internally.
- In addition to high-level metrics, it can also perform profiling and collect detailed saturation data about the GPU devices.
Below are two collections of dashboards that show the metrics collected from nvidia-smi and dcgm-exporter :

Metrics from nvidia-smi
Note that GPU util is 100%. Below are the metrics collected from dcgm-exporter :

Metrics from dcgm-exporter
We can see that SM occupancy is very low ( <20% ), and floating point operations (FP32/FP16/TensorCore) also stays in a very low percent, indicating that the GPU is not saturated.
3 Conclusion and general advice
3.1 “Utilization” vs. saturation
Not sure if the NVML designer intentionally adopted the “USE” methodology mentioned above, but it seems that its definition of “utilization” (including GPU and memory utilization) aligns with the “USE” standard. The reported “utilization” simply indicates the frequency (in percentage of time) at which the device is being used, without considering the amount of capacity being utilized.
3.2 General advice: prioritizing saturation metrics
While nvidia-smi is a commonly used and convenient tool, it is not the optimal choice for performance measurements. For GPU applications in real deployment, it is recommended to utilize metrics based on DCGM, such as those provided by dcgm-exporter .
Furthermore, paying closer attention to saturation metrics can be beneficial. These metrics include FP64/FP32/FP16 activation, tensor core activation percentage, NVLINK bandwidth, GPU memory bandwidth percentage, and more.

Metrics from dcgm-exporter
© 2016-2023 Arthur Chiao, Powered by Jekyll , Theme originated from Long Haul. Site visits: , powered by busuanzi
Machine learning in the cloud,
without having to switch tools
Your All-In-One Solution for Data Science & ML Development, Deployment, and Data Pipelines in the Cloud.
«Saturn Cloud solves the problem of managing and scaling complex infrastructure required for data science and machine learning.»
Daniel Burkhardt
Machine Learning for Single Cell Analysis
Cellarity
Streamlining my Data Science Workflow
Saturn Cloud makes my work so much easier. When I sit down at the beginning of the day, I just want my environment to work. I want my favorite packages installed and available on demand. I want it to be easy to scale my workspace and have it shut down automatically when I’m done. Saturn Cloud solves all of that.
Maciej Bukczynski
Technology Director
Darkhorse Analytics
Scalable notebooks in my own AWS environment
Saturn makes it easy for our analysts to spin up Jupyter servers of any type on demand. The flexibility in being able to define custom docker images, startup scripts, etc. is phenomenal.
Walter Cavinaw
Large-Scale Data Science For a Small Team
Saturn provides a scalable data science infrastructure. Their environment is better than what I had access to before. We can spin up clusters and resources at the click of a button.
Jorge Arrese Rodriguez
Embracing Saturn Cloud’s Seamless and Efficient Platform
I have been using Saturn Cloud for several months now, and I have to say, I’m impressed with how simple and efficient it is. I highly recommend it to anyone looking for a reliable and versatile cloud service for their development, deployment, and data pipeline needs.
Matt Dancho
The Fastest Way to Get up and Running in the Cloud
It’s fast and easy to get set up and use any size of compute, big or small, CPU or GPU. As an advanced data science educator, I need access to quality tools to solve large-scale business problems. Saturn gives me that on demand.
Verified User in Higher Education
A Truly Portable Data Science Package
Saturn Cloud surely knows what exactly practitioners need when it comes to renting data science in cloud service.
Enzo Cording
Very Helpful support, Easy to Use, Transparent Prices, and Great Compute Resources
I love that you can build your own images, spin up pcs of your own configuration. Additionally, the platform is amazingly easy to use. The support answers quickly — I had my problems solved within 1-2 hours always.
Philippe Jaradin
Used to Run RStudio in Our Studies
To be able to use your virtual machine everywhere allows you to always have your projects at hand.
What data teams are saying
Solutions Rated #1 in Data Science & ML
Overall G2 Score
Ease of Use and Quality of Support
Simplifying Cloud Services for Python, R, Deployment, and Job Resources
Simplified Workflow
Streamline your journey from development to deployment with Saturn Cloud’s transparent and easy-to-use resources.
IDE Integration & Persistent Storage
Benefit from seamless integration with popular IDEs and persistent storage making sure your work continuity across restarts
Versatile Resources
Enjoy tailored Python and R servers, deployments, and jobs designed for optimal control over your specific cloud tasks
Effortless Workflow Conversion
Convert workflows easily with attachments like Git repositories, Dask clusters, and shared folders that can be added to any resource.
Run analyses, train models, deploy APIs, and more.
Voted the #1 data science and machine learning platform, Saturn Cloud takes pride in delivering tailored solutions, fostering team collaboration, and providing powerful computing capabilities for streamlined MLOps, efficient development, and deployment.
- Unparalleled compatibility
- Automated
efficiency - scalability simplified
- collaborative excellence
- MLOps empowered
Just Like your laptop. But with 4 TB of RAM.
Utilize your existing IDEs, packages, Git repositories, and data without the need for rewrites or ports. With built-in SSH connection, access tools like PyCharm and VS Code effortlessly. Customize images to your preference and run your Docker images anywhere with Saturn Cloud.
Software development best practices.
Everything that can be done in the UI can be done from our API. Saturn Cloud recipes are a declarative representation of Saturn Cloud resources that can be used as infrastructure as code. Deploy this from your CI/CD so you can automate Docker image builds, model deployment, and pipelines.
Scaling doesn’t have to be hard.
Developing on Saturn Cloud is as easy as developing on your laptop. Except your laptop doesn’t have 8 GPUs or 4 TB of RAM. Dask makes running parallel experiments super easy. Errors are raised in the notebook, and failures are easy to retry or rerun locally. saturn-run let’s you leverage the power of Dask straight from the command line.
Designed for teams.
Saturn Cloud lets you collaborate and share resources among a team, snapshot resource settings for future reproducible work, and create dashboards and APIs that external teams can use.
An integral part of your MLOps lifecycle.
Saturn cloud workspaces give the data scientist access to tremendous amount of computing power to accelerate EDA, Data Preparation and Model Development. Saturn cloud jobs can be triggered via an API or a schedule for Model (Re-)Training. Saturn Cloud integrates with a variety of MLOps providers for model deployment, model registry, experiment tracking, and model monitoring.
Loved by data scientists and IT security teams.
Here are some security requirements our customers have told us they could not find anywhere else.