关于CUDA中__constant__的随笔

1.       

        __constant__和__device__ __constant__  应该没什么区别

        定义在主函数外面

2.        怎么在host上获取__constant__量:

        注意 cudaMemcpyFromSymbol(&h_NX, NX, sizeof(int)); 中的第二个参数不要写&NX,否则会把NX的地址传递给 h_NX, 而不是 NX 的值。

cudaMemcpyFromSymbol(void * dst,
const char * symbol,
size_t count,
size_t offset = 0,
enum cudaMemcpyKind kind = cudaMemcpyDeviceToHost
)

注意:如果要写cudaMemcpyDeviceToHost这个参数的话,前面要写上offset这个参数,如下所示:

cudaMemcpyFromSymbol(&h_NX, NX, sizeof(int), 0, cudaMemcpyFromSymbol)

示例代码如下:(很多库不需要调用的)

#include "cuComplex.h"
#include <cufft.h>
#include <cuda_runtime.h>
#include <stdio.h>
#include<math.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <iostream>
#include <vector>
#include <cmath>
#include <iomanip>

__constant__ int NX = 16;


int main()
{
	//Parameters
	int h_NX;
	cudaMemcpyFromSymbol(&h_NX, NX, sizeof(int));
	std::cout << h_NX << " " << "\n";

	return 0;
}

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值