OpenCL конвертирует float16 в float * - PullRequest
0 голосов
/ 07 мая 2018

В настоящее время я работаю над ядром, которое можно оптимизировать с помощью типов float16. Однако я не нашел никакой документации о преобразовании float16 в float *, потому что моя выходная переменная - это float *. Вот пример кода

_kernel void IncrementMatrix( __global float* Source, __global float* Target, __global float* out )
{
   const int globalID = get_global_id(0);
   float16 S = vload16( globalID , Source );
   float16 T = vload16( globalID , Target );
   S = S + T;
   out[globalID*16] = (float*)S; // this is not working    
}

Я уже пробовал это out = (float *) S; , но это дает недопустимую ошибку преобразования типа.

1 Ответ

0 голосов
/ 07 мая 2018

Так же, как вы используете vload16() для загрузки данных, используйте vstore16 для их хранения

как это:

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