Что является эквивалентом clFinish в оболочке API opencl c ++? - PullRequest
4 голосов
/ 05 июля 2019

Я новичок в opencl, но я не новичок в программировании на GPU.Мне нужно убедиться, что мои устройства cpu и gpu синхронизированы друг с другом.Кажется, что я должен использовать clFinish(cl::commandqueue queue), но я использую opencl c ++, а не opencl c.

Итак, cl::finish() эквивалент clFinish() или есть что-то еще, как cl::commandqueue::finish() (что визуальностудийная доза не распознается)?

Можете ли вы привести ваши ответы на примере?Я новичок в opencl.

1 Ответ

1 голос
/ 05 июля 2019

cl::command_queue::finish - это то, что вы ищете.

cl_int finish() const
{
    return detail::errHandler(::clFinish(object_), __FINISH_ERR);
}

cl::finish получает очередь по умолчанию и выполняет финиш в этой очереди.

inline cl_int finish(void)
{
    cl_int error;
    CommandQueue queue = CommandQueue::getDefault(&error);

    if (error != CL_SUCCESS) {
        return error;
    } 


    return queue.finish();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...