int
LDSBandwidth::genBinaryImage()
{
    bifData binaryData;
    binaryData.kernelName = std::string("LDSBandwidth_Kernels.cl");

    // Pass vectorSize as DATATYPE to kernel
    char buildOption[64];
    if(vectorSize == 1)
    {
        sprintf(buildOption, "-D DATATYPE=float ");
    }
    else
    {
        sprintf(buildOption, "-D DATATYPE=float%d ", vec3 == true ? 3 : vectorSize);
    }

    binaryData.flagsStr = std::string(buildOption);
    if(sampleArgs->isComplierFlagsSpecified())
    {
        binaryData.flagsFileName = std::string(sampleArgs->flags.c_str());
    }

    binaryData.binaryName = std::string(sampleArgs->dumpBinary.c_str());
    int status = generateBinaryImage(binaryData);
    return status;
}
int AtomicCounters::genBinaryImage() {
  bifData binaryData;
  binaryData.kernelName = std::string("AtomicCounters_Kernels.cl");
  binaryData.flagsStr = std::string("");
  if (sampleArgs->isComplierFlagsSpecified()) {
    binaryData.flagsFileName = std::string(sampleArgs->flags.c_str());
  }
  binaryData.binaryName = std::string(sampleArgs->dumpBinary.c_str());
  int status = generateBinaryImage(binaryData);
  return status;
}
/**
 * genBinary Image function is used to when we want to create the binary
 * for the kernel and run it at a later time. This is useful where offline
 * compilation is the preferred mechanism.
 */
int
MersenneTwister::genBinaryImage()
{
    bifData binaryData;
    binaryData.kernelName = std::string("MersenneTwister_Kernels.cl");
    binaryData.flagsStr = std::string("-x clc++ ");
    if(sampleArgs->isComplierFlagsSpecified())
    {
        binaryData.flagsFileName = std::string(sampleArgs->flags.c_str());
    }

    binaryData.binaryName = std::string(sampleArgs->dumpBinary.c_str());
    int status = generateBinaryImage(binaryData);
    return status;
}