Было бы полезно, если бы вы могли опубликовать некоторый код для воспроизведения проблемы, возможно, вы могли бы сделать это на форумах CUDA . Сказав это, __constant__
переменные имеют статическую (то есть единицу перевода) область видимости. Простейшая структура для подражания будет выглядеть следующим образом. Обратите внимание, что также стоит проверить CUDA 3.2 .
host_code.cpp:
#include "cuda_funcs.h"
...
{
unsigned char h_carray[256];
cudaMemcpyToSymbol("carray", h_carray, 256);
processOnGpu(...);
}
...
cuda_funcs.h:
void processOnGpu(...);
cuda_funcs.cu:
__constant__ unsigned char carray[256];
__global__ void kernel(...)
{
...
}
void processOnGpu(...)
{
...
kernel<<<...>>>(...);
...
}