找回密码
 立即注册
ShugangZhang 该用户已被删除
发表于 2019-11-17 14:19:13
12921
大家好,请教一个很简单的入门问题:
刚学习了constant memory,在代码中想把一些常数变量挪到内存中。这里有如下两种初始化方式:

第一种,在main函数体外,file scope内声明,并直接给初值:
  1. __constant__ double a = 140.0;
复制代码
第二种,在main函数体外,file scope内声明,但在main函数内利用cudaMemCpyToSymbol给初值:
  1. __constant__ double a;
复制代码
我的问题是:
是不是第一种是错的,必须用cudaMemCpyToSymbol来对这种常量内存初始化?
如果不是错的,请问这两种方式有区别吗?第一种算作为第二种的简化?这两种方式都通过编译了。

使用道具 举报 回复
发表于 2019-11-17 14:22:41
  1. __constant__ double a;

  2. void main()
  3. {
  4.     double h_a = 140.0;
  5.     cudaMemCpyToSymbol(a,&h_a,sizeof(double));
  6. }
复制代码


我是题主,第二段代码挂了,重发在这里,谢谢
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册

zzczczxczxczx