CUDA 10.0 设备属性结构体 cudaDeviceProp 和 Managed Memory 说明

cudaDeviceProp 结构体

struct cudaDeviceProp 是一个包含了设备属性的结构体,其中包含了许多成员,包括:

  • char name[256]:设备名
  • size_t totalGlobalMem:全局内存总大小
  • int sharedMemPerBlock:每个线程块可用的共享内存大小
  • int regsPerBlock:每个线程块可用的寄存器数量
  • int warpSize:每个线程束中线程的数量
  • int maxThreadsPerBlock:每个线程块可容纳的最大线程数
  • int maxThreadsDim[3]:每个线程块中每个维度的最大线程数
  • int maxGridSize[3]:每个网格中每个维度的最大线程数
  • int clockRate:设备时钟频率
  • int memoryClockRate:内存时钟频率
  • int memoryBusWidth:内存总线宽度
  • int multiprocessorCount:设备上的多处理器数量
  • int maxThreadsPerMultiProcessor:每个多处理器可容纳的最大线程数
  • size_t totalConstMem:常量内存总大小
  • int computeMode:设备的计算模式
  • int maximumTexture1D:1D 纹理的最大大小
  • int maximumTexture2D[2]:2D 纹理的最大大小
  • int maximumTexture3D[3]:3D 纹理的最大大小
  • int maxSurface1D:1D 表面的最大大小
  • int maxSurface2D[2]:2D 表面的最大大小
  • int maxSurface3D[3]:3D 表面的最大大小
  • int cudaCores:CUDA 核心数量

managedMemory 枚举类型

managedMemory 是一个枚举类型,表示设备是否支持统一内存 (Unified Memory) 的管理内存模式。可能的值包括:

  • cudaComputeModeDefault:默认计算模式,不支持统一内存
  • cudaComputeModeExclusive:独占计算模式,不支持统一内存
  • cudaComputeModeProhibited:禁止计算模式,不支持统一内存
  • cudaComputeModeExclusiveProcess:独占进程计算模式,不支持统一内存
  • cudaComputeModeProhibitedShared:禁止共享内存计算模式,不支持统一内存
  • cudaComputeModeExclusiveProcessShared:独占进程共享内存计算模式,支持统一内存

统一内存 (Unified Memory)

支持统一内存的设备可以使用统一内存管理模式,将主机和设备内存统一起来,从而简化了内存管理的复杂性。而不支持统一内存的设备则需要手动管理内存,将数据从主机内存复制到设备内存,或者从设备内存复制到主机内存。

CUDA 10.0 设备属性结构体 cudaDeviceProp 和 Managed Memory 说明

原文地址: https://www.cveoy.top/t/topic/obaZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录