Closed yashiro32 closed 7 years ago
Hi Yashiro,
They're injected as macro definitions. Working backwards, we have for example:
Options string passed into kernel compilation here: https://github.com/hughperkins/DeepCL/blob/master/src/conv/Forward1.cpp#L179
kernel = cl->buildKernelFromString(kernelSource, "convolve_imagecubes_float2", options, "cl/forward1.cl");
Options string constructed here: https://github.com/hughperkins/DeepCL/blob/master/src/conv/Forward1.cpp#L54
options += dim.buildOptionsString();
dim.buildOptionsString()
is here: https://github.com/hughperkins/DeepCL/blob/master/src/conv/LayerDimensions.cpp#L43-L65
string LayerDimensions::buildOptionsString() {
string options = "";
if(biased) {
options += " -D BIASED";
}
options += " -D gNumInputPlanes=" + toString(inputPlanes);
options += " -D gInputPlanes=" + toString(inputPlanes);
options += " -D gInputSize=" + toString(inputSize);
options += " -D gInputSizeSquared=" + toString(square(inputSize));
options += " -D gNumFilters=" + toString(numFilters);
options += " -D gFilterSize=" + toString(filterSize);
options += " -D gHalfFilterSize=" + toString(filterSize >> 1);
options += " -D gFilterSizeSquared=" + toString(square(filterSize));
options += " -D gNumOutputPlanes=" + toString(numFilters);
options += " -D gOutputPlanes=" + toString(numFilters);
options += " -D gOutputSize=" + toString(outputSize);
options += " -D gOutputSizeSquared=" + toString(square(outputSize));
options += " -D gPadZeros=" + toString(padZeros ? 1 : 0);
options += " -D gMargin=" + toString(padZeros ? filterSize >> 1 : 0);
options += " -D gEven=" + toString(filterSize % 2 == 0 ? 1 : 0);
options += " -D gSkip=" + toString(skip);
return options;
}
I saw the variables gInputSize, gInputSizeSquared, gFilterSize, gFilterSizeSquared, gHalfFilterSize, gOutputSize, gOutputSizeSquared used in the .cl files but could not find them declared anywhere inside the files.