常量内存

  • 常量内存是一块对于设备端而言只读的全局内存,但对于主机端常量内存是可读可写的
  • 当半线程束访问同一个常量内存地址时,只需要一次读取事务。多个不同地址的读取会串行化
  • 位于常量内存中的变量必须定义的全局作用域中,并以 constant 前缀修饰

    __constant__ Type name[size];
    __constant__ float myArray[10];
    
  • 由于常量内存对设备端只读,其数据必须由主机端初始化

    cudaError_t cudaMemcpyToSymbol(const void *symbol,const void * src,size_t count,size_t offset, cudaMemcpyKind kind)