סאָרטינג 3 ערייז דורך שליסל אין קודאַ (ניצן שטויס טאָמער)

איך האָבן 3 ערייז פון די זעלבע גרייס (מער ווי 300.000 עלעמענטן). איין מענגע פון ​​לאָזנ שווימען נומערן און צוויי ערייזאַז פון ינדאַסיז. אַזוי, פֿאַר יעדער נומער איך האָבן 2 ידס.

כל 3 ערייז זענען שוין אין גפּו גלאבאלע זכּרון. איך ווילן צו סאָרט אַלע די נומערן מיט זייער ID ס אַקאָרדינגלי.

איז עס קיין וועג איך קענען נוצן שטויס ביבליאָטעק צו טאָן דעם אַרבעט? איז עס אַ בעסער וועג ווי שטויס ביבליאָטעק?

דאָך, איך בעסער וועלן נישט צו צייכענען זיי צו און פון באַלעבאָס זכּרון אַ פּאָר פון מאָל. דורך דעם וועג, זיי ניטאָ ערייז נישט וועקטערז.

דאַנקען פֿאַר דיין הילף אין שטייַגן.


טענטאַטיוו לייזונג , אָבער דאָס איז גאָר פּאַמעלעך. עס נעמט כּמעט 4 סעקונדעס און מיין מענגע גרייס איז אין סדר פון 300000

thrust::device_ptr<float> keys(afterSum);
thrust::device_ptr<int> vals0(d_index);
thrust::device_ptr<int> vals1(blockId); 

thrust::device_vector<int> sortedIndex(numElements);
thrust::device_vector<int> sortedBlockId(numElements);

thrust::counting_iterator<int> iter(0);
thrust::device_vector<int> indices(numElements);
thrust::copy(iter, iter + indices.size(), indices.begin()); 

thrust::sort_by_key(keys, keys + numElements , indices.begin());    

thrust::gather(indices.begin(), indices.end(), vals0, sortedIndex.begin());
thrust::gather(indices.begin(), indices.end(), vals1, sortedBlockId.begin());

thrust::host_vector<int> h_sortedIndex=sortedIndex;
thrust::host_vector<int> h_sortedBlockId=sortedBlockId;
7
задан JackOLantern 27 February 2017 в 11:33
поделиться