【问题标题】:CUDA on Thrust: how to implement priority queueCUDA on Thrust:如何实现优先级队列
【发布时间】:2011-05-13 08:19:15
【问题描述】:

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

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

  1. 谁能帮助我,我怎样才能在 GPU 中做同样的事情(可能 Thrust 对我来说会更容易!)
  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) { 输出

【问题讨论】:

    标签: cuda thrust


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-19
      • 2012-04-15
      • 2012-11-26
      • 2015-01-06
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      相关资源
      最近更新 更多