24小时热门版块排行榜    

查看: 656  |  回复: 0

xuanyz

木虫 (小有名气)

[求助] 多个.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文件的工程中声明和使用常量内存?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xuanyz 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 6/300 2026-11-05 18:00 by My20PsvIExYO
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ttH3f1oA6ace 2026-11-04 7/350 2026-11-05 17:58 by My20PsvIExYO
[考研] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ttH3f1oA6ace 2026-11-04 11/550 2026-11-05 17:58 by My20PsvIExYO
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 kvewwGtKktqB 2026-11-04 13/650 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 kvewwGtKktqB 2026-11-04 8/400 2026-11-05 17:47 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 ncTVBM6AOJHF 2026-11-04 8/400 2026-11-05 17:38 by My20PsvIExYO
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 ncTVBM6AOJHF 2026-11-04 14/700 2026-11-05 17:36 by My20PsvIExYO
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 ncTVBM6AOJHF 2026-11-04 11/550 2026-11-05 17:36 by My20PsvIExYO
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 17:36 by My20PsvIExYO
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +6 ncTVBM6AOJHF 2026-11-04 16/800 2026-11-05 17:25 by My20PsvIExYO
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 17:25 by My20PsvIExYO
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ncTVBM6AOJHF 2026-11-04 13/650 2026-11-05 17:15 by My20PsvIExYO
[基金申请] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 16:08 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ELBZ6WwEaRj6 2026-11-04 7/350 2026-11-05 16:08 by My20PsvIExYO
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 ttH3f1oA6ace 2026-11-04 9/450 2026-11-05 15:46 by My20PsvIExYO
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 hNpp4Y2CGvSC 2026-11-04 10/500 2026-11-05 15:35 by My20PsvIExYO
[公派出国] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 ncTVBM6AOJHF 2026-11-04 9/450 2026-11-05 15:13 by My20PsvIExYO
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 12/600 2026-11-05 11:10 by PYZmcHr5kSaq
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 ncTVBM6AOJHF 2026-11-04 10/500 2026-11-05 10:39 by PYZmcHr5kSaq
[基金申请] 各位基础老师们,看完中央《从严治党》的决定后,对学术界更加有信心了吧 +5 iaeyuan 2026-11-01 5/250 2026-11-04 14:43 by jinchengzi
信息提示
请填处理意见