3-3:查询设备

3-3:查询设备,第1张

3-3:查询设备
struct cudaDeviceProp{
    char name[256];
    // 设备名称(例如,“Geforce GTX 280”)
    size_t totalGlobalMem;
    // 设备上全局内存的总量,单位为字节
    size_t sharedMemPerBlock;
    // 在一个线程块(block)中可使用的最大共享内存数量,单位为字节
    int regsPerBlock;
    //  每个线程块中可用的32位寄存器数量
    int warpSize;
    // 在一个线程束(warp)中包含的线程数量
    size_t memPitch;
    // 在内存复制中最大的修正量(Pitch),单位为字节
    int maxThreadsPerBlock;
    // 在一个线程块中可以包含的最大线程数量
    int maxThreadsDim[3];
    // 在多维线程块数组中,每一维可以包含的最大线程数量
    int maxGridSize[3];
    // 在一个线程格(grid)中,每一维包含的线程块数量
    size_t totalConstMem;
    // 常量内存的总量
    int major;
    // 设备计算功能集的主版本号
    int minor;
    // 设备上计算功能集的次版本号
    int clockRate;
    // 
    size_t textureAlignment;
    // 设备的纹理对齐要求
    int deviceOverlap;
    // 一个布尔值,表示该设备是否可以同时执行一个cudaMemory()调用和一个核函数的调用
    int multiProcessorCount;
    // 设备上多处理器的数量
    int kernelExecTimeoutEnabled;
    // 一个布尔值,表示该设备上执行的核函数是否存在运行时限制
    int integrated;
    // 一个布尔类型的值,表示设备是否是一个集成GPU(即该GPU属于芯片组的一部分而非独立的GPU)
    int canMapHostMemory;
    // 一个布尔类型的值,表示设备是否将主机内存映射到CUDA设备地址空间
    int computeMode;
    // 表示设备的计算模式,默认(default),独占(Exclusive),或者禁止(Prohibited)
    int maxTexture1D;
    // 一维纹理数的最大维数
    int maxTexture2D;
    // 二维纹理数的最大维数
    int maxTexture3D;
    //三维纹理数的最大维数
    int maxTexture2DArray[3];
    //二维纹理数组的最大维数
    int concurrentKernels; 
    //一个bool类型的值,表示设备是否支持在同一个上下文中同时执行多个核函数
}

 

#include "book.h"

int main(void)
{
    cudaDeviceProp prop;

    int count;
    HANDLE_ERROR(cudaGetDeviceCount(&count));
    for (int i = 0; i < count; i++)
    {
        HANDLE_ERROR(cudaGetDeviceProperties(&prop, i));
        printf("   ---General Information for device %d ----n", i);
        printf("Name: %sn", prop.name);
        printf("Compute capability: %d.%dn", prop.major, prop.minor);
        printf("Clock rate: %dn", prop.clockRate);
        printf("Device copy overlap: ");
        if (prop.deviceOverlap)
            printf("Enabledn");
        else
            printf("Disabledn");
        printf("Kernel execition timeout :");
        if (prop.kernelExecTimeoutEnabled)
            printf("Enabledn");
        else
            printf("Disabledn");

        printf("   ---Memory Information for device %d ---n", i);
        printf("Total global mem: %ldn", prop.totalGlobalMem);
        printf("Total constant Mem:%ldn", prop.totalConstMem);
        printf("Max mem pitch: %ldn", prop.memPitch);
        printf("Texture Alignment: %ldn", prop.textureAlignment);
        printf("   ---MP Information for device %d---n", i);
        printf("Multiprocessor count: %dn", prop.multiProcessorCount);
        printf("Shared mem per mp: %ldn", prop.sharedMemPerBlock);
        printf("Registers per mp: %dn", prop.warpSize);
        printf("Threads in warp: %dn", prop.maxThreadsPerBlock);
        printf("Max thread dimensions: (%d, %d, %d)n", prop.maxThreadsDim[0], prop.maxThreadsDim[1], prop.maxThreadsDim[2]);
        printf("Max grid dimensions: (%d, %d, %d)n", prop.maxGridSize[0], prop.maxGridSize[1], prop.maxGridSize[2]);
        printf("n");
    }
}

CMakeLists.txt:

cmake_minimum_required(VERSION 3.10)
project(Hello-world CUDA)

set(CMAKE_CUDA_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug)


set(CUDA_NVCC_FLAGS -O3;-G;-g)

set(CUDA_INCLUDE_DIR /usr/local/cuda/include)
set(BOOK_INCLUDE /home/wang/projects/cuda-examples/includes)
set(LIBS_DIR /usr/local/cuda/lib64)
include_directories(${CUDA_INCLUDE_DIR} ${BOOK_INCLUDE})
 
link_directories(${LIBS_DIR})
add_executable(${PROJECT_NAME} main.cu)
target_link_libraries(${PROJECT_NAME} libcudart.so)

 信息打印:

   ---General Information for device 0 ----
Name: NVIDIA Tegra X1
Compute capability: 5.3
Clock rate: 921600
Device copy overlap: Enabled
Kernel execition timeout :Enabled
   ---Memory Information for device 0 ---
Total global mem: 4156661760
Total constant Mem:65536
Max mem pitch: 2147483647
Texture Alignment: 512
   ---MP Information for device 0---
Multiprocessor count: 1
Shared mem per mp: 49152
Registers per mp: 32
Threads in warp: 1024
Max thread dimensions: (1024, 1024, 64)
Max grid dimensions: (2147483647, 65535, 65535)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5711489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存