Dear all,
I’m trying the mad_test.cl example from the ‘OpenCL in Action’ book in Chapter 5. I’m using Windows 7 64-bit and NVIDIA Tesla GPU. The code is compiled from command line using the
‘VS2012 x64 cross tools command prompt’ with the command 'cl -o mad_test.exe -I"C:\Program files\NVIDIA GPU computing toolkit\CUDA\v5.5\include" mad_test.c “C:\Program files\NVIDIA
GPU computing toolkit\CUDA\v5.5\lib\x64\OpenCL.lib”. The program compiles fine. However, I find that the kernel only compiles correctly in the following form (it is in a separate file called mad_test.cl):
__kernel void mad_test(__global uint *resul)
{
uint a = 0x123456;
uint b = 0x112233;
uint c = 0x111111;
resul[0] = mad24(a, b, c);
resul[1] = mad_hi(a, b, c);
}
If the variable name ‘resul’ is made longer, e.g. ‘result1’ kernel compilation fails with the following error log:
:9:2: error: expected identifier or ‘(’
}Ø▲
I’m a bit new to OpenCL and don’t know where I should look at ‘9:2:’ in the kernel. Is this a line number?
Are there any known restrictions on the formatting of OpenCL kernels? Some maximum of characters per line that should not be exceeded?
Many thanks!