Вычислить квадрат евклидовой матрицы расстояний на GPU

Позволятьp быть матрицей первого набора местоположений, где каждая строка дает координаты конкретной точки. Точно так же, пустьq быть матрицей второго набора местоположений, где каждая строка дает координаты конкретной точки.

Тогда формула для парного квадрата евклидова расстояния:

k(i,j) = (p(i,:) - q(j,:))*(p(i,:) - q(j,:))', 

гдеp(i,:) обозначаетi-й ряд матрицыp, а такжеp' обозначает транспонированиеp.

Я хотел бы вычислить матрицуk на графическом процессоре с поддержкой CUDA (NVidia Tesla) в C ++. У меня OpenCV v.2.4.1 с поддержкой GPU, но я открыт для других альтернатив, таких как библиотека Thrust. Однако я не слишком знаком с программированием на GPU. Можете ли вы предложить эффективный способ решения этой задачи? Какие библиотеки C ++ я должен использовать?

Ответы на вопрос(1)

Ваш ответ на вопрос