CUDA(五)用deviceQuery看GPU屬性
在CUDA安裝好後可以用DeviceQuery看一下GPU的相關屬性,從而對GPU有一定了解,有助於今後的CUDA程式設計。
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int deviceCount;
cudaGetDeviceCount(&deviceCount);
int dev;
for (dev = 0; dev < deviceCount; dev++)
{
cudaDeviceProp deviceProp;
cudaGetDeviceProperties(&deviceProp, dev);
if (dev == 0)
{
if (/*deviceProp.major==9999 && */deviceProp.minor = 9999&&deviceProp.major==9999)
printf("\n");
}
printf("\nDevice%d:\"%s\"\n", dev, deviceProp.name);
printf("Total amount of global memory %u bytes\n", deviceProp.totalGlobalMem);
printf("Number of mltiprocessors %d\n", deviceProp.multiProcessorCount);
printf("Total amount of constant memory: %u bytes\n", deviceProp.totalConstMem);
printf("Total amount of shared memory per block %u bytes\n", deviceProp.sharedMemPerBlock);
printf("Total number of registers available per block: %d\n", deviceProp.regsPerBlock);
printf("Warp size %d\n", deviceProp.warpSize);
printf("Maximum number of threada per block: %d\n", deviceProp.maxThreadsPerBlock);
printf("Maximum sizes of each dimension of a block: %d x %d x %d\n", deviceProp.maxThreadsDim[0],
deviceProp.maxThreadsDim[1],
deviceProp.maxThreadsDim[2]);
printf("Maximum size of each dimension of a grid: %d x %d x %d\n", deviceProp.maxGridSize[0], deviceProp.maxGridSize[1], deviceProp.maxGridSize[2]);
printf("Maximum memory pitch : %u bytes\n", deviceProp.memPitch);
printf("Texture alignmemt %u bytes\n", deviceProp.texturePitchAlignment);
printf("Clock rate %.2f GHz\n", deviceProp.clockRate*1e-6f);
}
printf("\nTest PASSED\n");
getchar();
}
程式碼中先通過cudaGetDeviceCount來得到系統中NVIDIA GPU的數目
再通過函式cudaGetDeviceProperties,獲取系統中GPU的屬性;
再獲取屬性後檢視最直接方法是設一個斷點通過除錯就能看到;
要不就通過列印的方法在控制檯上顯示;
如執行結果所示;
deviceProp.name為GPU名字,如果沒有GPU則會輸出 Device Emulation
deviceProp.totalGlobalMem返回的是全域性儲存器的大小,對大資料或一些大模型計算時視訊記憶體大小必須大於資料大小,如圖返回的是2GB的儲存大小,
deviceProp.multiProcessorCount返回的是裝置中流多處理器(SM)的個數,流處理器(SP)的個數SM數×每個SM包含的SP數,其中帕斯卡為每個SM,64個SP,麥克斯韋為128個,開普勒為192個,費米為32個,
deviceProp.totalConstMem返回的是常數儲存器的大小,如同為64kB
deviceProp.sharedMemPerBlock返回共享儲存器的大小,共享儲存器速度比全域性儲存器快,
deviceProp.regsPerBlock返回暫存器的數目;
deviceProp.warpSize返回執行緒束中執行緒多少;
deviceProp.maxThreadsPerBlock返回一個block中最多可以有的執行緒數;
deviceProp.maxThreadsDim[]返回block內3維度中各維度的最大值
deviceProp.maxGridSize[]返回Grid內三維度中各維度的最大值;
deviceProp.memPitch返回對視訊記憶體訪問時對齊時的pitch的最大值;
deviceProp.texturePitchAlignment返回對紋理單元訪問時對其引數的最大值;
deviceProp.clockRate返回視訊記憶體的頻率;
相關文章
- 有Cuda能力的GPU核心GPU
- WPF 之 依賴屬性與附加屬性(五)
- NVDIA CUDA ---------GPU計算的革命GPU
- 無GPU情況下對cuda程式進行功能性測試GPU
- 【CUDA學習】GPU硬體結構GPU
- QT下的darknet-GPU專案屬性QTGPU
- ubuntu16+tensorflow-gpu安裝cudaUbuntuGPU
- kaldi上使用gpu以及如何安裝cudaGPU
- CUDA 學習筆記之gpu結構筆記GPU
- cuda程式設計與gpu平行計算(四):cuda程式設計模型程式設計GPU模型
- GPU高效能程式設計CUDA實戰(二)GPU程式設計
- GPU的並行運算與CUDA的簡介GPU並行
- win10 安裝CUDA、cudnn、tensorflow-gpuWin10DNNGPU
- 8. CUDA 記憶體使用 global 二------GPU的革命記憶體GPU
- vins-fusion gpu, docker, opencv4.5.4(cuda) 復現GPUDockerOpenCV
- 【Android 動畫】動畫詳解之屬性動畫(五)Android動畫
- vue中vuex的五個基本屬性和用法Vue
- Struts的Indexed屬性用處Index
- CMake 屬性之全域性屬性
- WPF 屬性系統 依賴屬性之記憶體佔用分析記憶體
- iOS動畫 屬性屬性解析iOS動畫
- defer 屬性和 async 屬性
- css詳解position五種屬性用法及其含義CSS
- css3 選擇器:屬性選擇器(五)CSSS3
- infile * 不能和str屬性連用
- GPU程式設計(一):Ubuntu下的CUDA8.0環境搭建GPU程式設計Ubuntu
- Ubuntu 安裝 tensorflow-gpu 1.4 +CUDA 8.0 +cuDNN詳細教程UbuntuGPUDNN
- 官方查詢tensorflow-gpu對應的cuda和cudnn版本GPUDNN
- CSS 屬性篇(七):Display屬性CSS
- CMake 屬性之目標屬性
- CMake 屬性之目錄屬性
- CSS語法手冊(五)顏色和背景屬性(轉)CSS
- 【CUDA學習】全域性儲存器
- Windows 7系統跳過選單看檔案的屬性Windows
- HTML5中margin屬性應用HTML
- cuda程式設計與gpu平行計算(六):圖稀疏矩陣轉為CSR結構並傳入gpu程式設計GPU矩陣
- JavaScript私有屬性和靜態屬性JavaScript
- GPU程式設計(五):利用好sharedmemoryGPU程式設計