如何使用 CUDA 库用特定整数替换非零值?

How to replace non zero values with a particular integer using CUDA library?

我想用整数 1 替换设备向量的所有非零元素。我特别想只使用 CUDA 库来执行此操作。

是否有任何推力函数可以帮助我实现我的结果?

给定一个设备向量:

thrust::device_vector<int> X;

你可以像这样使用推力之一 algorithms:

thrust::transform(X.begin(), X.end(), X.begin(), [](int n) {
    return n ? 1 : 0;
}); 

thrust::replace_if(X.begin(), X.end(), [](int n) {
    return n != 0;
}, 1);