3

我的计划是使用 Pearsons 的相关性计算距离矩阵,并从距离矩阵中获取每个节点 (q=ln(n)) 的 q-最近邻,并将它们放入结果向量中。我在 C++ 中使用相关函数循环内的 STL 优先级队列来完成它。

但是你认为,有什么办法可以在 GPU 中做到这一点吗?

  1. 谁能帮助我,我怎么能在 GPU 中做同样的事情(可能推力对我来说会更容易!)
  2. 如何在 GPU中实现优先级队列?

这是我的 CPU(C++ STL)代码:

例如,

      距离矩阵
----------------------
 0 3 2 4
 3 0 4 5
 2 4 0 6
 ......

在对象向量中输出
==================

    源目标权重
--------------------------------
0 2 2
0 1 3 ....(按边权重排序)

1 0 3
1 2 4

2 0 2
......


calculatePearsonCorrelation(float vector1[], float vector2[], int m) {
               // 浮点距离Pearson(vector vector1, vector vector2){

                            诠释我;
                            浮动 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) {
            输出
4

1 回答 1

1

您是否尝试过使用Thrust 的排序?你可以读出前 q 个元素。如果有足够的元素,您可能会看到不错的加速。

于 2011-03-01T18:04:50.403 回答