HI all,
I seem to have a problem with nvcc on my Ubuntu 7.10 box.
nvcc crashes when I declare a pointer to a texture like this:
texture* tex;
nvcc -g --host-compilation c++ -c main.cu -o main.o
Segmentation fault (core dumped)
However, these declarations seem to work:
texture* tex; // simple float, not float4
texture tex; // not a pointer
Some more info on my configuration:
2.6.22-14-generic #1 SMP x86_64 GNU/Linux
I am using the cuda SDK 1.1.
This is a simple program that triggers the problem:
include <cuda_runtime.h>
include
include
global void test(texture* tex)
{
float4 sample1 = tex1Dfetch(tex[0], 0);
float4 sample2 = tex1Dfetch(tex[0], 0);
}
int main()
{
float *devSamples[2], *hostSamples[2];
cudaChannelFormatDesc channel = cudaCreateChannelDesc();
texture *tex = new texture[2];
cudaMalloc((void **) &devSamples[0], 100);
cudaMallocHost((void **) &hostSamples[0], 100);
cudaMalloc((void **) &devSamples[1], 100);
cudaMallocHost((void **) &hostSamples[1], 100);
size_t offset;
cudaBindTexture(&offset, tex[0], devSamples[0], channel);
cudaBindTexture(&offset, tex[1], devSamples[1], channel);
dim3 grid(16, 1), block(32, 2);
test<<<grid, block>>>(tex);
cudaUnbindTexture(tex[0]);
cudaUnbindTexture(tex[1]);
cudaFree(devSamples[0]);
cudaFreeHost(hostSamples[0]);
cudaFree(devSamples[1]);
cudaFreeHost(hostSamples[1]);
return 0;
}
Any help is appreciated!
Cheers,
Rob