選擇當前視訊記憶體佔用率較低的英偉達顯示卡

2021-08-20 06:28:55 字數 1141 閱讀 5671

眾尋多種方法,還是沒有找到c++中能獲得顯示卡使用狀況的簡單方法,所以這裡繞了個彎,把目標轉換成了字串處理.

雖然沒找到獲得顯示卡執行時的狀況的函式,但獲取顯示卡的基本資訊是比較常見的.方法如下:

#include 

#include

#include

#include

#include

int count = 0;

cudadeviceprop prop;

cudagetdevicecount(&count);

printf("count:%d\n",count);

借用cuda庫呼叫檢視當前顯示卡數量.此外也有其他基本資訊,如視訊記憶體大小等等,可以直接檢視,不再贅述.

呼叫英偉達的程式查詢.裝好顯示卡驅動後,linux可以直接在命令列

nvidia-smi
c++程式通過呼叫命令列結果獲取:

file *fstream=null;

char buff[10240];

memset(buff,0,sizeof(buff));

// 命令列執行,結果放在fstream內

if(null==(fstream=popen("nvidia-smi","r")))

char *buff_dst;

buff_dst = new

char [20480];

//從fstream流內讀取結果

while(null!=fgets(buff, sizeof(buff), fstream))

pclose(fstream);

接下來轉為處理字串,從結果中獲取使用視訊記憶體較低的顯示卡.經過觀察發現」mib」前面是視訊記憶體.其中單數」mib」表示當前已使用大小,雙數表示顯示卡總視訊記憶體.

int searchstr(char *src,char *str)

if(*p == *q)

p++;

q = str;

index++;

}return

0;}

咳咳,剛剛拿到了每塊顯示卡的已使用視訊記憶體大小,只要比較下選最小的就行了.

結束.

Matlab的CPU佔用率太高

matlab有乙個已知的bug,導致即使你什麼也不做,cpu的佔用率還是很高。原因在於matlab的幫助系統 help browser 採用新的渲染機制,導致了這個問題。輸入以下命令,使用html渲染機制,可以解決問題 com.mathworks.mlwidgets.html.htmlcompone...

分析CPU佔用率過高的問題

cpu佔用率過高的原因 1 中存在死迴圈 2 演算法過於複雜。對於演算法過於複雜而導致的cpu佔用率過高的問題,分析起來並不容易。下面提供一種方法,不管你對 的邏輯以及業務的需求是否了解,只要掌握了這種方法,都可以將問題定位出來。我們都知道,在linux unix下都有效能統計工具,通過top命令,...

Linux 提高CPU佔用率的指令碼

測試需要,提高cpu使用率 bin sh for i in seq 1 cat proc cpuinfo grep physical id wc l do dd if dev zero of dev null done說明 cat proc cpuinfo grep physical id wc l...