Самый быстрый способ сделать скалярное векторное умножение в OpenCL - PullRequest
0 голосов
/ 30 мая 2018

У меня есть два входных вектора float4, скажем float4 A & float4 B.И выходной массив векторов с плавающей точкой float4 C[4] I, который я намереваюсь выполнить, - это

C[0] += A.s0 * B
C[1] += A.s1 * B
C[2] += A.s2 * B
C[3] += A.s3 * B

Существует ли какая-либо встроенная функция OpenCL для выполнения этой операции (или) какой-либо альтернативный способ ускорить эту операцию?

Редактировать 1: я уже пробовал описанную ниже опцию, используя встроенную функцию mad().Улучшения в производительности не было.

C[0].s0 = mad(A.s0, B.s0, C[0].s0);
C[0].s1 = mad(A.s0, B.s1, C[0].s1);
C[0].s2 = mad(A.s0, B.s2, C[0].s2);
C[0].s3 = mad(A.s0, B.s3, C[0].s3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...