| 查看: 630 | 回复: 0 | ||
[求助]
多个.cu文件的工程怎样声明和使用常量内存(constant)?
|
|
(1)如下仅包含一个test.cu文件的cuda程序,使用了常量内存__constant__ float num1[40] 程序可以运行没有问题: //*****************test.cu********************************** #include<cuda_runtime.h> #include<windows.h> #include<iostream> using namespace std; const int nMax = 50; __constant__ float num1[40]; __global__ void exchangeKernel(float *aaa) { int offset = threadIdx.x + blockDim.x * blockIdx.x; aaa[offset] = num1[offset]; } int main(){ float *devA,tmp[40],res[40]; cudaMalloc((void**)&devA, 40*sizeof(float)); for (int i = 0; i < 40; i++)tmp = i*1.5f; cudaMemcpyToSymbol(num1, tmp, 40 * sizeof(float)); exchangeKernel << <4, 10 >> >(devA); cudaMemcpy(res, devA, 40 * sizeof(float), cudaMemcpyDeviceToHost); for (int i = 0; i < 40; i++){ cout << res << " " << endl; } cin >> res[1]; return 0; } //********************test.cu******************************* (2)如果想将上面的一个test.cu文件拆分为两个.cu文件(如test1.cu和test2.cu)怎样继续使用 常量内存__constant__ float num1[40] 我的大致想想法如下: test1.cu内容: //********************test1.cu******************************* __global__ void exchangeKernel(float *aaa) { int offset = threadIdx.x + blockDim.x * blockIdx.x; aaa[offset] = num1[offset]; } //********************test1.cu******************************* test2.cu内容: //********************test2.cu******************************* #include "cuda_runtime.h" #include "device_launch_parameters.h" #include<windows.h> #include<iostream> using namespace std; const int nMax = 50; __device__ __constant__ float num1[40]; //常量内存 __global__ void exchangeKernel(float *aaa); //函数声明 int main(){ float *devA,tmp[40],res[40]; cudaMalloc((void**)&devA, 40*sizeof(float)); for (int i = 0; i < 40; i++)tmp = i*1.5f; cudaMemcpyToSymbol(num1, tmp, 40 * sizeof(float)); exchangeKernel << <4, 10 >> >(devA); cudaMemcpy(res, devA, 40 * sizeof(float), cudaMemcpyDeviceToHost); for (int i = 0; i < 40; i++){ cout << res << " " << endl; } cin >> res[1]; return 0; } //********************test2.cu******************************* (3)但我的想法没有实现(提示错误为:error : identifier "num1" is undefined),求高人指点,如何在多个.cu文件的工程中声明和使用常量内存? |
» 猜你喜欢
大佬帮着分析今年的评审意见?该课题连续申请了三年了,明年要不要换个方向。
已经有11人回复
两块石头
已经有10人回复
广西大学-广州大学招聘博士后 欢迎广大优秀人才!!!
已经有8人回复
科研人应该花精力去思考如何解决问题,而不是去凝练问题
已经有19人回复
售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急
已经有9人回复
售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急
已经有15人回复
面上没中,邀请各位路过的虫友分析一下分数
已经有13人回复
初秋的晨风
已经有6人回复
学科评审组评审是指会评吗?
已经有9人回复
Ei源刊怎么投
已经有4人回复










回复此楼