• [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设备的各种信息。

  • 相关阅读:
    gorm使用小结
    golang 输入输出
    nginx 命令和配置
    设计模式
    并发
    Java教程
    Spring实战
    第12章 高级数据结构及其实现
    第10章 算法设计技巧
    第9章 图论算法
  • 原文地址:https://www.cnblogs.com/wildkid1024/p/14876361.html
Copyright © 2020-2023  润新知