zoukankan      html  css  js  c++  java
  • [CUDA]CUDA编程实战一——了解CUDA及获取GPU信息

    当你看到这篇博客的时候,我相信你已对CUDA有所了解,CUDA是针对于GPU的一种C/C++扩展库,使用cuda可以很方便地进行并行编程。

    那么今天第一讲便是如何获取GPU的各种参数,cudaDeviceProp是cuda库中已经封装好的结构体,通过调用cudaGetDeviceProperties(&devProp, i);可以得到cuda的各个参数。

    #include "device_launch_parameters.h"
    #include <iostream>
    
    int main()
    {
        int deviceCount;
        cudaGetDeviceCount(&deviceCount);
        for(int i=0;i<deviceCount;i++)
        {
            cudaDeviceProp devProp;
            cudaGetDeviceProperties(&devProp, i);
            std::cout << "使用GPU device " << i << ": " << devProp.name << std::endl;
            std::cout << "设备全局内存总量: " << devProp.totalGlobalMem / 1024 / 1024 << "MB" << std::endl;
            std::cout << "SM的数量:" << devProp.multiProcessorCount << std::endl;
            std::cout << "每个线程块的共享内存大小:" << devProp.sharedMemPerBlock / 1024.0 << " KB" << std::endl;
            std::cout << "每个线程块的最大线程数:" << devProp.maxThreadsPerBlock << std::endl;
            std::cout << "设备上一个线程块(Block)种可用的32位寄存器数量: " << devProp.regsPerBlock << std::endl;
            std::cout << "每个EM的最大线程数:" << devProp.maxThreadsPerMultiProcessor << std::endl;
            std::cout << "每个EM的最大线程束数:" << devProp.maxThreadsPerMultiProcessor / 32 << std::endl;
            std::cout << "设备上多处理器的数量: " << devProp.multiProcessorCount << std::endl;
            std::cout << "======================================================" << std::endl;     
            
        }
        return 0;
    }
    

    运行结果

    我们使用了4块GPU,这里只展示了第三块,包含了GPU设备的各种信息。

  • 相关阅读:
    非root用户在linux下安装多个版本的CUDA和cuDNN(cuda 8、cuda 10.1 等)
    python相关总结
    可视化滤波器
    Ubuntu 和windows程序区别
    远程服务器运行代码相关
    Ubuntu
    jmeter学习(1)基础支持+安装部署
    python中eval方法的使用
    mysql学习(4)python操作数据库
    mysql学习(3)10045错误,连接不上数据库
  • 原文地址:https://www.cnblogs.com/wildkid1024/p/14876361.html
Copyright © 2011-2022 走看看