有沒有用pow
函數轉換推力矢量的方法?換句話說,我想將矢量的每個元素x
變換爲pow(x,a)
,其中a
是常數。使用CUDA Thrust的元素功率運算
2
A
回答
2
請參考推力Quict入門指南中的Section Transformations,瞭解如何使用初始化參數編寫仿函數。
struct saxpy_functor
{
const float a;
saxpy_functor(float _a) : a(_a) {}
__host__ __device__
float operator()(const float& x, const float& y) const {
return a * x + y;
}
};
2
這是一個完整的例子。正如@Eric所提到的,所有需要的是定義您自己的功能仿函數,並使用thrust::transform
。
#include <thrust/sequence.h>
#include <thrust/device_vector.h>
class power_functor {
double a;
public:
power_functor(double a_) { a = a_; }
__host__ __device__ double operator()(double x) const
{
return pow(x,a);
}
};
void main() {
int N = 20;
thrust::device_vector<double> d_n(N);
thrust::sequence(d_n.begin(), d_n.end());
thrust::transform(d_n.begin(),d_n.end(),d_n.begin(),power_functor(2.));
for (int i=0; i<N; i++) {
double val = d_n[i];
printf("Device vector element number %i equal to %f\n",i,val);
}
getchar();
}
+0
它是不是在故意該方法'操作符()''返回int'而不是'double'? – SomethingSomething
+0
@SomethingSomething這是一個錯誤。固定。謝謝你通知我。 – JackOLantern
相關問題
- 1. 使用CUDA Thrust查找最大元素值及其位置
- 2. CUDA中的thrust :: device_vector
- 3. 多GPU與CUDA Thrust的使用
- 4. CUDA佔用率計算器,
- 5. Cuda Thrust自定義函數
- 6. Thrust(CUDA庫)編譯錯誤,如「'vectorize_from_shared_kernel__entry':不是'thrust :: detail :: device :: cuda'的成員」
- 7. 當我使用thrust :: counting_iterator時,我如何選擇Thrust 1.7(CUDA 5.5)的後端?
- 8. 使用CUDA運算功能 - Nsight Eclipse的版本
- 9. CUDA FFT - 兩個功率
- 10. 在10.功率/計算/功率計算
- 11. 使用cuda挑選數組的元素
- 12. 如何使用遞歸計算功率的功率?
- 13. 具有Cuda Thrust的多個GPU?
- 14. CUDA的thrust :: inclusive_scan()是否有'init'參數?
- 15. 使用CUDA的Thrust庫以獲得較大的值
- 16. Cuda:使用共享內存計算元素
- 17. Python - 獨特元素的計算頻率
- 18. 生成功率集的所有元素
- 19. 使用CUDA/Thrust使關鍵出現次數相等
- 20. 計算數組中元素的頻率
- 21. 一定長度的功率集元素
- 22. 使用cuda thrust :: max_element查找數組中的最大元素有時會返回不正確
- 23. 是否有可能在CUDA中使用推力庫的2D陣列使用thrust :: device_vector和thrust :: fill
- 24. 是否可以使用CUDA來有效計算排序數組內的元素的頻率?
- 25. 通過CUBLAS或THRUST在CUDA編程bsxfun?
- 26. CUDA C訴Thrust,我錯過了什麼?
- 27. 將cuda數組傳遞給thrust :: inclusive_scan
- 28. CUDA上的布爾運算
- 29. CUDA Thrust如何使用向量將對象傳輸到設備
- 30. CUDA:如何直接在GPU上使用thrust :: sort_by_key?
你可以寫你自己的仿函數來做到這一點 – kangshiyin