CUDA進階第四篇-如何實時獲得GPU各種資源利用率(NVML)

CUDA進階第四篇-如何實時獲得GPU各種資源利用率

前幾天在玩digits的時候發現在訓練的過程中網頁上能夠動態顯示顯卡利用率,顯存利用率和溫度。突然想起來前幾天有人問過這個問題並查了一下目前好像並沒有類似的中文博客,所以就探究了一下這個問題。
首先我去翻了一下digits的源碼,發現是用python調用了NVML(nvidia-management-library)這麼個庫。
原來NVIDIA早就做好這麼個庫了,只是以前一直不知道。NVML已經有比較廣泛的應用,比如NVIDIA-smi就是基於NVML庫做的,還有一些第三方工具
下面開始正文,本文主要簡單介紹一下NVML的安裝和使用

環境:Ubuntu 14.04 cuda 7.0
NVML的安裝十分簡單,下載run文件,然後運行安裝即可,安裝目錄選擇默認。
NVML主要包括兩部分,一個lib和一個nvml.h頭文件,還有其他的一些亂七八糟的東西,可以看一下安裝的log文件(tmp/gdk_install_***.log)。
這裏很重要的就是我們需要知道lib文件和nvml頭文件的路徑,編譯時需要加進去(不懂的請bing gcc -I -L)。
但是有一個比較蛋疼的事情是這個路徑針對不同的linux版本是不同的,而且在安裝cuda的時候會自動給你按上一個nvml lib庫,但是卻沒有頭文件。所以到底該用哪個呢?
這裏有一個stackoverflow上關於 編譯問題可以供參考。

不過像我這樣的懶人比比皆是,所以nvml提供了一個example(Ubuntu 14.04 的路徑是/usr/src/gdk/nvml/examples),這個文件夾下包含一個example.c和makefile,所以只需要按照這個makefile裏的路徑把參數添加到你的項目裏即可~

Ubuntu 14.04下lib的路徑是/usr/src/gdk/nvml/lib/
頭文件路徑是-I/usr/include/nvidia/gdk。
使用時請添加頭文件 #include< nvml.h >
NVML API文檔:http://docs.nvidia.com/deploy/nvml-api/index.html

寫在後面

OpenCUDA,CUDA圖像算法開源項目,算法內都有詳細的註釋,大家一起學習。


私人接各種CUDA相關外包(調試、優化、開發圖像算法等),有意向請聯繫,加好友時請註明。
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章