- 常量内存是有常量缓存的全局内存,数量有限,大小仅为64KB,由于有缓存,线程束在读取相同常量内存数据时,访问速度比全局内存快
- 常量内存中的数据对同一编译单元内所有线程可见
- 实用
__constant__
修饰的变量存放于常量内存中,不能定义在核函数中,且常量内存是静态定义的 - 常量内存仅可读,不可写
- 给核函数传递数值参数时,这个变量就存放于常量内存
静态常量内存
- 常量内存必须在主机端使用
cudaMemecpyToSymbol
进行初始化 - 线程束中所有线程从想同内存地址读取数据时,常量内存表现最好,例如数学公式中的系数,因为线程束中的所有线程都需要读取同一个地址空间的系数数据,因此只需要读取一次,广播给线程束中的所有线程。