мой план состоит в том, чтобы вычислить матрицу расстояний, используя корреляцию Пирсонса, и получить q-ближайших соседей для каждого узла (q = ln (n)) из матрицы расстояния и поместить их в результат вектор. Я сделал это на C++, используя очередь приоритетов STL внутри цикла корреляционной функции.CUDA on Thrust: как реализовать приоритетную очередь
Как вы считаете, есть ли способ сделать это в GPU?
- Может кто-нибудь помочь мне, как я могу сделать то же самое в GPU (возможно Thrust будет легче для меня!)
- Как реализовать приоритетную очередь в ГПУ?
Вот мой процессор (C++ STL) код:
Например,
distance matrix ----------------------- 0 3 2 4 3 0 4 5 2 4 0 6 ..... output in a object vector ================= source target weight -------------------------------- 0 2 2 0 1 3 .... (sorted by Edge weight) 1 0 3 1 2 4 2 0 2 ..... calculatePearsonCorrelation(float vector1[], float vector2[], int m) { // float distancePearson(vector vector1, vector vector2){ int i; float a=0,b=0,c=0,d=0, e = 0, sumX=0, sumY=0; //m = vector1.size(); for(i=0;iq){ MIN=pqx.top().get_corr(); if(corr::iterator it = qNNVector.begin(); it!=qNNVector.end(); ++it) { fout