2016-04-04 21 views
1

私は第1列に基づいてソートしたい大きな行列 - 1045506 x 3を持っています。 、それはnumpyの行列なので、私は結果gpuでnumpy行列をソート

mat_sorted = mat[mat[:,0].argsort()]

を取得するためにargsortを使用することができますそれは少し私には高いように思え、この手順を完了するのに約69msかかります。

私の質問は、GPUを使用して計算を高速化する方法があるかどうかです。私はpycuda、theanoのようないくつかの図書館を見ていましたが、私はドキュメントを理解することが難しいと思っています。特に、numpy配列と行列をgpuに渡す部分。どのポインタも非常に便利です。

+0

興味深い質問です。原理的にソート操作を並列化する簡単な方法があるかどうかは私には分かりません。 – roadrunner66

+0

@ roadrunner66:google "基数ソート"。 – talonmies

答えて

0

私が知っているPyCUDAまたはscikit-cudaには、ネイティブソート機能はありません。しかし、GPUでの効率的な並列ソートはほとんど解決された問題です.CUDA 4.0以降のツールキットのすべてのバージョンに同梱されているThrustテンプレートライブラリでは、最先端のソートアルゴリズムを見つけることができます。

PyCUDA wikiには、PyCUDAのThrustソートアルゴリズムを呼び出すcomplete exampleが含まれています。

関連する問題