4
我試圖用thrust::transform
從device_vector
的每個元素減少一個恆定值。正如你所看到的,最後一行是不完整的。我試圖從常量fLowestVal
的所有元素中減去,但不知道具體如何。如何通過常量遞減device_vector的每個元素?
thrust::device_ptr<float> pWrapper(p);
thrust::device_vector<float> dVector(pWrapper, pWrapper + MAXX * MAXY);
float fLowestVal = *thrust::min_element(dVector.begin(), dVector.end(),thrust::minimum<float>());
// XXX What goes here?
thrust::transform(...);
另一個問題是:一旦我做我的device_vector
變化,將變化也適用於p
陣列?
謝謝!
#include <thrust/functional.h>
...
using thrust::placeholders;
thrust::for_each(vec.begin(), vec.end(), _1 -= val);
不尋常_1 -= val
語法意味着創建一個無名算符其工作是通過遞減其第一個參數:
WOW賈裏德這就是我一直在尋找!你能否詳細說明for_each函數的性能? – 2012-03-13 06:13:16
@igalk像這些功能是帶寬受限。表演應該「儘可能快地讀寫」 – 2012-03-13 17:17:26