bool InitOCL(const unsigned int oclPlatformID, const unsigned int oclDeviceID, OCLHelper& oclHelper, std::ostringstream& msg)
{

    bool res = true;
    vector<string> info;
    res = oclHelper.GetPlatformsInfo(info, "\t\t");
    if (!res)
        return res;

    const size_t numPlatforms = info.size();
    msg << "\t Number of OpenCL platforms: " << numPlatforms << endl;
    for (size_t i = 0; i < numPlatforms; ++i) {
        msg << "\t OpenCL platform [" << i << "]" << endl;
        msg << info[i];
    }
    msg << "\t Using OpenCL platform [" << oclPlatformID << "]" << endl;
    res = oclHelper.InitPlatform(oclPlatformID);
    if (!res)
        return res;

    info.clear();
    res = oclHelper.GetDevicesInfo(info, "\t\t");
    if (!res)
        return res;

    const size_t numDevices = info.size();
    msg << "\t Number of OpenCL devices: " << numDevices << endl;
    for (size_t i = 0; i < numDevices; ++i) {
        msg << "\t OpenCL device [" << i << "]" << endl;
        msg << info[i];
    }
    msg << "\t Using OpenCL device [" << oclDeviceID << "]" << endl;
    res = oclHelper.InitDevice(oclDeviceID);
    return res;
}