функция log2 в ядре OpenCL? - PullRequest
       12

функция log2 в ядре OpenCL?

0 голосов
/ 06 февраля 2020

Привет, у меня проблема с функцией log2, используемой в ядре OpenCL, у меня есть компилятор cra sh:

CVMS_ERROR_SERVICE_FAILURE: сбой или зависание компилятора CVMS при управлении службой

код такой:

int offset = log2 ((double) m)

где m - это int, в чем проблема? Спасибо

1 Ответ

0 голосов
/ 12 февраля 2020

Я не могу воспроизвести ошибку, поэтому я предполагаю, что это проблема с драйвером.

Согласно документации OpenCL , T log2 (T) определено, поэтому log2(double) возвращает double, который должен выдавать вам предупреждение компилятора только при неявном приведении к int. Попробуйте

int offset = (int)(log2((float)m)+0.5f);

, чтобы избежать каких-либо предупреждений компилятора, и если это все еще не работает, используйте мой evil fast log2 метод

int offset = (as_uint((float)m)>>23)-127;

, который использует встроенный Функция OpenCL as_uint(float).

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