/ncs # make -C projects/alignedTypes/
make: Entering directory /root/ncs/projects/alignedTypes' alignedTypes.cu: In function ‘void runTest(int)’: alignedTypes.cu:220: error: ‘testKernel1’ was not declared in this scope make: *** [obj/release/alignedTypes.cu.o] Error 255 make: Leaving directory
/root/ncs/projects/alignedTypes’
same for reduction
/ncs # make -C projects/reduction/
make: Entering directory /root/ncs/projects/reduction' reduction_kernel.cu: In function ‘void reduce_sm10(int, int, int, int, T*, T*)’: reduction_kernel.cu:335: error: ‘reduce0_sm10’ was not declared in this scope reduction_kernel.cu:338: error: ‘reduce1_sm10’ was not declared in this scope reduction_kernel.cu:341: error: ‘reduce2_sm10’ was not declared in this scope reduction_kernel.cu:344: error: ‘reduce3_sm10’ was not declared in this scope reduction_kernel.cu:347: error: ‘reduce4_sm10’ was not declared in this scope make: *** [obj/release/reduction_kernel_sm10.cu.o] Error 255 make: Leaving directory
/root/ncs/projects/reduction’
my system : linux 11.1 32bit
cuda : 2.1
actually i dont uderstand the whole code
but they diclare
a template gloabl void Testkernel(…)
then they make an other template and try to use testKernel…
template void runTest(int packedElementSize){
const int totalMemSizeAligned = iAlignDown(MEM_SIZE, sizeof(TData));
const int numElements = iDivDown(MEM_SIZE, sizeof(TData));
//Clean output buffer before current test
CUDA_SAFE_CALL( cudaMemset(d_odata, 0, MEM_SIZE) );
//Run test
CUDA_SAFE_CALL( cudaThreadSynchronize() );
CUT_SAFE_CALL( cutResetTimer(hTimer) );
CUT_SAFE_CALL( cutStartTimer(hTimer) );
int i=0;
for( i = 0; i < NUM_ITERATIONS; i++){
testKernel<<<64, 256>>>( <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< what happens here? ??? this is where the error comes from
(TData *)d_odata,
(TData *)d_idata,
numElements
);
CUT_CHECK_ERROR("testKernel() execution failed\n");
}
CUDA_SAFE_CALL( cudaThreadSynchronize() );
CUT_SAFE_CALL( cutStopTimer(hTimer) );
double gpuTime = cutGetTimerValue(hTimer) / NUM_ITERATIONS;
printf(